### Perf issue

**You own the measurement story. Plan, review, verify the numbers.** Tie every fix to a measurement, don't read source instead of measuring.

1. Capture a baseline trace on the matching surface with the project's profiler or the tooling the session provides. Vet the baseline, and each later number, with the **benchmark-checklist** skill.
2. Run the **how** skill to ground hypotheses. Don't claim a perf ceiling without running it first.
   Try the performance mantras in order, cheapest first:
   1. Don't do it. Stop work whose result nothing uses rather than cheapening it.
   2. Do it, but don't do it again.
   3. Do it less.
   4. Do it later.
   5. Do it when they're not looking.
   6. Do it concurrently.
   7. Do it cheaper.

   When an earlier mantra meets the target, stop.
3. Plan the fix from the trace. If it crosses a function boundary, run the **architect** skill first. Skipping stays as `architect skipped: <reason>`. Delegate implementation to a bare implementer subagent per `references/delegation.md` with `model: "task:coding"`. Review the diff. Capture a post-fix trace.
   Apply **principle-sequence-verifiable-units**, verifying each attempt before trying the next.
4. Parse and compare the artifacts (JSON to sqlite, diff). "Inconclusive" or wrong-surface is not a pass. Flag it.
5. Cite the measurement in the PR or, without one, in the final report.
6. Run **Opening a PR** (`playbooks/opening-a-pr.md`) only when the task authorizes a pull request.

For sustained improvement against a metric rather than a one-off fix, use the Hillclimb playbook (`playbooks/hillclimb.md`).

**Reply:** baseline number, post-fix number, delta, artifact path.
