Tooluck logoTooluck
SKILL.md

benchmark-checklist

Agent skill frommichael-denyer/pstack-claude

Vet a perf measurement (limiter, tuning, limits, errors, repeatability, relevance, and whether the work happened) before you report or act on it. Use when you run a benchmark or report a speedup or regression you measured.

How to install benchmark-checklist

install benchmark-checklist
# install the pstack-claude pack with the skills CLI
npx skills add michael-denyer/pstack-claude

# or add only this skill to Claude Code: copy the folder

plugins/pstack/skills/benchmark-checklist/

# into

~/.claude/skills/benchmark-checklist/ (all projects)

.claude/skills/benchmark-checklist/ (one project)

plugins/pstack/skills/benchmark-checklist/SKILL.md

MITFull file
1# Benchmark checklist
2
3Use this when you produce a performance number: a PR's before and after, a regression claim, a hillclimb harness, or a library or config choice. Answer each question with evidence from a run, not a guess about the code.
4
5For a quick ballpark the user asked for, one run is enough. Still check questions 4 and 7, and say that it is one run. Skip the rest unless that run looks wrong. A choice between options is never a ballpark.
6
7## Before you run anything
8
9- Write down the claim you expect to make, in the words you would ship ("export is 30% faster at p50 on the 60k-row dataset"). The questions test that sentence.
10- Read the measurement script. Note what it times, counts, and ignores.
11- Check the load average with `uptime` and the core count with `nproc`. If the machine is busy, find out what is running. If you cannot stop it, interleave the sides so both see the same noise, and say so in the report.
12
13## The questions
14
151. **Why not double?** Name the limiter. Profile in a run you do not report, because profilers and tracers slow the work down. Use CPU per process (`top`, `pidstat`), a runtime profiler (`node --cpu-prof`, `py-spy`, `perf`), I/O wait, and syscall counts (`strace -c` on Linux), then map the hot spot to source. Watch the load generator too: if it saturates first, you measured the load generator. If a change did not move the number, the limiter explains why, so find it before you call the change useless.
16…

Excerpt shown under the repository's MIT license.

More skills in pstack-claude

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates