Lives at the root of your repo as SPEC.md and becomes the single source of truth for what you're building. It writes specs in a terse "caveman" format (defined in FORMAT.md) with sections for goals, constraints, interfaces, invariants, tasks, and bugs. The interesting bit is backprop: when you hit a bug, it traces the cause, adds a row to the bug table, and proposes a new invariant to catch it next time. Also distills specs from existing code if you inherit a project with no documentation. It's opinionated about monotonic numbering and pipe table layouts, which either saves you from bikeshedding or feels rigid depending on your taste. No auto-build, you invoke that yourself.
- skills.sh installs
- 2.7K
- GitHub stars
- 1.2K
- last updated
- Aug 21, 2026
Install
$ npx -y skills add juliusbrussee/cavekit --skill spec --agent claude-codeInstalls into .claude/skills of the current project.
Files
spec — spec mutator
Read FORMAT.md at repo root if not already loaded. Caveman skill applies to all writes here.
DISPATCH
Inspect user request and project state:
- No
SPEC.mdat repo root AND args describe idea → NEW - No
SPEC.mdANDfrom-codein args → DISTILL SPEC.mdexists AND args startbug:→ BACKPROPSPEC.mdexists AND args startamend→ AMENDSPEC.mdexists, no args → ask user which mode
INPUTS — spec is the sole mutator
The other verbs produce material; spec writes it. Ingest their handoff blocks into the right section, show a diff, write on OK:
- grill → sharpened §G + §C
- research → §R rows (add the §R section if absent)
- review → drafted §V lines + the risk verdict
- deepen → §I/§V/§T amendments
⊥ rewrite a section the handoff did not name. Sectioned ownership (see FORMAT.md).
NEW — idea → spec
Input: user idea. If it arrived fuzzy, prefer running grill first.
Sponsors
Details
- Repository
- github.com/juliusbrussee/cavekit
- Categories
- Code Review & Quality, Debugging
- First seen
- May 16, 2026
