
Check
- 2.5k installs
- 1.1k repo stars
- Updated June 18, 2026
- juliusbrussee/cavekit
cavekit check diffs SPEC.md against code and reports invariant, interface, and task drift.
About
Cavekit check is a read-only drift detector that diffs SPEC.md against current code and reports violations grouped by severity without writing anything. It loads SPEC.md, parses args for section V invariants, section I interfaces, section T tasks, or all three, then classifies each item as hold, violate, unverifiable, match, drift, missing, extra, or stale. Invariant checks translate each V row into a verifiable claim, grep relevant files, and record file line evidence. Interface checks compare declared shapes to implementations. Task checks flag stale x rows when claimed work is absent. Reports use caveman format with summary counts and one-line remedy hints per class, but never invoke fixes automatically. Run after each build and before ship because drift caught here is a diff while drift in production is a bug entry.
- Read-only diagnostic: reports drift, writes nothing, never auto-fixes.
- Checks section V invariants, section I interfaces, and section T task status.
- Classifies each item with file line evidence and severity grouping.
- Flags stale tasks marked done without corresponding code evidence.
- Ends with remedy hints pointing to spec or build skills without invoking them.
Check by the numbers
- 2,475 all-time installs (skills.sh)
- +79 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #67 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 4, 2026 (Skillselion catalog sync)
check capabilities & compatibility
- Capabilities
- section v invariant verification with evidence · section i interface shape comparison · section t task staleness detection · severity grouped caveman reports · remedy hints without auto invocation
- Use cases
- code review · testing · documentation
- Runs
- Runs locally
- Pricing
- Free
What check says it does
Pure diagnostic. Reports violations. Writes nothing.
npx skills add https://github.com/juliusbrussee/cavekit --skill checkAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.5k |
|---|---|
| repo stars | ★ 1.1k |
| Security audit | 3 / 3 scanners passed |
| Last updated | June 18, 2026 |
| Repository | juliusbrussee/cavekit ↗ |
Does the code still match SPEC.md invariants and interfaces?
Read-only drift detector diffing SPEC.md invariants, interfaces, and tasks against current code with severity-grouped reports.
Who is it for?
Spec-driven projects using Cavekit SPEC.md before shipping or after builds.
Skip if: Skip when no SPEC.md exists or when the user wants automatic code fixes.
When should I use this skill?
User asks to check drift, audit the spec, verify invariants, or compare spec vs code.
What you get
A severity-grouped drift report with hold, violate, drift, missing, and stale classifications.
- severity-grouped drift report
- invariant violation list
Files
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.nif task exists; else spec skillamend §T. - STALE → spec skill
amend §Tto uncheck. - EXTRA → spec skill
amend §Ito 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.
Related skills
How it compares
Choose Cavekit Check for non-destructive spec audits instead of skills that rewrite code or SPEC.md automatically.
FAQ
Does check modify SPEC.md or code?
No. It is read-only and suggests remedies without invoking fix skills.
What does stale mean on section T?
A task marked x with no evidence the claimed work exists in the codebase.
When should I run check?
After each build and before ship to catch drift early.
Is Check safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.