agentleFS
danielvm-gitdanielvm-git/bigpowers/skills/run-benchmark/SKILL.md

run-benchmark

Skill288 starsChanged 8 days agoMITView on GitHub

Run skill quality benchmarks from specs/benchmarks/ definitions — N-run with/without-skill delta grading, train/validation split, pass@k + benchmark.json reports. Use before and after evolve-skill to prove quality changes are improvements, not regressions.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every scenario runs N times (default 3) in two modes: with the skill loaded and without (bare agent with only CLAUDE.md).

    line 18

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Run Benchmark

HARD GATE — Do NOT use benchmark scores to declare a skill "good" or "bad" in isolation. Benchmarks measure relative quality vs. a baseline — they catch regressions, they do not certify correctness.

Reads benchmark definitions from specs/benchmarks/, executes each scenario's grader with and without the skill loaded, and writes a structured pass@k report with delta grading that evolve-skill consumes.

With/Without-Skill Delta Grading

Every scenario runs N times (default 3) in two modes: with the skill loaded and without (bare agent with only CLAUDE.md). The delta Δ = pass@k_with − pass@k_without isolates the skill's causal contribution. A negative delta is a regression flag.

Train/Validation Split

Benchmark definitions partition scenarios into two sets:

SetTagPurpose
Trainsplit: trainDevelopment scenarios — used while iterating. Hitting 100% on train is expected.
Validationsplit: validationHeld-out scenarios — the real quality signal. Overfitting train while validation stagnates is a design smell.

pass@k is reported separately for train and validation. Validation score is authoritative; train score is iteration guidance only.

Usage

bash scripts/run-benchmark.sh <skill-name>           # benchmark single skill
bash scripts/run-benchmark.sh --all                  # benchmark all with definitions
bash scripts/run-benchmark.sh <skill-name> --baseline # pin results as baseline

Process

  1. Locate definition — Read specs/benchmarks/<skill>.yaml. If absent, stop with message.
  2. Partition scenarios — Split by split field (train → iteration, validation → authoritative, default: validation).
  3. Run each scenario (N-run delta) — For each scenario, run grader N times (default 3, configurable via runs:):
    • Without skill: Agent with only CLAUDE.md/CONVENTIONS.md
    • With skill: Agent with the skill under test active
    • Code grader: bash -c <command>, exit 0 → PASS. Timeout: 15s.
    • Rubric grader: yes/no per criterion, ≥ 80% yes → PASS.
    • Record: {scenario_id: {with: [P/F,...], without: [P/F,...]}}
  4. Calculate scores — Per split (train, validation) and mode (with, without):
    • pass@k = sum(weight × pass_rate) / sum(weights) where pass_rate = passes/runs
    • Δ = pass@k_with − pass@k_without — causal contribution
    • Round to 2 decimal places
  5. Write benchmark.json to specs/benchmarks/reports/benchmark-<skill>.json:
    {"skill":"survey-context","run_date":"2026-06-22","runs_per_scenario":3,"train":{"with_skill":0.92,"without_skill":0.67,"delta":0.25,"scenarios":["s01","s02"]},"validation":{"with_skill":0.83,"without_skill":0.60,"delta":0.23,"scenarios":["s03","s04","s05"]}}
  6. Write YAML report to specs/benchmarks/reports/BENCHMARK-<skill>-<YYYY-MM-DD>.yaml:
    skill: survey-context
    run_date: "2026-06-22"
    runs_per_scenario: 3
    train:
      pass_at_k_with: 0.92
      pass_at_k_without: 0.67
      delta: 0.25
    validation:
      pass_at_k_with: 0.83
      pass_at_k_without: 0.60
      delta: 0.23
    scenarios:
      - id: s01
        split: train
        with_pass_rate: 1.0
        without_pass_rate: 0.67
        delta: 0.33
        weight: 1.0
  7. Baseline (--baseline) — Copy to BASELINE-<skill>.yaml + baseline-<skill>.json.
  8. Compare to baseline — IMPROVED: Δ 0.17 → 0.25 / REGRESSION: Δ 0.25 → 0.17 — do NOT ship / STABLE.
  9. Delta threshold gate — Validation Δ < 0.0 blocks release. Δ < 0.05 warns (marginal). Min meaningful threshold: 0.05.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.