skill-forge-benchmark
Benchmark Claude Code skill performance with variance analysis, tracking pass rate, execution time, and token usage across…
Run evaluation pipelines on Claude Code skills to test triggering accuracy, workflow correctness, and output quality. Spawns executor, grader, comparator, and analyzer sub-agents for parallel evaluation. Generates eval_metadata.json, grading.json, and feedback reports. Use when
$ npx -y skills add AgriciDaniel/skill-forge --skill skill-forge-eval --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/skill-forge-evalContext preview
The summary Claude sees to decide when to auto-load this skill.
Run evaluation pipelines on Claude Code skills to test triggering accuracy, workflow correctness, and output quality. Spawns executor, grader, comparator, and analyzer sub-agents for parallel evaluation. Generates eval_metadata.json, grading.json, and feedback reports. Use when
name: skill-forge-eval description: > Run evaluation pipelines on Claude Code skills to test triggering accuracy, workflow correctness, and output quality. Spawns executor, grader, comparator, and analyzer sub-agents for parallel evaluation. Generates eval_metadata.json, grading.json, and feedback reports. Use when user says "eval skill", "test skill", "run evals", "evaluate skill", "skill evals", "test skill quality", "run skill tests", or "skill evaluation".
Run structured evaluations against Claude Code skills to verify triggering, correctness, and quality using a multi-agent pipeline.
Accept eval definitions from:
**Eval set JSON schema:**
{
"skill_name": "my-skill",
"skill_path": "./my-skill",
"evals": [
{
"eval_id": 0,
"eval_name": "descriptive-name",
"prompt": "The user's task prompt",
"input_files": [],
"assertions": [
{
"name": "output-has-score",
"check": "Output contains a numeric score between 0-100",
"weight": 1.0
}
],
"should_trigger": true
}
]
}If no eval set exists, generate one: 1. Read the skill's SKILL.md description and instructions 2. Run `python scripts/generate_eval_set.py <skill-path>` to produce a starter set 3. Present the generated set to the user for review and editing 4. User approves or modifies before proceeding
Create the eval workspace **outside** the skill directory to avoid confusing eval artifacts with skill files. Use a sibling directory or a dedicated location:
eval-workspace/
iteration-1/
eval-0/
eval_metadata.json # Assertions and config for this eval
with_skill/
outputs/ # Skill execution outputs
timing.json # Token count + duration
grading.json # Assertion results + evidence
baseline/
outputs/
timing.json
grading.json
eval-1/
eval_metadata.json
with_skill/
outputs/
timing.json
grading.json
baseline/
outputs/
timing.json
grading.json
benchmark.json # Aggregated metrics
benchmark.md # Human-readable reportFor each eval directory, create `eval_metadata.json` from the eval set entry:
{
"eval_id": 0,
"eval_name": "descriptive-name",
"prompt": "The user's task prompt",
"assertions": [...],
"should_trigger": true
}For each eval in the set, spawn two parallel runs:
**With-skill run** (delegate to `agents/skill-forge-executor.md`):
Execute this task: - Skill path: <path-to-skill> - Task: <eval prompt> - Input files: <eval files if any, or "none"> - Save outputs to: <workspace>/iteration-<N>/eval-<ID>/with_skill/outputs/ - Outputs to save: <what the assertions check>
**Baseline run** (delegate to `agents/skill-forge-executor.md`):
Save timing data to `timing.json` in each run directory:
{
"total_tokens": 84852,
"duration_ms": 23332,
"total_duration_seconds": 23.3
}Delegate to `agents/skill-forge-grader.md` for each completed run:
1. Grade against assertions defined in eval_metadata.json 2. Save results to `grading.json` per run:
{
"eval_id": 0,
"run_type": "with_skill",
"assertions": [
{
"name": "output-has-score",
"passed": true,
"evidence": "Found score: 87/100 on line 14"
}
],
"pass_rate": 1.0
}1. Run `python scripts/aggregate_benchmark.py <workspace>/iteration-<N> --skill-name <name>` 2. This produces `benchmark.json` and `benchmark.md` with:
3. Delegate to `agents/skill-forge-analyzer.md` to:
Generate a summary report:
# Eval Report: [skill-name] — Iteration [N] ## Overall | Metric | With Skill | Baseline | Delta | |--------|-----------|----------|-------| | Pass Rate | X% | Y% | +Z% | | Avg Time | Xs | Ys | -Zs | | Avg Tokens | X | Y | -Z | ## Per-Eval Results | Eval | With Skill | Baseline | Status | |------|-----------|----------|--------| | eval-0 | PASS | FAIL | Improved | | eval-1 | PASS | PASS | Maintained | ## Patterns & Insights [From analyzer agent] ## Recommendations [Specific improvements based on failures]
Save user feedback to `feedback.json`:
{
"reviews": [
{
"run_id": "eval-0-with_skill",
"feedback": "the chart is missing axis labels",
"timestamp": "2026-03-06T12:00:00Z"
}
],
"status": "complete"
}Pass feedback to `/skill-forge evolve` for the next iteration.
For rigorous A/B testing between skill versions: 1. Delegate to `agents/skill-forge-comparator.md` 2. Pass two directories: `eval-<ID>/with_skill/outputs/` and `eval-<ID>/baseline/outputs/` 3. Comparator assigns random labels (Version A / Version B) so it cannot know which is new 4. Rates each output on assertion criteria from `eval_metadata.json` 5. Returns preference scores without knowing which is "new" vs "old"
Blog: Learn how to build Claude Code skills Design, scaffold, build, review, evolve, and publish production-grade Claude Code skills following the Agent Skills open standard.
Benchmark Claude Code skill performance with variance analysis, tracking pass rate, execution time, and token usage across…
Scaffold and build Claude Code skills from plans or descriptions. Generates SKILL.md files, sub-skills, scripts, references,…
Convert Claude Code skills to work on OpenAI Codex, Google Gemini CLI, Google Antigravity, and Cursor. Analyzes platform-specific…
Improve and iterate on existing Claude Code skills based on usage feedback, test results, or changing requirements. Handles…
Architecture and design planning for new Claude Code skills. Guides through use case definition, complexity tier selection,…
Package and distribute Claude Code skills for sharing via GitHub, Claude.ai uploads, or team deployment. Creates install scripts,…