meta-skill-eval

Executes structured skill evals through the Claude Code CLI and records attributed results in an append-only ledger.

Updated Apr 19, 2026
One-click install
npx skills add https://github.com/nickgogan/improvement-loop --skill meta-skill-eval-nickgogan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: meta-skill-eval
Source: https://github.com/nickgogan/improvement-loop/tree/main/.claude/skills/meta-skill-eval
Command: npx skills add https://github.com/nickgogan/improvement-loop --skill meta-skill-eval-nickgogan

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyyaml, and includes scripts (resource) and references (resource) components.

What problem does it solve? Skill behavior claims are hard to verify: descriptions drift from real user phrasings, trigger accuracy is guessed from prose, and there is no durable record of whether a skill actually works. This Skill runs structured eval cases through the real Claude Code CLI in isolated workspaces and accounts for every result in an append-only, fully-attributed JSONL ledger. ## Core Features & Use Cases - run: Executes trigger, execution, and retirement-tier cases from a skill's evals/eval-cases.yaml with denied-by-default mutating tools, 3-trial defaults, per-case fresh contexts, and a --max-runs cost cap; timeouts and missing evidence record as error, never as passes. - report: Computes pass rates, capability-to-regression graduation, saturation and retirement signals per skill x tier x model, plus --paired with-skill vs skill-masked output uplift and --efficiency duration/token reads. - sync and score: Deterministically detects drift between eval sets and the real-phrasing corpus (exit 1 on drift, clean pass on fresh hosts), and appends human scorecard verdicts for subjective hitl cases under the judge-verdict schema. - Use Case: Before installing or exporting a skill, run the shared adversarial pack (--skill _shared) to probe prompt-injection, scope-bypass, and ban-term leakage as an explicit pre-install gate. ## Quick Start Ask the assistant to run the evals for a specific skill with an explicit model, for example: run the evals for transcript-fetcher with one trial and then report its pass rate.

Frequently Asked Questions about meta-skill-eval

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run evals for a skill with the Claude Code CLI?▼

Invoke eval_runner.py with the run subcommand, naming the skill and an explicit model, for example run --skill my-skill --model claude-x --trials 1. Each case executes in an isolated workspace and appends an attributed row to operations/evals/ledger.jsonl.

How do I check whether eval sets drifted from real user phrasings?▼

Run the sync subcommand, which compares each skill's eval-cases.yaml against the eval-candidates corpus and exits 1 with a DRIFT line for any uncovered phrasing. A host with no corpus yet passes cleanly.

What happens when the CLI exposes no skill-load evidence?▼

Trigger-dependent cases record an error verdict with skill_evidence marked unavailable rather than manufacturing a pass or fail. Agent prose claiming a skill was used is never treated as evidence; only structured Skill tool_use events count.

Does the eval runner work without the Claude Code CLI installed?▼

Run mode is inert without the CLI since it executes real subprocess calls, but report and sync modes degrade gracefully because ledger reads and corpus drift checks are fully offline. Dry-run mode also works for planning.

Why did a trigger case fail with a timeout or nonzero exit?▼

Timeouts and nonzero CLI exits are recorded as error verdicts, never graded as passes or failures, because absence of evidence is not an abstention. Read the saved transcript for the run to distinguish a harness problem from a genuine case failure.

When should a skill be excluded from paid eval runs?▼

Pure tool-wrapper skills whose correctness is binary script behavior can be marked harness: excluded in eval-cases.yaml, making run mode refuse with the recorded reason. Their own script tests own correctness, so paid LLM runs add nothing.