Skip to main content
skill CX Codex

caveman · juliusbrussee — Claude Code skill: compress SPEC.md by ~75%

A skill that rewrites SPEC.md and spec-adjacent notes in telegraphic caveman style. It cuts roughly 75% of the tokens prose would take.

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

What caveman does

The skill fires on any write to SPEC.md or spec-referencing text, backprop entries included. It also triggers on the words "caveman", "compress this" and "be brief". The /spec, /build and /check commands load it.

Inside are a grammar and a symbol table. Articles go, along with filler like "just" and "basically", auxiliary verbs, pleasantries and hedging. Symbols replace words: → for leads-to, ∀ for every, ! for required, ⊥ for forbidden. Invariants read as V1: ∀ req → auth check before handler, bugs and tasks become pipe tables, interfaces collapse to api: POST /x → 200 {id:string}.

Code, paths, URLs, identifiers, versions, error strings, SQL, regex, JSON and YAML are never compressed. For external review docs, commit messages and diff comments the skill steps aside and returns normal English. If cutting a word loses a fact, the word stays. Compression, not amputation.

What it helps with

  • fit a spec into context without dropping facts
  • write invariants as short lines instead of paragraphs
  • keep bugs and tasks in tables that cite invariants
  • describe an endpoint in a single line
  • shorten spec-adjacent prose on a "be brief" request

Example prompts for the agent

  • rewrite SPEC.md in caveman
  • compress this: the auth section
  • be brief, add an invariant for token expiry

How to install caveman

1Skills CLI (Vercel)

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

2Manually: put the files in place

~/.claude/skills/caveman/SKILL.md

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

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

Questions about caveman

How do I install caveman in Claude?

Run npx skills add JuliusBrussee/cavekit --skill caveman -a claude-code. The skill lands at ~/.claude/skills/caveman/SKILL.md.

What does caveman do?

It compresses writes to SPEC.md and nearby text: articles, filler and hedging go, and some words become symbols. Code, paths, identifiers and error strings stay untouched.

When does caveman not apply?

In code, error strings, commit messages and PR descriptions. It also steps aside when you need prose for external review or a plain-English explanation.

Source text

SKILL.md · MIT
---
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".
---

# caveman — spec encoding

Applies to SPEC.md writes, spec-referencing prose, backprop entries.
Does NOT apply to code, error strings, commit messages, PR descriptions.

## GRAMMAR

- Drop articles (a, an, the).
- Drop filler (just, really, basically, simply, actually).
- Drop aux verbs where fragment works (is, are, was, were, being).
- Drop pleasantries.
- No hedging (skip "might", "perhaps", "could be worth").
- Fragments fine.
- Short synonyms: fix > implement, big > extensive, run > execute.

## SYMBOLS

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
```

## PRESERVE VERBATIM

Never compress:

- Code blocks, snippets, one-liners with backticks.
- Paths: `src/auth/mw.go`.
- URLs.
- Identifiers: function names, variable names, env vars.
- Numbers and versions.
- Error message strings.
- SQL, regex, JSON, YAML.
- Quoted strings.

## SHAPES

**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
```

## EXAMPLES

**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}

## BOUNDARIES

- User asks for prose explanation → switch to normal English.
- Spec documents for external review (RFC, pitch) → normal English.
- Commit message → normal English (git readers expect it).
- Diff comment in code → normal English.

## WHEN UNSURE

If cutting a word loses a fact, keep it. Caveman is compression, not amputation.

© JuliusBrussee · MIT · JuliusBrussee/cavekit

Similar skills

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

caveman by other authors comes first.

caveman JuliusBrussee Cuts filler and polite greetings from agent responses while keeping technical facts and code exact. Stays active until turned off. CX Codex +1 593,100installs caveman Alireza Rezvani Turns Claude Code into a terse communication mode that keeps technical meaning while cutting filler. Use it when short answers and lower token use matter. 493installs caveman JuliusBrussee Switches the agent into terse caveman-style replies while keeping technical accuracy. Cuts token usage by roughly 75%. CX Codex +1 3,700installs caveman Shawnchee Enables an ultra-terse mode that strips pleasantries, narrations, and filler words to save context tokens on every request. CX Codex +1 1,100installs caveman-compress JuliusBrussee Compresses CLAUDE.md, todo lists, and other prose files into a shorter format while retaining a readable backup. CX Codex +1 411,500installs tldr-overview parcadei The skill maps an unfamiliar project through the TLDR stack: file tree, code structure, call graph and complexity hot spots. CX Codex +1 485installs caveman-help JuliusBrussee A quick reference for Caveman modes and commands in Claude Code and other supported hosts. Use it when you need to control response style or find related skills. CX Codex +1 402,900installs 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 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

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