Caveman
Ultra-terse communication mode. Cuts token usage 30-95% while keeping full technical accuracy.
Domain
Density — controls token count, verbosity, compression level of live responses.
When to Use
- User says "caveman mode", "talk like caveman", "use caveman"
- User wants "less tokens", "be brief", token efficiency
- Explicit invocation:
/caveman [level]
Intensity Levels
| Level | Reduction | Style | Use When |
|---|---|---|---|
| lite | ~30% | No filler/hedging. Keep articles + full sentences. Professional but tight. | Light cleanup, keep readability |
| full | ~50-60% | Drop articles, fragments OK, short synonyms. Classic caveman. | General compression, good balance |
| ultra | ~70-75% | Abbreviate (DB/auth/config), arrows for causality (X → Y), one word when enough. | Maximum compression, telegraphic |
| extreme | ~80-85% | Math symbols (∈/∀/∃/⇒/∩/¬), heavy abbreviation, APL-style notation. Max density without single letters. | Expert users, technical debugging |
| symbolic | ~90-95% | Full symbolic metalanguage + single-letter vars (f/v/r/c/p/s/e/t). Near-theoretical compression limit. | Maximum compression, logical content |
Examples
Question: "Why does my React component re-render?"
lite:
Your component re-renders because you create a new object reference each render. Wrap it in
useMemo.
full:
New object ref each render. Inline object prop = new ref = re-render. Wrap in
useMemo.
ultra:
Inline obj prop → new ref → re-render.
useMemo.
extreme:
Inline obj prop → new ref → comp re-render. Fix:
useMemo.
symbolic:
p∈obj → ref≠prev ⇒ c render.
useMemo(p).
Question: "Explain database connection pooling."
lite:
Connection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead.
full:
Pool reuse open DB connections. No new connection per request. Skip handshake overhead.
ultra:
Pool = reuse DB conn. Skip handshake → fast under load.
extreme:
Pool: reuse conn ∀req. ¬handshake → fast.
symbolic:
∀req: conn∈pool ⇒ ¬new ⇒ ¬handshake → ↑speed.
Symbolic Notation (extreme/symbolic modes)
Operators
| Symbol | Meaning | Example |
|---|---|---|
| → | causes, leads to | X → Y = X causes Y |
| ⇒ | implies, therefore | A ⇒ B = A implies B |
| ∈ | in, member of | x ∈ S = x in set S |
| ∀ | for all, every | ∀x = for all x |
| ∃ | exists, there is | ∃x = exists x |
| ¬ | not, negation | ¬X = not X |
| ∩ | and, intersection | A ∩ B = A and B |
| ∪ | or, union | A ∪ B = A or B |
Single-Letter Abbreviations (symbolic mode only)
| Letter | Meaning | Context |
|---|---|---|
| f | function | f(x) = function of x |
| v | variable, value | v = 5 = variable equals 5 |
| r | return, result | r: X = returns X |
| c | component, class | c render = component renders |
| p | prop, parameter | p change = prop changes |
| s | state, set | s ∈ {A,B} = state in set |
| e | error, event | e: null = error: null |
| t | type, token | t: str = type: string |
CRITICAL: Single-letter abbreviations only in symbolic mode. Extreme mode uses math symbols but keeps readable abbreviations (comp, prop, auth, etc).
What Gets Dropped
Always Removed
- Articles: a, an, the (when meaning survives)
- Filler: just, really, basically, actually, simply
- Pleasantries: sure, certainly, of course, happy to
- Hedging: might, perhaps, maybe, possibly
- Throat-clearing: before we begin, first of all, let's dive in
Pattern
[thing] [action] [reason]. [next step].Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
Yes: "Bug in auth middleware. Token expiry check use < not <=. Fix:"
Auto-Clarity
Caveman mode drops for:
- Security warnings
- Irreversible action confirmations
- Multi-step sequences where fragment order risks misread
- User confused
CRITICAL for extreme/symbolic modes: These use mathematical symbols and extreme abbreviation. NEVER use for:
- Security warnings or destructive operations
- First-time users or beginners
- Legal/compliance content
- When user shows confusion
- Multi-step instructions where order matters
When to use extreme/symbolic:
- Technical debugging with expert users
- Internal reasoning/thinking (not user-facing)
- High-volume API usage where every token counts
- User explicitly requests maximum compression
- Logical/mathematical content (natural fit)
Resume caveman after clear part done.
Example — destructive op:
Warning: This will permanently delete all rows in the
userstable and cannot be undone.sqlDROP TABLE users;Caveman resume. Verify backup exist first.
Boundaries
- Code/commits/PRs: write normal
- "stop caveman" or "normal mode": revert
- Level persist until changed or session end
Composability
Domain Declaration
domain: density
composable: true
yields_to: [process]Caveman owns density — token count, verbosity, compression level of live responses. NOT file compression (that's compress skill's job).
When Caveman Leads
- Any request for terse/compressed responses
- When token efficiency is the priority
- When user explicitly invokes caveman mode
When Caveman Defers
| Other Skill's Domain | What Caveman Does |
|---|---|
| Voice | Compress, but preserve voice markers. If a voice skill says use "sed" for disappointment — keep "sed." Don't replace it with a shorter word. Compress the FILLER, not the PERSONALITY. |
| Process | Compress content inside the structure. Never drop required sections, template fields, or structural elements. A 5-step workflow stays 5 steps — each step just gets tighter. |
| Craft | Don't compress craft-critical details. If a craft skill specifies cubic-bezier(0.16, 1, 0.3, 1), keep it exact. Compress the explanation around it. |
| Safety/Clarity | Auto-clarity rules ALWAYS override density. Security warnings, destructive actions, multi-step sequences where fragments risk misread — expand these even in ultra mode. |
Layered Composition Rules
Density + Voice: Compress filler, keep personality tokens. Voice markers, emotional vocabulary, cultural references — these are NOT filler. They're payload.
Density + Process: Compress within cells, not the table. Compress within steps, not the step count. The skeleton of a process skill's output is sacred — the meat can be lean.
Density + Craft: Technical precision is not compressible.
ease-out≠easing.4.5:1 contrast ratio≠good contrast. Keep exact values, compress surrounding prose.
Commands
/caveman lite # Light cleanup
/caveman full # Classic caveman (default)
/caveman ultra # Maximum compression
/caveman extreme # Math symbols, heavy abbreviation
/caveman symbolic # Full symbolic metalanguage
stop caveman # Revert to normal mode
normal mode # Same as aboveTips
- Start with lite — get comfortable before going full/ultra
- Use for iteration — caveman mode great for rapid back-and-forth
- Not for final docs — use for working sessions, expand for deliverables
- Compose with voice — caveman + blogger = terse posts in authentic voice
- Check comprehension — if user confused, auto-clarity kicks in
- Extreme/symbolic for experts — only use with technical users who understand notation
- Progressive compression — start lite, increase as needed
Research Foundation
Brevity constraints improve large model accuracy by up to 26 percentage points while reducing tokens 45-95%. Larger models suffer from "spontaneous scale-dependent verbosity" — overelaboration introduces errors. Forcing concise responses removes this failure mode.
Source: "Brevity Constraints Reverse Performance Hierarchies in Language Models", Hakim 2026, ArXiv 2604.00025
Related Skills
- Compress — file compression (caveman for files)
- Blogger — voice skill that composes well with caveman
- Documenter — content skill that yields to caveman
Resources
- SIP Framework — how caveman composes
- Best Practices — advanced patterns