backprop
Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch…
Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying precise. Triggers on any write to SPEC.md or when user says "caveman", "compress this", "be brief".
Claude Code
$ npx -y skills add JuliusBrussee/cavekit --skill caveman --agent claude-code
Codex
$ npx skills add JuliusBrussee/cavekit --skill caveman -a codex -y
Cursor
$ npx skills add JuliusBrussee/cavekit --skill caveman -a cursor -y
Gemini CLI
$ npx skills add JuliusBrussee/cavekit --skill caveman -a gemini-cli -y
GitHub Copilot
$ npx skills add JuliusBrussee/cavekit --skill caveman -a github-copilot -y
OpenCode
$ npx skills add JuliusBrussee/cavekit --skill caveman -a opencode -y
Windsurf
$ npx skills add JuliusBrussee/cavekit --skill caveman -a windsurf -y
name: caveman description: | Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying precise. Triggers on any write to SPEC.md or when user says "caveman", "compress this", "be brief".
Applies to SPEC.md writes, spec-referencing prose, backprop entries. Does NOT apply to code, error strings, commit messages, PR descriptions.
Prefer over words:
→ leads to / becomes / on <x> ∴ therefore / fix ∀ for all / every ∃ exists / some ! must / required ? may / optional / unknown ⊥ never / forbidden / nil ≠ not equal ∈ in ∉ not in ≤ at most ≥ at least & and | or § section reference
Never compress:
**Invariant**:
V<n>: <subject> <relation> <condition> V1: ∀ req → auth check before handler V2: token expiry ≤ current_time → reject
**Bug row** (pipe table under §B):
id|date|cause|fix B1|2026-04-20|token `<` not `≤`|V2
**Task row** (pipe table under §T):
id|status|task|cites T3|x|add auth mw|V1,I.api
Status: `x` done, `~` wip, `.` todo. Escape literal `|` as `\|`.
**Interface**:
<kind>: <name> → <shape>
api: POST /x → 200 {id:string}
cmd: `foo bar <arg>` → stdout JSON
env: FOO_KEY ! set**Bad**: > The system should ensure that every incoming request is properly authenticated before being forwarded to its corresponding handler function.
**Good**: > V1: ∀ req → auth check before handler
**Bad**: > We discovered that the token expiration check in the middleware was using a strict less-than comparison operator, which meant tokens were being rejected at the exact moment of their expiry.
**Good**: > B1: token `<` not `≤` → reject @ expiry boundary.
**Bad**: > The POST endpoint at /x accepts a JSON body and returns a 200 response with an object containing the created id.
**Good**: > api: POST /x → 200 {id}
If cutting a word loses a fact, keep it. Caveman is compression, not amputation.
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,…
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,用于与用户进行多轮问题分析和方案设计。当用户描述一个问题现象、故障表现、 技术困惑、方案选择困难,或明确说"讨论一下"、"帮我分析"、"我遇到一个问题"、"你觉得怎么样"、 "帮我想想"、"我在纠结"时,必须使用本…