Skill Eval
Orchestrate the full evaluation lifecycle for agentskills.io skills.
Quick start
Agent: "eval my-new-skill"
The agent authors 3-5 test cases, scaffolds a workspace, runs with-skill and without-skill baselines, grades outputs, and produces a benchmark report.
Workflows
1. Author test cases
- Read target skill
SKILL.md. Extract capabilities and constraints. - Load
references/test-quality-checklist.md. - Generate 3-5 test cases. Cover normal prompt, edge case, and malformed input.
- Write test cases to
<target-skill>/evals/evals.json. Conform toassets/evals-schema.json. Produce JSON with keysskill_name,evals[]. Each eval hasid,prompt,expected_output, optionalfiles[]. - Create input fixture file at
<target-skill>/evals/evals.json. - Validate
evals.jsonagainst the test quality checklist. Fix flagged items.
2. Scaffold workspace
- Run
scripts/scaffold-workspace.sh <workspace-dir> <iteration-N> <evals-json>. Script creates per-evalwith_skill/outputs/andwithout_skill/outputs/directories. - Copy current skill directory to
<workspace-dir>/skill-snapshot/. Overwrite existing snapshot.
3. Execute eval runs
- Read
references/grading-prompt-template.md. - Spawn a subagent for each
with_skillrun. Pass skill directory in skill snapshot path, test prompt, input files, and output directory. - Save
with_skill/timing.jsonon each subagent return. - Spawn a subagent for each
without_skillrun. Same prompt, no skill path. - Save
without_skill/timing.jsonon each subagent return. - Verify every eval directory has output files in both
with_skill/outputs/andwithout_skill/outputs/.
4. Grade outputs
- Run
scripts/grade-assertions.sh <output-dir> <assertions-file>. Script checks deterministic assertions. Returns partial grading JSON with PASS/FAIL and evidence. - Spawn a grading subagent for remaining assertions. Pass outputs and assertion text. Require concrete evidence per result.
- Save grading results to
<eval-dir>/<config>/grading.json.
5. Aggregate benchmarks
- Run
scripts/aggregate-benchmark.sh <workspace>/iteration-N. Compute mean pass rate, token count, and duration. Write delta tobenchmark.json. - Read
references/eval-readiness-checklist.md. Apply scoring guide (0–100% bands) to current eval setup. Record maturity band in benchmark report. - Read
assets/eval-report-template.html. Fill template variables with benchmark data. Include{{JSON_SUMMARY}}— compact JSON object at top of report for machine parsing. JSON schema:
Contract rule:{ skill, iteration, report_date, eval_count, readiness: { score, total, band }, delta: { pass_rate, tokens, time }, with_skill: { pass_rate, stddev, samples, tokens, time }, without_skill: { pass_rate, stddev, samples, tokens, time }, evals: [{ id, pass_rate, assertions: [{id, pass, evidence}] }], patterns: [{ type, count, action }], fixes: [{ priority, description }] }iterationmust be string in formiteration-N(e.g.,iteration-5). - Write report to
<target-skill>/<skill-name>-iteration-N-eval-report.html.
6. Analyze patterns
- Read
references/iteration-playbook.md. - Classify assertions: always-pass, always-fail, skill-dependent, inconsistent.
- Review execution transcripts for failed evals. Locate skipped instructions and wasted steps.
7. Produce improvement recommendations
- Collect failure signals: failed assertions, human feedback, transcript patterns.
- Generate improvement prompt. Format as YAML with
skill_path,iteration,benchmark_delta, andchanges[]array. Each change hastype,section,reason,suggestion. - Print improvement prompt for user to feed into downstream skills.
- On user confirmation, loop to step 7 with new iteration number.
Reference files
See grading-prompt-template.md for LLM judge dispatch prompt. See blind-compare-prompt.md for blind comparison scoring. See test-quality-checklist.md for test case quality review criteria. See eval-readiness-checklist.md for eval setup scorecard (pre-run self-diagnostic). See workspace-layout.md for eval workspace directory structure. See iteration-playbook.md for iteration analysis guidance. See eval-report-template.html for the HTML report template.