Skip to content

/check

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

From plugin
ck
1.2k9 skills7 commands

Claude Code

$ npx -y skills add JuliusBrussee/cavekit --skill check --agent claude-code

SKILL.md

check.SKILL.md
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.
Read more
@juliusbrussee
Ships withck

Frozen — compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.

Stars on GitHub

Momentum

stars in total
1.2k
Star history of JuliusBrussee/cavekit on GitHub, a chart by star-history.com

Other skills on ck.

backprop
Auto-invoked

backprop

Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch…

@juliusbrussee@juliusbrusseeInstall Skill
build
Auto-invoked

build

Plan-then-execute implementation against SPEC.md. Native single-thread loop, no sub-agents. On test or build failure,…

@juliusbrussee@juliusbrusseeInstall Skill
caveman
Auto-invoked

caveman

Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying…

@juliusbrussee@juliusbrusseeInstall Skill
deepen
Auto-invoked

deepen

Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec…

@juliusbrussee@juliusbrusseeInstall Skill
grill
Auto-invoked

grill

Calibrated interrogation of a fuzzy idea before it becomes a spec. Asks one question at a time, recommends an answer, and lands…

@juliusbrussee@juliusbrusseeInstall Skill
research
Auto-invoked

research

Gather external knowledge the spec needs and distill it into §R — the durable research log — so build grounds in facts instead of…

@juliusbrussee@juliusbrusseeInstall Skill

More skills from other plugins.

improve

improve

Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to…

improve2mo12k
@shadcn@shadcnInstall Skill
kiro-debug

kiro-debug

Investigate implementation failures using root-cause-first debugging. Use when an implementer is blocked, verification fails, or…

cc-sdd3w3.8k
@gotalab@gotalabInstall Skill
deep-discuss

deep-discuss

结构化深度讨论 Skill,用于与用户进行多轮问题分析和方案设计。当用户描述一个问题现象、故障表现、 技术困惑、方案选择困难,或明确说"讨论一下"、"帮我分析"、"我遇到一个问题"、"你觉得怎么样"、 "帮我想想"、"我在纠结"时,必须使用本…

Questions about check.

Which coding agents can use check?
check installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.