Skip to main content
skill CX Codex

spec · juliusbrussee — Claude Code skill: what it does, how to install

Creates and amends SPEC.md at repo root, recording goals, invariants, tasks, and bugs using caveman formatting.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add JuliusBrussee/cavekit --skill spec -a claude-code
Open on GitHub

What spec does

This skill serves as the sole mutator for SPEC.md at the repo root. It drafts a spec from an idea or extracts structure directly from existing code. The tool also handles targeted edits and bug postmortems.

Operation depends on FORMAT.md at the repository root for caveman formatting rules. When handling issues via bug:, it searches the codebase for the root cause and appends a row to §B. If needed, it drafts a new invariant in §V to stop recurrences.

Every update presents a diff and waits for user approval. It works entirely within the main thread. No sub-agents or automated builds are triggered.

What it helps with

  • create a structured SPEC.md file from a project idea
  • extract invariants and constraints from existing repository code
  • update specific spec sections without rewriting unrelated parts
  • record bug root causes in §B alongside preventative invariants

Example prompts for the agent

  • write the spec for user authentication service
  • bug: session expires immediately on token refresh
  • amend §V.3: update rate limit threshold

How to install spec

1Skills CLI (Vercel)

npx skills add JuliusBrussee/cavekit --skill spec -a claude-code

2Manually: put the files in place

~/.claude/skills/spec/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/spec/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about spec

How to install spec in Claude Code?

Run npx skills add JuliusBrussee/cavekit --skill spec -a claude-code. The skill will be installed to ~/.claude/skills/spec/SKILL.md.

What does spec do?

It manages the SPEC.md file at your repository root, handling initial creation, extraction from existing code, targeted section edits, and bug logging.

What prerequisites are needed for spec?

It expects a FORMAT.md file at the root of the repository to define caveman encoding rules and pipe-table layouts for sections §T and §B.

Source text

SKILL.md · MIT
---
name: spec
description: |
  Create, amend, or backprop bugs into SPEC.md at repo root. Sole mutator
  of the project spec. Triggers when the user asks to write a spec, start
  a new spec, distill a spec from existing code, add invariants, amend
  sections (§G, §C, §I, §V, §T, §B), or record a bug via backprop.
  Common phrasings: "write the spec for...", "new spec", "bug: ...",
  "amend §V.3", "distill spec from code", "spec this idea". Reads and
  follows FORMAT.md for the caveman encoding rules and pipe-table shape
  of §T and §B.
---

# 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:

1. No `SPEC.md` at repo root AND args describe idea → **NEW**
2. No `SPEC.md` AND `from-code` in args → **DISTILL**
3. `SPEC.md` exists AND args start `bug:` → **BACKPROP**
4. `SPEC.md` exists AND args start `amend` → **AMEND**
5. `SPEC.md` exists, 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.

Steps:
1. Extract goal (1 line, caveman). → §G.
2. List constraints user stated or implied. → §C.
3. List external surfaces user named. → §I.
4. §R only if **research** ran — else omit the section (right-size).
5. Propose initial invariants. → §V (numbered V1…).
6. Break goal into ordered tasks. → §T pipe table, all status `.`, ids T1…
7. §B section with header row only (`id|date|cause|fix`).

Write to `SPEC.md`. Show user full file. Ask: "spec OK? `/review` if high-blast-radius, else `/build`."

## DISTILL — code → spec

Walk repo. Produce §G (infer from README/package.json/main entry), §C (infer from stack), §I (enumerate public APIs/CLIs/configs), §V (derive from tests and assertions), §T (one task per known TODO or missing test), §B (empty).

Caveman everywhere. Flag uncertain items with `?` in text so user can confirm.

## BACKPROP — bug → §B + §V

Input: `bug: <description>`.

Steps:
1. Parse bug description.
2. Find root cause (read relevant code).
3. Decide: would a new invariant catch recurrence? If yes → draft `V<next>`.
4. Append §B row: `B<next>|<date>|<cause>|V<N>`.
5. Append new invariant to §V.
6. If fix also changes behavior → add/update §T rows.
7. Show diff. Apply only on user OK.

Rule: every bug gets a §B entry. Invariant optional but preferred.

## AMEND — targeted edit

Input: `amend §V.3` or `amend §T` etc.

Read that section. Show current. Ask user what changes. Write. Show diff.

Never silently rewrite sections user did not name.

## OUTPUT RULES

- Caveman format per `FORMAT.md`.
- Preserve identifiers, paths, code verbatim.
- Numbering monotonic — never reuse §V.N or §B.N.
- §T row `cites` column ! list §V/§I deps: `T5|.|impl auth mw|V2,I.api`.

## NON-GOALS

- No sub-agents. Main thread writes.
- No dashboards, no logs, no state files beyond SPEC.md itself.
- No auto-build after spec. User invokes build explicitly.

© JuliusBrussee · MIT · JuliusBrussee/cavekit

Similar skills

All skills for Agent setup: memory, context, orchestration →

spec by other authors comes first.

spec Klerith Guides you through spec-driven development before writing any code. It asks structured questions to clarify scope, then writes the spec into the specs/ directory. CX Codex +1 4,100installs spec codewithmukesh Turns a rough feature idea into a written specification with acceptance criteria. Asks questions in rounds until every gap is closed. CX Codex +1 2,800installs spec owainlewis The skill writes one implementation-ready spec for one change: required behavior, technical design, failure handling and acceptance checks. CX Codex +1 402installs write-spec official anthropics Turns vague ideas, feature requests, or problem statements into structured PRDs with goals, non-goals, and prioritized requirements. CX Codex +1 3,600installs cursor-spec-interviewer stark-ai-de Turns a vague coding request into a verified Cursor Agent implementation spec with bounded scope, acceptance criteria and a plan. CX Codex +1 2,600installs adopt-spec zernie Turns an existing CLAUDE.md or AGENTS.md into a typed CLAUDE.md.spec.ts without touching the original file. Useful when you want lint-checked instructions but dread rewriting them. CX Codex +1 1,800installs 4-spec challengepost Turns an approved PRD into a technical blueprint: stack, where it runs, components, data, file structure. The last planning step before code. CX Codex +1 1,800installs code-to-spec smallnest Reads an existing project and rebuilds a SPEC document from its code, config and tests. Useful when there is no spec and you still need to understand the thing. CX Codex +1 470installs

From the same set9

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor