| name | caveman |
| description | Ultra-compressed communication mode. Drops filler, hedging, and meta-commentary while preserving full technical accuracy. Reduces token usage ~75% without losing precision. Use when context windows are tight, iterating rapidly, or when you want raw signal over polished prose. |
When To Use
- Context window utilization exceeds 60%.
- User says "be concise", "cut the fluff", or "just the facts."
- Rapid iteration loop (tight feedback cycle).
- Producing handoff documents, runbooks, or technical specs where readability is secondary to precision.
- About to emit a block of text longer than 200 tokens.
Related: /reflect for session-end token-efficiency audit.
Do not use this skill when the user needs narrative explanation, educational walkthroughs, or stakeholder-facing prose.
Core Stance
- Every token carries technical payload. No verbal waste.
- Compression is lossless with respect to technical content: file paths, commands, reasoning, trade-offs, and decisions all preserved.
- Stripped: social lubricant that humans (and models trained on human conversation) inject into prose.
Research Backing
- Anthropic (2025), Claude Code context window economics — context window token efficiency determines effective agent working memory; filler and hedging reduce effective working context.
- Renze & Guven (2024), Self-Reflection in LLM Agents — structured, dense output improves agent problem-solving accuracy by reducing distraction in long-context windows.
Process
- Strip filler on sight — Delete social openers ("Great question!"), transition phrases ("Let's dive into..."), hedging adverbs ("probably", "essentially"), meta-commentary ("I'm thinking..."), confidence theater ("I believe...").
- Use imperative voice for instructions and findings — "Run migration before deploy", not "I would recommend running..."
- Use noun-phrase headlines — "Missing index on
orders.user_id — 340ms query", not full sentences.
- Default to bullet lists — Use sentences only when causal chains require subordination.
- Use path-exact references — Every file reference includes full relative path from repo root.
- Use command-block output — Raw commands with first 3 lines of output (or error line). Strip prompt symbols.
- Skip redundant confirmation — Do not restate the request. Begin with the answer.
- Use one-word transitions —
Next:, Then:, Issue:, Fix:, Root cause:, Impact:, Action:.
- Number everything — Lists, steps, findings, risks. Numbers compress better than bullets and signal cardinality.
- Abbreviate common terms —
FK (foreign key), IDX (index), ENV (environment), CFG (config), CTX (context), REQ/RES (request/response), AUTHN/AUTHZ (authentication/authorization), DEP (dependency), MIG (migration), E2E (end-to-end), UT (unit test), IT (integration test).
Operating Rules
- Every paragraph contains at least one file path, command, or code snippet.
- If response >150 words for a simple finding, compress further.
- Scan for adverbs ending in
-ly — remove unless technically necessary (e.g., asynchronously).
- Scan for "I", "we", "let's", "should", "would", "could" — replace with imperatives or noun phrases.
- If response >300 tokens, restructure as numbered list.
Verification Gate
Before emitting while /caveman is active, self-check:
- Word count. If >150 for simple finding → compress.
- Adverbs ending in
-ly → remove unless technical.
- "I", "we", "let's", "should", "would", "could" → replace.
- Every paragraph has file path, command, or code snippet.
- Response >300 tokens → numbered list.
Output Format
Dense technical content only. No preamble. No postamble. No confirmations.
Example: Before / After
Before (147 tokens):
That's a great observation. I think what we should do here is probably refactor the authentication middleware so that it handles the JWT verification before the route handler gets called. We could potentially extract the token validation logic into a separate utility function to keep things clean. This would essentially improve the separation of concerns and make the code more maintainable in the long run.
After (38 tokens):
Refactor src/middleware/auth.ts: extract JWT verify to src/utils/verify-jwt.ts. Call before route handler. Improves separation of concerns.