skill-rot
Verifies the checkable claims inside SKILL.md files still hold against the current repo and stamps fresh ones.
skill-rot
ADLC phase: calibration (cross-phase) · Gate: every skill's verifiable claims (commands, paths, scripts) still resolve against the current repo.
What it defends against
Skills are caches, and a stale cache delivers misinformation with the authority
of an expert. That is worse than no skill at all. skill-rot walks each SKILL.md,
extracts the claims it can actually check (command names, file paths, and
npm/npx/pnpm/yarn script references), and verifies them against the
repo. Verifiable-but-failing claims are stale and fail the gate; claims it
cannot adjudicate (URLs, missing package.json) are unverifiable and never
counted against you. Run it weekly in CI to keep the skill corpus honest.
Usage
adlc skill-rot [path ...] [--write] [--json]Positional paths override the default search roots (.claude/skills,
.agents/skills, skills), which are searched only when they exist.
| Flag | Description |
|---|---|
--write | When every claim in a skill is ok, upsert last-verified: <YYYY-MM-DD> into its frontmatter. Skills with stale claims are never stamped. |
--json | Machine-readable output with skills[] and a summary. |
Exit codes
SKILL.md files found, or bad input).2: gate fails. At least one skill has stale claims.Example
$ adlc skill-rot .claude/skills
SKILL OK STALE UNVERIFIABLE
----------------------------- -- ----- ------------
.claude/skills/build/SKILL.md 7 1 2
✗ 1 skill has stale claims (command `pnpm turbo` no longer resolves)
exit 2Go deeper
packages/skill-rot. See the toolkit overview for how skill freshness feeds the calibration loop.