Diagnose and improve performance across web apps, APIs, databases, distributed systems, internal tools, and user-critical workflows. Use when the task involves slow pages, weak Core Web Vitals, latency spikes, render jank, expensive queries, memory pressure, poor throughput, queue buildup, caching decisions, load behavior, or turning vague “it feels slow” complaints into measurable bottlenecks and fix priorities.
Make systems faster in ways users and operators can feel. Start with measurement, isolate the dominant bottleneck, and recommend fixes that improve responsiveness, latency, throughput, or stability without optimization theater.
Collect or infer:
If metrics do not exist, the first deliverable is an instrumentation and reproduction plan.
Return one or more of:
Tie each recommendation to a metric, a user-visible symptom, or a clear cost driver.
Translate vague symptoms into something testable:
No measurable question, no real optimization.
Use evidence that matches the failure mode:
For user-facing web work, anchor on current Core Web Vitals thresholds: LCP under 2.5s, INP under 200ms, CLS under 0.1 for “good” performance. Use field data when available, not only lab data.
Common families:
Do not produce a long equal-priority list. Name the first limiter.
Prefer changes like:
Every fix should answer: why this first?
For each recommendation, note:
Cheap fixes with tiny impact are often worse than a harder fix that removes the real limiter.
Specify:
A strong answer:
prompt.md for response structure and prioritization style.examples/README.md for output shapes.guides/qa-checklist.md before finalizing.