원클릭으로
performance-review
Performance analysis checklist for code review
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Performance analysis checklist for code review
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | performance-review |
| description | Performance analysis checklist for code review |
Systematic performance analysis for code changes. Use during the performance pass of /review or when optimizing. See 25_caching_performance.md rule for implementation standards.
with(), load())DB::enableQueryLog() or Telescope to verify query count per requestWHERE, ORDER BY, or JOIN columns have indexespaginate() or cursorPaginate() — never all()select() when only a few columns are neededchunk() or lazy() — never load all into memoryCache::flexible() (SWR); standard queries use Cache::remember()forget() scattered through code25_caching_performance.md)Cache::remember() closures don't return bare null (treated as cache miss)entity:id:attribute convention — descriptive and hierarchicalhandle()Cache::forever() without versioning or deploy-time flush<Lazy> prefix or dynamic imports<NuxtImg> with appropriate sizes/formatsfetch() in lifecycle hooksgetCachedData to prevent redundant API callspublic/private/no-store)Set-Cookie headers (blocks Cloudflare caching)/_nuxt/* served with Cache-Control: public, max-age=31536000, immutableThese patterns almost always indicate a performance problem:
| Pattern | Issue | Fix |
|---|---|---|
Model::all() | Loads entire table | paginate() or scoped query |
foreach ($items as $item) { $item->relation } | N+1 | $items->load('relation') |
DB:: inside a loop | Repeated queries | Batch query before the loop |
sleep() in request | Blocks worker | Queue job |
file_get_contents() for URLs | No timeout, blocking | HTTP client with timeout, or queue |
Cache::forever() without invalidation | Stale data after changes | Version keys or tag-flush on deploy |
Cache::remember() returning null | Infinite re-computation | Wrap in DTO or sentinel |
Caching with public on auth responses | Data leaks between users | private or no-store |
Cache::tags() with file driver | Runtime exception | Enforce Redis driver |
Raw fetch() in Nuxt lifecycle hooks | No SSR dedup, no caching | useFetch / useAsyncData |
Missing key on useFetch | Cache collisions | Always set explicit key |
Structured brainstorming for exploring new features or solving complex problems
Scope, architect, and plan new tasks
Multi-angle code review before merging
Summarize the day's work and put it in context
Wrap up work — atomic commits and push to origin
Full end-to-end (E2E) testing skill utilizing the browser. Make sure to use this skill whenever the user asks to "test the app", "run end to end tests", "verify the UI", "check if the app works", or wants you to use the browser to interact with and test the application flow. This skill orchestrates creating a test plan, getting user approval, navigating the application using the browser, independently fixing obstacles, and generating a progressive test report.