perflisted
Install: claude install-skill epicsagas/epic-harness
# Perf — Performance Review
## Process
1. Identify performance-sensitive code paths from the diff (loops, queries, rendering, batch ops)
2. Run the Checklist below, marking each item as pass, fail, or N/A with reason
3. For each failure, cite the file and line number with a one-line fix hint
4. Report findings using the Evidence Required section
## When to Trigger
- Database queries inside loops
- Large data set processing
- Rendering or UI update logic
- API endpoint that could receive high traffic
- File I/O in hot paths
## Checklist
### Database
- [ ] No N+1 queries (use JOIN, eager loading, or batch) — N+1 queries cause latency to scale linearly with row count, turning a 1ms query into seconds under load.
- [ ] Indexes exist for frequently queried columns — without indexes, the database performs full table scans, collapsing read throughput.
- [ ] Pagination for large result sets — fetching all rows at once exhausts memory and increases response time for every consumer.
- [ ] Connection pooling configured — opening a new connection per request adds network round-trip overhead and can exhaust database connection limits.
### Memory
- [ ] No unbounded arrays or caches growing indefinitely — unbounded growth causes gradual memory exhaustion and eventual OOM kills with no warning.
- [ ] Event listeners properly removed / unsubscribed — leaked listeners hold references to their context, preventing garbage collection of entire object graphs.
- [ ] Large objects released aft