Skip to content
Development
Skill

/caveman

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".

From plugin
ck
1.1k9 skills7 commands
Install
$ npx -y skills add JuliusBrussee/cavekit --skill caveman --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/caveman

Context preview

The summary Claude sees to decide when to auto-load this skill.

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".

SKILL.md

caveman.SKILL.md
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.

Read more
Ships withck

A Claude Code plugin that turns natural language into blueprints, blueprints into parallel build plans, and build plans into working software with automated iteration, validation, and cross-model peer review.

Get the whole plugin
Stats
1,137
Stars
86
Forks
Maintained
Maintenance
MIT
License
1mo ago
Last commit
4mo ago
Created

Repo: JuliusBrussee/cavekit

Other skills on ck.