skill-evaluator
Skill2 starsChanged 10 days agoMITView on GitHub
Reusable skill for evaluating other skills with static structure checks, eval coverage review, and manual paired behavioral trials. Use this skill when checking a skill, reviewing eval assertions, grading actual outputs, or comparing a skill against a baseline — even if they just say "evaluate this skill" or "check if this skill works". Not for authoring skills (use skill-creator) or routing requests (use intent-classifier).
22 other projects use a version of this.
Adopted by
Most recently taken up by
- sorawit-w/agent-skillstheir own version, first seen Nov 1, 2026
- HeshamFS/materials-simulation-skillstheir own version, first seen Nov 1, 2026
- abhayla/claude-best-practicestheir own version, first seen Nov 1, 2026
- feRpicoral/skills-wizardtheir own version, first seen Oct 15, 2026
- i-9-ai/skillstheir own version, first seen Sep 24, 2026
- jha0313/agentic-workflow-eval-seminartheir own version, first seen Sep 22, 2026
Other versions22 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 22
- hamzafarooq/claude-code-starter★ 145same name
- jha0313/skills_repo★ 100same name
- HeshamFS/materials-simulation-skills★ 83same name
- bjulius/skill-evaluator★ 15same name
- d-oit/rust-2026-template★ 15same name
- abhayla/claude-best-practices★ 9same name
- tezansahu/prove-your-agent-skill-works★ 8same name
- huajielong/skill-evaluator★ 6same name
- aiden0z/skills★ 4same name
- jha0313/agentic-workflow-eval-seminar★ 2same name
12 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository63 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .agents/skills/avoid-ai-writing/AGENTS.mdAGENTS.md
- .agents/skills/do-web-doc-resolver/AGENTS.mdAGENTS.md
- .agents/skills/skill-evaluator/AGENTS.mdAGENTS.md
- scripts/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms-full.txtllms.txt
- llms.txtllms.txt
- accessibility-auditorSkill
- agent-browserSkill
- agentic-abstentionSkill
- agents-mdSkill
- api-design-firstSkill
- architecture-diagramSkill
- avoid-ai-writingSkill
- cicd-pipelineSkill
- cloudflare-worker-apiSkill
- codacySkill
- codeberg-apiSkill
- code-review-assistantSkill
- css-render-performanceSkill
- database-devopsSkill
- debuggerSkill
- delegateSkill
- dependency-upgradesSkill
- dist-channel-selectionSkill
- docs-hookSkill
- document-rendering-and-locatorsSkill
- dogfoodSkill
- dora-reportSkill
- do-web-doc-resolverSkill
- durable-objectsSkill
- eu-ai-act-complianceSkill
- git-github-workflowSkill
- goap-agentSkill
- implementerSkill
- intent-classifierSkill
- iterative-refinementSkill
- jules-delegatorSkill
- learnSkill
- lifecycle-managementSkill
- local-context-sanitizationSkill
- memory-contextSkill
- migration-refactoringSkill
- nested-build-isolationSkill
- privacy-firstSkill
- progressive-deliverySkill
- pwa-offline-syncSkill
- reader-ui-uxSkill
- readme-best-practicesSkill
- secrets-managementSkill
- secure-invite-and-accessSkill
- security-code-auditorSkill
- shell-script-qualitySkill
- skill-creatorSkill
- static-analysisSkill
- testing-strategySkill
- test-runnerSkill
- triz-solverSkill
- turso-dbSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 17 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Check whether a skill is wired correctly and has usable eval definitions
- Distinctive: line 30
If the user requests behavioral evaluation but execution is unavailable, report
- Distinctive: line 67
Read every case and check:
- Very specific: line 84
Always add Behavioral evaluation: NOT_RUN.
- Distinctive: line 95
Run the static audit first.
- Very specific: line 117
Never reuse a with-skill transcript as the baseline.
- Very specific: line 123
Every graded result needs assertion evidence (text, result, evidence) and activation evidence.
- Distinctive: line 194
Every scored assertion needs evidence.
“Common” is measured: kept by at least 6 in 10 of the 17 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Evaluator
Evaluate local skills with evidence and an explicit scope. Choose static audit or paired behavioral evaluation (opt-in runner or manual protocol); never confuse their verdicts.
When to Use
- Check whether a skill is wired correctly and has usable eval definitions
- Review assertion quality and coverage without executing user prompts
- Grade actual outputs or compare a skill against a no-skill/older baseline
- Identify missing fixtures, weak evals, and unclear routing boundaries
Required Inputs
SKILL_PATH: absolute or workspace-relative path to the skill directory
MODE: static (default) / paired (runner or manual)
GOAL: structure / coverage review / behavioral comparisonIf the user requests behavioral evaluation but execution is unavailable, report behavioral: NOT_RUN or BLOCKED, not a static result relabeled as behavior.
Mode 1: Static Audit
This mode reads definitions only. It invokes no model, executes no eval prompt, and scores no assertion against an answer. No secrets or authentication are needed for static evaluation, including evals describing authenticated tools.
1. Structure and Schema
python3 .agents/skills/skill-evaluator/scripts/check_structure.py --path "$SKILL_PATH"The standalone checker accepts one skill directory or an inventory directory.
It ignores support folders without SKILL.md, _-prefixed directories, and
*-workspace directories. An empty inventory fails rather than passing vacuously.
Template-local requirements (not Agent Skills specification requirements):
SKILL.mdexists; no nestedskill-name/skill-name/duplicateevals/evals.jsonexists, even ifevals/itself was never created- Root JSON object with matching non-empty
skill_nameandevalsarray - At least 3 cases; each is an object with unique integer
id, non-emptypromptandexpected_outputstrings, and a non-emptyassertionsstring array - Optional
filesis an array of non-empty paths to existing input files under the skill root; absolute paths, escapes, and missing fixtures fail - Optional
bucketusesexplicit,implicit,contextual, ornegative; a tagged set needs a real out-of-scope negative case
references/ and scripts/ are optional. The checker reports their presence,
not their quality. It does not parse frontmatter or enforce prose/line limits;
repository frontmatter policy is in agents-docs/SKILLS.md.
2. Eval Definition Review
Read every case and check:
- Prompt is realistic, success is defined, and inputs can be found locally
- Assertions are concrete and checkable, not just command-word presence
- Expected output and assertions agree with the skill's instructions
- Contextual cases actually supply context; negative cases leave the target skill unloaded and route appropriately instead of merely carrying a label
Schema checks cannot establish these semantic properties. Record this review separately from the automated structure result, with case IDs as evidence.
3. Static Verdict
- PASS (static): structure/schema/fixtures pass and reviewed definitions are usable
- NEEDS_WORK (static): definitions have gaps or weak coverage
- FAIL (static): missing/invalid core files or malformed schema
Always add Behavioral evaluation: NOT_RUN. A static PASS is never a behavioral PASS, trigger-accuracy measurement, or evidence of skill uplift.
Mode 2: Paired Behavioral Evaluation
Behavioral evidence requires actual paired runs. Use the opt-in runner when an adapter exists; it is not part of the default quality gate and needs no model credentials in CI.
1. Prepare
Run the static audit first. Choose representative case IDs and define grading criteria before seeing answers. Build the plan and confirm pairing:
python3 scripts/behavioral-eval.py plan --skill "$SKILL_NAME" --cases 1,8Prompts are withheld from stored artifacts unless --include-prompts is passed.
2. Capture Paired Outputs
Supply an adapter command that prints one behavioral-eval/v1 result JSON per
task on stdout. Task payloads arrive on stdin with configuration
(with_skill / without_skill), the case prompt/assertions, and staged
fixtures. Keep tool access and model settings equal except for the skill.
BEHAVIORAL_EVAL_ADAPTER="my-adapter --json" \
python3 scripts/behavioral-eval.py run --skill "$SKILL_NAME" \
--provider-name <agent> --provider-model <model>Never reuse a with-skill transcript as the baseline. Negative cases report
activation.skill_loaded: true is a false activation and fails the case,
while null blocks it.
3. Grade and Compare
Every graded result needs assertion evidence (text, result, evidence) and
activation evidence. The runner aggregates, excludes blocked/not-run cases from
denominators, and compares against <skill>/evals/behavioral-baseline.json.
Exit codes: 0 pass, 1 case failure or baseline regression, 2 contract or
configuration error, 3 blocked/not run. Malformed adapter output is exit 2 and
is never scored.
duration_ms is adapter- or runner-measured and labeled. Tokens, cost, and
trigger accuracy appear only when the adapter reported them; otherwise they are
unavailable. Do not estimate them.
4. Baseline Blessing
run never writes a baseline. After reviewing the artifact, bless explicitly:
python3 scripts/behavioral-eval.py bless --skill "$SKILL_NAME" \
--report <artifact>/report.json --accept --blessed-by <reviewer>bless refuses failing, blocked, not-run, or unattributed runs. Without
--accept it writes <baseline>.candidate.json and exits 1 when the floor would
change. A measured rate below a blessed floor is a visible regression.
5. Manual Fallback
With no adapter, run the same cases in isolated sessions and grade the captured
outputs by hand. Mark BLOCKED/NOT_RUN when isolation or provider metadata is
missing. do-harness eval is a possible backend only through an adapter; its
fixture format is not verified compatible with this contract.
Behavioral Verdict
- PASS (behavioral, selected cases): actual paired outputs meet the declared criteria; does not imply all cases passed or the skill improved the baseline
- NEEDS_WORK (behavioral): captured outputs expose gaps or regressions
- FAIL (behavioral): captured outputs fail core criteria
- NOT_RUN / BLOCKED: one or both sides were not executed; no paired verdict
Report scope, case IDs, assertion evidence, and baseline differences. A single passing output cannot establish improvement over a baseline.
Evidence Layout
Runner-owned layout; do not hand-write result files.
<skill>-workspace/behavioral-<stamp>/
plan.json # digests and tasks; prompts withheld by default
report.json # aggregate + baseline comparison
candidate-baseline.json # only when a blessed baseline exists
tasks/case-<id>/<configuration>/
task.json # redacted; prompt withheld unless requested
fixtures/ # staged case inputs
workspace/ # adapter scratch directory
result.json # validated, redacted result
adapter.stderr # bounded diagnostics, when presentManual trials may keep <skill>-workspace/iteration-N/ (hand-authored), but
label them manual so they are not confused with runner output. Artifacts are
redacted and prompt capture is opt-in; keep temporary trials out of the repo and
retain only what review needs.
Assertion Rules
Good: evals.json contains at least 3 cases with unique integer IDs or
The answer identifies a missing fixture by path and reports behavioral NOT_RUN.
Bad: The output is good, The skill feels smart, or The answer mentions Jules.
Every scored assertion needs evidence; definition review does not score behavior.
Output Format
## Eval Report: <skill-name>
- Mode: static / manual-paired
- Goal and case IDs: <what was checked>
- Structure/schema: PASS/NEEDS_WORK/FAIL (static)
- Definition review: <findings with case IDs>
- Behavioral: NOT_RUN/BLOCKED/PASS/NEEDS_WORK/FAIL (selected cases only)
- Baseline: not run / actual comparison
- Measurements: measured values with sources / not measured
### Assertion Evidence
- <case ID, assertion, result, evidence; definition-only if static>
### Issues and Next Fixes
- <highest-value fix>
### Verdict
<status> (<static or behavioral scope>) — <evidence-based summary>Bundled Tools
scripts/check_structure.py— standalone static layout/schema/fixture auditreferences/verification-checklist.md— domain-specific checklist starterreferences/evaluating-skills.md— adapter contract, artifacts, baselinesscripts/behavioral-eval.py(repo-level) — opt-in paired runner; no model call of its own, no default-gate dependency
See Also
skill-creator— Author or improve skills from findingsintent-classifier— Route requests to appropriate skillsagents-docs/SKILL_EVAL_TIERS.md— tier mapping; Tier 3 is the opt-in adapter runner
Rationalizations
| Rationalization | Reality |
| "The static checker passed, so the skill works" | Static PASS checks definitions, not behavior; paired trials need actual outputs. |
| "One case is enough" | This template requires at least 3 definitions; behavioral coverage must be reported separately. |
| "I can estimate the missing metrics" | Unmeasured values stay not measured; estimates are not evaluation evidence. |
| "The runner exited 0, so the skill is effective" | Exit 0 covers selected cases only; cite scope, denominator, and baseline delta. |
| "I can raise the baseline to make it green" | Floors change only through an attributable, reviewed bless; a drop is a regression. |
| "Activation was not observed, so it probably loaded" | Unobserved activation blocks the case; inference is not evidence. |
Red Flags
- Declaring behavioral PASS from a static schema check
- Claiming improvement without an actual isolated baseline
- Reporting token usage, timing, costs, or trigger accuracy without measurements
- Tagging a case negative while expecting the target skill to execute
- Using subjective assertions or verdicts without evidence
- Blessing a baseline without review, or letting a run write it automatically
- Counting a missing without-skill side as an implicit pass
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

