Skill validator
Use to audit skill QUALITY (distinct from skill-eval, which measures behavioral effect) — scores every SKILL.md on six axes via an LLM judge and runs a deterministic token-budget check. Triggers: "validate the skills", "skill quality", "are the skills well-written", "audit SKILL.md", "skill scorecard".From its SKILL.md
npx -y skills add Yco-0314/strata --skill skill-validatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.9 KB, 596 tokens by cl100k_base, as published. Nobody here has run it
skill-validator — L5 quality gate (the second L5 gate)
skill-eval answers "does this skill change behavior?" — skill-validator answers "is this
skill well-written?". Two different failure modes; a skill can move a number and still be
bloated, vague, or scope-creeping. Both gate the framework.
Two halves
1. Deterministic budget scan (cheap, instant — no model):
node skills/l5-meta/skill-validator/budget.mjs # scan every SKILL.md
node skills/l5-meta/skill-validator/budget.mjs --self-test
Budgets: description ≤ 1024 chars (agentskills.io spec); body soft-cap ~4000 chars, hard flag
6000 (a resident skill like
ponytailpays this on every turn); > 200 lines flags sprawl.
2. Six-axis LLM judge (via subagents — one judge per skill): Each skill is scored 0-10 on —
- clarity — unambiguous, well-structured, easy for a model to parse.
- actionability — concrete executable steps/rules, not vague aspiration.
- token-efficiency — concise for what it delivers; no bloat or repetition.
- scope-discipline — one clear job; doesn't sprawl into other skills' territory.
- directive-precision — the
descriptionsays WHEN to use the skill, not just WHAT it does (a what-summary makes the model follow the description and skip the body). - novelty — actually changes behavior vs the model's default (not a no-op restatement).
Run the judge the same way skill-eval runs — through subagents when no API key is available
(no claude -p dependency), or adapt to a direct-API runner. The judge model should be strong
(opus); pin it and read scores as a trend, not an absolute bar (LLM-judge scores drift).
How to read
- Budget flag → mechanical fix (trim the body; resident skills are the priority).
- Axis < 6 → a real authoring problem; the
top_issuenames the single most important fix. - A skill that scores high on
skill-validatorbut Δ 0 onskill-evalis well-written but inert; one that moves a number but scores low here is effective but a maintenance liability. The bar is both.
This is the gate every new skill (and every borrow that becomes a skill) passes alongside
skill-eval before shipping. Pairs with improve-loop (which records the results) and
scripts/check-rule-copies.mjs (structural drift).
What ships with it: 1 file
2.6 KB alongside SKILL.md, 1 of them executable
- budget.mjsruns2.6 KB