Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add JuliusBrussee/cavekit --skill check -a claude-code
Open on GitHub

What 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.md after 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-code

2Manually: put the files in place

~/.claude/skills/check/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/check/

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.

check tw93 Reviews diffs and release readiness without modifying your worktree unprompted. Runs read-only checks before you merge or ship code. CX Codex +1 15,800installs check jsmastery-pro Two modes to gate a PR: verify runs the real app and proves it meets the spec, review runs a senior code review with a fresh model. Both are read-only and never edit code. CX Codex +1 4,400installs arch-check codewithmukesh Checks a codebase against the architecture it claims to follow: dependency direction, layer violations, module boundary leaks and cycles. Useful before a release. CX Codex +1 2,800installs indexion-sdd trkbt10 Turns an RFC or spec into SDD requirements and checks them against the code quantitatively. Useful when implementation has to stay inside the document. CX Codex +1 5,000installs tlc-spec-driven Felipe Rodrigues - github.com/felipfr Organizes feature planning and delivery into four adaptive phases: Specify, Design, Tasks, and Execute. It auto-sizes depth by complexity and enforces gates via deterministic Python scripts. CX Codex +1 1,200installs health-check codewithmukesh Grades a .NET project across eight dimensions with letter marks A–F and a rolled-up GPA. Useful at onboarding, before a release, and after a cleanup sprint. CX Codex +1 2,800installs check-compiler-errors cursor This skill runs your project's compile and type-check commands, groups errors by file and category, then fixes the highest-confidence issues automatically. Useful when type errors are blocking local validation or CI. CX Codex +1 2,300installs indexion-documentation trkbt10 This skill measures documentation coverage, finds drift between code and docs, and draws dependency graphs. CX Codex +1 5,000installs

From the same set9

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor