build
Plan-then-execute implementation against SPEC.md. Native single-thread loop, no sub-agents. On test or build failure,…
Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch recurrence, append to §B. This is the one non-obvious thing SDD does that plan-then-execute doesn't. Triggers on test failure, bug report, post-mortem, or
Claude Code
$ npx -y skills add JuliusBrussee/cavekit --skill backprop --agent claude-code
Codex
$ npx skills add JuliusBrussee/cavekit --skill backprop -a codex -y
Cursor
$ npx skills add JuliusBrussee/cavekit --skill backprop -a cursor -y
Gemini CLI
$ npx skills add JuliusBrussee/cavekit --skill backprop -a gemini-cli -y
GitHub Copilot
$ npx skills add JuliusBrussee/cavekit --skill backprop -a github-copilot -y
OpenCode
$ npx skills add JuliusBrussee/cavekit --skill backprop -a opencode -y
Windsurf
$ npx skills add JuliusBrussee/cavekit --skill backprop -a windsurf -y
name: backprop description: | Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch recurrence, append to §B. This is the one non-obvious thing SDD does that plan-then-execute doesn't. Triggers on test failure, bug report, post-mortem, or explicit user ask.
Plan-then-execute fixes the code & forgets. SDD fixes the code AND edits spec so recurrence is impossible. That edit is backprop.
Read failure output / bug report. Find exact file:line of wrong behavior. Name root cause in one caveman sentence.
Ask three questions:
Draft the spec change. Never skip §B; §V/§I/§T are case-by-case.
Template:
§B row: B<next>|<date>|<root cause>|V<N> §V line: V<next>: <testable rule that would have caught it>
Example:
§B row: B3|2026-04-20|refund job ran twice on retry|V7 §V line: V7: ∀ refund → idempotency key check before charge reversal
New invariant without test = lie. Add failing test first. Name test so it cites the invariant: `TestV7_RefundIdempotent`.
Fix code. Run test. Must pass. Run full suite. Must not regress.
Commit spec edit + test + code fix together. Commit msg: `backprop §B.<n> + §V.<N>: <one-line cause>`.
**Bad**: V8: code should be correct. **Good**: V8: ∀ pg_query ! params interpolated via driver, ⊥ string concat.
Still append §B entry — record that this failure mode was considered. Future bug with same smell → §B search shows precedent.
Every backprop run produces: 1. §B entry (always). 2. §V entry (usually). 3. Test file (when §V added). 4. Code fix. 5. One commit.
No dashboards. No log files. SPEC.md + git is the full history.
Frozen — compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.
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…
Read-only drift detector. Diffs SPEC.md against current code and reports violations grouped by severity. Writes nothing —…
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,用于与用户进行多轮问题分析和方案设计。当用户描述一个问题现象、故障表现、 技术困惑、方案选择困难,或明确说"讨论一下"、"帮我分析"、"我遇到一个问题"、"你觉得怎么样"、 "帮我想想"、"我在纠结"时,必须使用本…