Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
juliusbrussee avatar

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)
At a glance

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
From the docs

What check says it does

Pure diagnostic. Reports violations. Writes nothing.
SKILL.md
npx skills add https://github.com/juliusbrussee/cavekit --skill check

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2.5k
repo stars1.1k
Security audit3 / 3 scanners passed
Last updatedJune 18, 2026
Repositoryjuliusbrussee/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

SKILL.mdMarkdownGitHub ↗

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.

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.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.