en un clic
performance-review
Performance analysis checklist for code review
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Performance analysis checklist for code review
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
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.
| 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 |