← ClaudeAtlas

perflisted

Web performance audit against this project's Core Web Vitals and bundle budgets, with a fixed report format.
djnsty23/claude-auto-dev · ★ 3 · Code & Development · score 65
Install: claude install-skill djnsty23/claude-auto-dev
# Performance Audit The budgets below are the project's decisions. The optimisation techniques are not restated here — you know them. ## 1. Measure ```bash npx next build 2>&1 | tail -30 # bundle sizes npx lighthouse http://localhost:3000 --output=json --quiet ``` Measure before changing anything. A perf change with no before/after number is a guess. ## 2. Budgets | Metric | Good | Needs work | Poor | |--------|------|------------|------| | LCP | < 2.5s | 2.5–4s | > 4s | | INP | < 200ms | 200–500ms | > 500ms | | CLS | < 0.1 | 0.1–0.25 | > 0.25 | | FCP | < 1.8s | 1.8–3s | > 3s | | TTFB | < 800ms | 800–1800ms | > 1800ms | | Bundle | Target | If over | |--------|--------|---------| | Total JS | < 200KB gzipped | Code split, lazy load | | Single chunk | < 50KB | Dynamic import | | Image | < 100KB | WebP, compress, lazy load | | Font | < 50KB | Subset, `font-display: swap` | ## 3. Fix in this order Highest yield first, and stop when you are inside budget: 1. **Request waterfalls** — parallelise, hoist fetches, preload what blocks LCP. 2. **Payload** — images, then fonts, then JS. An unoptimised hero image usually outweighs every code change you could make. 3. **Bundle** — split routes, dynamic-import anything below the fold. 4. **Server** — cache, stream, move work off the request path. 5. **Re-render optimisation last.** It is the most invasive and the least often the actual cause. ## 4. Report ``` Performance Audit ───────────────── LCP: 1.8s ✅ INP