backprop
Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch…
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
Claude Code
$ npx -y skills add JuliusBrussee/cavekit --skill check --agent claude-code
Codex
$ npx skills add JuliusBrussee/cavekit --skill check -a codex -y
Cursor
$ npx skills add JuliusBrussee/cavekit --skill check -a cursor -y
Gemini CLI
$ npx skills add JuliusBrussee/cavekit --skill check -a gemini-cli -y
GitHub Copilot
$ npx skills add JuliusBrussee/cavekit --skill check -a github-copilot -y
OpenCode
$ npx skills add JuliusBrussee/cavekit --skill check -a opencode -y
Windsurf
$ npx skills add JuliusBrussee/cavekit --skill check -a windsurf -y
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".
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.
1. Read `SPEC.md`. If missing → "no spec, nothing to check." Stop. 2. Parse invocation args:
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.
For each I item:
1. Locate implementation. 2. Classify:
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**.
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.End report with one-line hint per class:
Never invoke fixes. Report only.
Frozen — compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.
Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch…
Plan-then-execute implementation against SPEC.md. Native single-thread loop, no sub-agents. On test or build failure,…
Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying…
Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec…
Calibrated interrogation of a fuzzy idea before it becomes a spec. Asks one question at a time, recommends an answer, and lands…
Gather external knowledge the spec needs and distill it into §R — the durable research log — so build grounds in facts instead of…
Executes the tasks defined in the specified track's plan. Use this to start or continue working on a feature, bug fix, or chore.
结构化深度讨论 Skill,用于与用户进行多轮问题分析和方案设计。当用户描述一个问题现象、故障表现、 技术困惑、方案选择困难,或明确说"讨论一下"、"帮我分析"、"我遇到一个问题"、"你觉得怎么样"、 "帮我想想"、"我在纠结"时,必须使用本…