Extend cavekit from a 3-command core into the simplest full SDD loop, every change traced to a documented pain point or research finding. Additive and backward compatible: the spec → build → check core is unchanged, §R is optional, existing SPEC.md files still parse. Four reach-for verbs (skill + thin command, opt-in, right-sized): - grill calibrated interrogation → sharp §G/§C, one question at a time - research external knowledge → new compressed §R log, every finding sourced - review adversarial senior review of the spec before build, go/no-go gate - deepen spare-budget design pass — make one shallow module deep (Ousterhout) Format: add §R RESEARCH, sectioned ownership (no verb rewrites a foreign section — kills the "tool deleted my spec" failure mode), and a right-size rule (ceremony scales to blast radius, never a typo). Core sharpened: build now names which test proves each §V (verification contract) and reads §R; check reframed as the drift detector. Original spec/build/check commands converted to thin pointers to their skills (single source of truth). Nine skill descriptions cost ~1.1k context, 16x lighter than spec-kit's 18.6k. Grounded in real pain points (spec-kit #230/#1401/#1686, BMAD #1188/#446/#2003, OpenSpec #1212, Kiro #5239, HN threads) and research (Anthropic context engineering, ADaPT NAACL'24, Huang ICLR'24, Du ICML'24, TDAD'26). Design was adversarially reviewed before commit; 2 BLOCK + 2 HARDEN findings fixed. Full sourced traceability in CHANGELOG. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J3whGonu8mvZLJC9xx2hn4
5.9 KiB
CHANGELOG
v4.1.0 — the full loop
Additive. Backward compatible with v4.0.0 — the three-command core is
unchanged; §R is optional; existing SPEC.md files still parse. Every
change below traces to a documented pain point or a research finding, not
a hunch.
added — four reach-for verbs
The core loop stays spec → build → check. Four new verbs join it, each
opt-in and right-sized — you reach for them only when the change earns it:
/ck:grill— calibrated interrogation of a fuzzy idea into a sharp§G/§C, one question at a time, before a spec exists./ck:research— external knowledge into the new§Rlog; every finding cites a source, unverified ones flagged, never written as fact./ck:review— adversarial senior review of the spec before build: refutes rather than rubber-stamps, hardens§V, ends in a go/no-go gate./ck:deepen— spare-budget design pass. Picks the one shallowest module, proposes a deeper shape, holds behavior constant (tests green before and after).
added — format
§R RESEARCH— optional pipe-table log of external knowledge (id|topic|finding|src).- Sectioned ownership — each verb writes only the sections it owns; no
verb rewrites a foreign section.
specremains the sole general mutator. - Right-size rule — ceremony scales to blast radius, never to ego.
changed
buildnow names the exact test that proves each§Vit touches (a verification contract) instead of "add tests" — "do TDD" alone backfires.buildreads§Rso it grounds in researched facts, not re-derivation.checkreframed as the drift detector: run after each build, before each ship.- skill descriptions kept ultra-tight — nine descriptions cost ~1.1k context, 16× lighter than spec-kit's 18.6k.
why — pain points → changes (sourced)
| pain point (source) | change |
|---|---|
| Token / context tax — spec-kit loads ~18.6k tokens every session (spec-kit #1401); BMAD burns 80–100k/step (#1188) | caveman descriptions keep cavekit's whole nine-skill set at ~1.1k context — 16× lighter |
| Specs drift silently with no detector (OpenSpec #1212; spec-kit #1686) | check reframed as the drift detector, run every build |
| Ceremony overkill — 10–15× overhead, "sledgehammer for a nut" (BMAD #2003; HN 45610996) | right-size rule; core stays 3 commands; verbs are opt-in |
| Agents ignore the spec / mark done without doing (spec-kit #230; BMAD #446) | build verification contract names which test proves each §V |
| "Process without library context = organized hallucinations" (Tessl) | /research + durable §R external-knowledge log |
| No tool adversarially reviews the plan before build (competitor scan) | /review — separate skeptic anchored to an external oracle |
| Tools overwrite/delete spec files (Kiro #5239; Conductor) | sectioned ownership — no verb rewrites a section it does not own |
why — research backing
- Spec as durable external memory across context resets — Anthropic, Effective Context Engineering (2025); the core justification for SDD.
- Plan in a separate phase — ADaPT (NAACL 2024).
- Verification contract names which tests, not "do TDD" — TDAD (2026).
- Critique must be external + adversarial, not introspective — LLMs cannot self-correct alone (Huang et al., ICLR 2024); separate-critic debate works (Du et al., ICML 2024).
- Gate effort by difficulty — Self-Critique Paradox (Snorkel, 2025); right-size follows directly.
- Deep modules — Ousterhout, A Philosophy of Software Design (
/deepen).
v4.0.0 — the rewrite
Full rewrite. Not backward compatible with v3.x. Different shape, same name.
philosophy
Kept only what earned its tokens:
SPEC.md— durable, addressable, caveman-encoded- three commands —
/ck:spec,/ck:build,/ck:check - two skills —
cavemanencoding,backpropprotocol
added
- single
SPEC.mdformat with six addressable sections (§G §C §I §V §T §B) - pipe-table encoding for §T (tasks) and §B (bugs)
- caveman symbol set (→ ∴ ∀ ∃ ! ? ⊥ ≠ ∈ ∉ ≤ ≥ & |) as default for spec writes
- bug → §B → §V backprop reflex wired into
/ck:buildfailure path /ck:spec from-code— distill spec from existing codebase/ck:check— read-only drift report (replaces five v3 review flavors)npx skills add JuliusBrussee/cavekitone-line install path (commands + skills)
removed (relative to v3.1.0)
- 13 of 16 commands (sketch/map/make/ship/review/revise/status/init/config/resume/help/design/research/team/make-parallel)
- all 12 named sub-agents
- 19 of 21 skills
- Go binary and source (
cmd/,internal/,bin/,cavekitexecutable) - shell hooks (
hooks/,scripts/cavekit-launch-session.sh, stop-hook state machine) - TS tooling (
scripts/cavekit-picker.ts,scripts/cavekit-router.cjs) - Codex peer-review bridge (
.codex-plugin/) context/kits/,context/plans/,context/impl/,context/refs/directories- autonomous loop, per-task budgets, model-tier routing
- design-system
DESIGN.mdworkflow - knowledge-graph
graphify-out/integration - parallel wave execution and team mode
install.sh(216 lines → 0)
changed
- caveman was opt-in for inter-agent chatter in v3; default for spec writes in v4
- version: 3.1.0 → 4.0.0 (major rewrite, semver respected)
- README, plugin metadata, marketplace entry
migration
See UPGRADE.md. No automated migrator — the v3 kit
shape does not map cleanly to v4's single file. Recommended path: run
/ck:spec from-code on your existing v3 project to distill a v4 spec
from your built code.
v3 reachability
v3 is frozen at tag v3.1.0. Stays installable and documented. Fixes
only for critical bugs; no new features.
v3.1.0 and prior
See git log before the v4.0.0 commit, or check out v3.1.0:
git checkout v3.1.0