benchmark-cilisted
Install: claude install-skill e128/dotnet-reference
# Benchmark & CI Skill
Determine mode from user intent, then execute.
| User wants to... | Mode | Key phrases |
|-------------------|------|-------------|
| Run benchmarks and check regressions | **Runner** (below) | run benchmarks, benchmark check, check for regressions, update baseline, perf check |
| Add benchmark regression gating to CI | **Gate** (below) | benchmark gate, ci benchmark, add benchmark to ci, gating benchmarks |
| Audit GitHub Actions workflow YAML | **YAML Review** (below) | review github actions, audit ci yaml, check workflow versions, outdated actions |
If ambiguous, ask which task they need.
---
## Mode: Runner
Run benchmarks and compare against the stored baseline in `benchmarks/baselines.json`.
### Determine intent
- "update baseline" or "save baseline" -> **Update Baseline** path
- Otherwise -> **Run and Compare** path
### Run and Compare
1. Run the benchmark suite (BenchmarkDotNet, Release config) with an optional
`--filter {ClassName}`, then diff the results against `benchmarks/baselines.json`
2. Interpret output — Status per benchmark: `OK`, `IMPROVED`, `REGRESSED`, `ALLOC_UP`, `NEW`
3. If `REGRESSED`/`ALLOC_UP`: report table with baseline/current/change, suggest investigating
4. If clean: report "All benchmarks clean. {N} improved, {M} stable."
### Update Baseline
1. Confirm intent (overwrites `benchmarks/baselines.json`)
2. Re-run the suite and write the current results to `benchmarks/baselines.json`
3. Stage: `git add benchmarks/