Skip to content
Development
Skill

/eval-runner

Run eval scenarios to benchmark Mycelium effectiveness. Execute tasks using reflexion loop, validate against success criteria, record metrics.

From plugin
mycelium
5263 skills

Claude Code

$ npx -y skills add haabe/mycelium --skill eval-runner --agent claude-code

SKILL.md

eval-runner.SKILL.md
name: eval-runner
description: "Run eval scenarios to benchmark Mycelium effectiveness. Execute tasks using reflexion loop, validate against success criteria, record metrics."
metadata:
  instruction_budget: "41"
  framework_dependency: "mycelium"
  framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."

Eval Runner

Benchmark the agent's performance against defined scenarios. Adapted from n-trax eval system.

Commands

`run <category/name>`

1. Read YAML from `.claude/evals/scenarios/<category>/<name>.yml` 2. Parse fields (name, category, task_prompt, success_criteria, budget) 3. Execute setup steps if defined 4. Record start time 5. Execute task via reflexion workflow (read corrections first) 6. Record end time and iteration count 7. Validate ALL success criteria 8. Write result JSON to `.claude/evals/results/<timestamp>-<name>.json` 9. Report summary

`run-all [category]`

1. Glob `.claude/evals/scenarios/**/*.yml` 2. Skip scenarios with `status: retired` 3. For each: run in isolation (git stash), record result, restore 4. Update `.claude/evals/pass-history.json` with each result 5. Aggregate and report

`run-split <optimization|holdout>`

1. Glob `.claude/evals/scenarios/**/*.yml` 2. Read each YAML, filter by `split` field matching the requested set 3. Skip scenarios with `status: retired` 4. For each matching scenario: run in isolation, record result, restore 5. Update `.claude/evals/pass-history.json` with each result 6. Aggregate and report (label output clearly as "Optimization Set" or "Holdout Set")

`report`

1. Read all results from `.claude/evals/results/` 2. Generate summary table:

| Category    | Pass Rate | Avg Iterations | Avg Time | Notes |
|-------------|-----------|----------------|----------|-------|
| discovery   | ...       | ...            | ...      |       |
| delivery    | ...       | ...            | ...      |       |
| integration | ...       | ...            | ...      |       |
| **Overall** | ...       | ...            | ...      |       |

3. List failure patterns and recommendations

`prune`

1. Read `.claude/evals/pass-history.json` 2. Flag evals where `last_5` is all-pass (`saturated`) or all-fail (`broken`) 3. Flag evals with no runs in 30+ days (`stale`) 4. For saturated evals, suggest: retire or increase difficulty 5. For broken evals, suggest: fix criteria or retire 6. Present recommendations — do NOT auto-retire 7. On user confirmation: set `status: retired` in scenario YAML, update pass-history.json, log in .claude/harness/decision-log.md

`mine`

Analyze audit logs to propose new eval scenarios from observed failure patterns.

1. Read `.claude/state/change-log.jsonl` (last 100 entries) 2. Read `.claude/state/diamond-state-audit.jsonl` (all entries) 3. Group change-log entries by `session_id`, identify: a. **Correction clusters**: 3+ edits to same file in one session (agent struggled) b. **Skill friction**: edits to `.claude/skills/*/SKILL.md` during a session (instructions unclear) c. **Missing test coverage**: 5+ files changed with no test file edits 4. Count diamond bypass entries from audit log 5. Cross-reference with existing scenarios in pass-history.json to avoid duplicates 6. For each pattern, output a proposed eval scenario as YAML template 7. Tag proposals with `source: trace-mining` and originating `session_id` 8. Do NOT auto-create files — present for human review

See `.claude/evals/schema.md` §Trace Mining Heuristics for pattern-to-eval mappings.

Result Format

See `.claude/evals/schema.md` for YAML scenario and JSON result formats.

Pass History

After writing each result JSON (step 8 of `run`), also update `.claude/evals/pass-history.json`:

  • Increment `runs` and `passes` (if passed) for the eval
  • Append `true`/`false` to `last_5` (trim to keep only last 5)
  • Update `last_run` timestamp

Creating Scenarios

Place YAML files in `.claude/evals/scenarios/<category>/`. Define task_prompt, success_criteria, and budget. Set `split`, `status`, and `source` fields per schema.

Read more
@haabe
Ships withmycelium

Mycelium won't make your idea good. It keeps you and your agent honest about whether it is, from first idea to market. Built on Claude Code, where the gates are structural. The files and skills port to opencode, Codex and Cursor. Outcome over output.

Stars on GitHub

Momentum

stars in total
52
Star history of haabe/mycelium on GitHub, a chart by star-history.com

Other skills on mycelium.

a11y-check

a11y-check

Accessibility audit, scoped to the surfaces a product actually has. Detects web / rendered_markdown / terminal / native_app /…

@haabe@haabeInstall Skill
adopt

adopt

Bring Mycelium into a project that already has code. Detects that the repo predates the framework, asks before touching anything,…

@haabe@haabeInstall Skill
assumption-test

assumption-test

Design the smallest viable test to validate or invalidate a critical assumption. Based on Torres's assumption testing framework,…

@haabe@haabeInstall Skill
bias-check

bias-check

Use before any research activity or significant decision. Reviews cognitive biases relevant to the current stage.

@haabe@haabeInstall Skill
bvssh-check

bvssh-check

Use to evaluate whether current work aligns with Better Value Sooner Safer Happier. Run at diamond completion and periodically.

@haabe@haabeInstall Skill
canvas-health

canvas-health

Lint canvas files for staleness, missing fields, inconsistent evidence types, and orphaned references. Run periodically or before…

@haabe@haabeInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about eval-runner.

Which coding agents can use eval-runner?
eval-runner installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.