check · juliusbrussee — spec drift detector skill for Claude Code
The skill reads SPEC.md and diffs it against the code. It writes nothing and only reports violations grouped by severity.
npx skills add JuliusBrussee/cavekit --skill check -a claude-codeWhat check does
A spec that drifts silently from code is the top failure mode in spec-driven development. check is the detector. Run it after each /build and before every ship: drift caught here is a diff, drift caught in prod is a bug.
The skill reads SPEC.md. If the file is missing, it stops. Then it parses the invocation args: §V checks invariants only (the default), §I checks interfaces, §T audits task status against code, --all runs all three. For each invariant it turns the claim into something verifiable, greps the files and marks the result HOLD, VIOLATE or UNVERIFIABLE. For interfaces it marks MATCH, DRIFT, MISSING or EXTRA. For tasks it checks whether an x row has real code behind it and flags unbacked rows as STALE.
The report is terse and grouped by severity: address, file and line as evidence. It ends with a one-line hint per class. The skill suggests fixing the code or calling the spec skill with bug:, but never invokes anything. Zero writes: no SPEC.md edits, no code edits, no sub-agents. No scores either — each item is binary, holds or drifts.
What it helps with
- The spec drifts from the code unnoticed, and you find out in production
- Nobody rechecks invariants and interfaces against
SPEC.mdafter code changes - Task checkmarks in the spec go stale and no longer match real files
Example prompts for the agent
- check drift between the spec and the code
- check the invariants in §V
- verify the interfaces in §I against the implementation
How to install check
1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill check -a claude-code2Manually: put the files in place
~/.claude/skills/check/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/check/
1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill check -a codex2Manually: put the files in place
.agents/skills/check/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill check -a cursor2Manually: put the files in place
.cursor/skills/check/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install JuliusBrussee/cavekit check2Manually: put the files in place
.github/skills/check/SKILL.md1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill check -a gemini-cli2Platform CLI
gemini skills install https://github.com/JuliusBrussee/cavekit --path skills/checkManually: put the files in place
.devin/skills/check/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill check -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about check
What does the check skill do?
It diffs SPEC.md against the current code and reports violations grouped by severity. It writes nothing and edits nothing.
How do I install check in Claude Code?
Run npx skills add JuliusBrussee/cavekit --skill check -a claude-code. The skill file lands at ~/.claude/skills/check/SKILL.md.
Does the skill fix violations itself?
No. It reports and hints at the next step: fix the code or call the spec skill. It never invokes fixes.
Source text
SKILL.md · MIT
---
name: check
description: |
Read-only drift detector. Diffs SPEC.md against current code and reports
violations grouped by severity. Writes nothing — suggests remedies via
the spec or build skills but never invokes them. Triggers when the user
asks to check drift, audit the spec, verify invariants, or ask whether
code still matches the spec. Phrasings: "check drift", "audit the spec",
"does the code still match §V", "check invariants", "spec vs code".
---
# check — drift report
Pure diagnostic. Reports violations. Writes nothing. User decides remedy.
Spec drifting silently from code is the #1 SDD failure mode. check is the
detector. Run it after each `/build` and before each ship — drift caught here is
a diff; drift caught in prod is a §B.
## LOAD
1. Read `SPEC.md`. If missing → "no spec, nothing to check." Stop.
2. Parse invocation args:
- `§V` → check invariants only (default)
- `§I` → check interfaces
- `§T` → audit task status vs code
- `--all` → all three
## CHECK §V — invariants
For each V<n>:
1. Translate invariant into verifiable claim about code.
2. Grep / read relevant files.
3. Classify: **HOLD** / **VIOLATE** / **UNVERIFIABLE**.
4. Record address + file:line evidence.
## CHECK §I — interfaces
For each I item:
1. Locate implementation.
2. Classify:
- **MATCH** — shape in code = shape in spec.
- **DRIFT** — impl exists, shape differs.
- **MISSING** — impl absent.
- **EXTRA** — code exposes surface not in §I.
## CHECK §T — tasks
For each T<n>:
1. If `x`: verify claimed work present.
2. If `~`: note as in-progress.
3. If `.`: note as pending.
4. Flag `x` rows with no evidence as **STALE**.
## REPORT
Caveman. Grouped by severity.
```
## §V drift
V2 VIOLATE: auth/mw.go:47 uses `<` not `≤`. see §B.1.
V5 UNVERIFIABLE: no test covers ∀ req path.
## §I drift
I.api DRIFT: POST /x returns `{result}` not `{id}`. route.go:112.
I.cmd MISSING: `foo bar` absent from cli/*.go.
## §T drift
T3 STALE: status `x`, no middleware file exists.
## summary
2 violate. 1 missing. 1 stale. 1 unverifiable.
next: spec skill with `bug:` or fix code at cited lines.
```
## REMEDY HINTS (not actions)
End report with one-line hint per class:
- VIOLATE / DRIFT → invoke spec skill `bug: <V.n>` or fix code.
- MISSING → invoke build skill on `§T.n` if task exists; else spec skill `amend §T`.
- STALE → spec skill `amend §T` to uncheck.
- EXTRA → spec skill `amend §I` to document, or delete code.
Never invoke fixes. Report only.
## NON-GOALS
- Zero writes. No SPEC.md edits. No code edits.
- No sub-agents. Main thread reads.
- No scores, no grades. Binary per item: holds or drifts.
© JuliusBrussee · MIT · JuliusBrussee/cavekit
Similar skills
All skills for Code review and refactoring →check by other authors comes first.