eval-runner

A tool for running predefined evaluation scenarios against an agent and recording whether their success criteria were met. An evaluation scenario is a repeatable test task with instructions, expected results, and sometimes a time or work budget.

In plain words
What is it for?
Use it to run one scenario, all scenarios in a category, or separate optimization and holdout sets, then validate criteria and save result metrics.
Why use it?
It makes agent performance measurable over repeated tasks and keeps pass history and results for comparison.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/haabe/mycelium/eval-runner
Any agent
npx skills add haabe/mycelium --skill eval-runner
Clone the repo
git clone --depth 1 https://github.com/haabe/mycelium

Made for: Claude Code, Codex.

Per session 29 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,061 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00029 $0.01061
Opus 5 $0.00015 $0.00531
Sonnet 5 $0.00006 $0.00212
Haiku 4.5 $0.00003 $0.00106

Measured 2d ago against content hash f398c17e0461, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

eval-runner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/mycelium/skills/eval-runner/SKILL.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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** | ...       | ...            | ...      |       |
  1. 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

Read the full file on GitHub · 92 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 92 lines · 29 tokens per session scan A f398c17e0461

Subscribe to this mod's changes

eval-runner is a skill published in the GitHub repository haabe/mycelium (45 stars, last pushed 2d ago), licensed MIT. It adds 29 tokens to every session and 1,061 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

context-manager

Context management skill providing discovery, fetching, harvesting, extraction, compression, organization, cleanup, and guided workflows for project context.

darrenhinde/OpenAgentsControl · 27 tokens

prd-v05-technical-stack-selection

Determine technologies needed to build the product, making build/buy/integrate decisions during PRD v0.5 Red Team Review. Handles both greenfield and brownfield contexts. Triggers on requests to select tech stack, evaluate technologies, make build vs. buy decisions, discover existing assets, or when user asks "what…

mattgierhart/PRD-driven-context-engineering · 151 tokens

prd-v06-architecture-design

Define how system components connect, establishing boundaries, patterns, and integration approaches during PRD v0.6 Architecture. Triggers on requests to design architecture, create system design, define component relationships, or when user asks "design architecture", "system design", "how do components connect?"…

mattgierhart/PRD-driven-context-engineering · 115 tokens

prd-v08-monitoring-setup

Define monitoring strategy, metrics collection, and alerting thresholds during PRD v0.8 Deployment & Ops. Triggers on requests to set up monitoring, define alerts, or when user asks "what should we monitor?", "alerting strategy", "observability", "metrics", "SLOs", "dashboards", "monitoring setup". Outputs MON…

mattgierhart/PRD-driven-context-engineering · 89 tokens

prd-v08-runbook-creation

Create operational playbooks for incident response, deployments, and maintenance during PRD v0.8 Deployment & Ops. Triggers on requests to create runbooks, document procedures, or when user asks "how do we handle incidents?", "runbook", "operational procedures", "on-call guide", "incident response", "maintenance…

mattgierhart/PRD-driven-context-engineering · 87 tokens

prd-v09-feedback-loop-setup

Establish channels and processes for capturing and processing post-launch feedback during PRD v0.9 Go-to-Market. Triggers on requests to set up feedback systems, capture user input, or when user asks "how do we collect feedback?", "feedback loop", "user research", "post-launch feedback", "customer feedback", "NPS"…

mattgierhart/PRD-driven-context-engineering · 94 tokens