About cavecrew
cavecrew is a skill providing three subagent presets for code investigation, small edits, and review, with compressed structured outputs. It is intended for delegation when concise results help limit the context used by the main agent.
Key features
- 01Investigation, builder, and reviewer presets
- 02Compressed, structured subagent results
- 03File-and-line investigation findings
- 04Scoped edits with verification status
- 05Review findings sorted by file and line
Use cases
- 01Locate definitions and callers
- 02Delegate a small, well-scoped edit
- 03Review a diff for bugs
- 04Run parallel codebase investigations
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ rheinmir/ setup --skill cavecrewAfter installing, type/cavecrewin Claude Code to confirm it loaded.
Details
From the project READMECavecrew = three subagent presets that emit caveman output. Same job as Anthropic defaults (Explore, edit-style agents, reviewer); difference is the tool-result they return is compressed, so main context shrinks per delegation.
When to use cavecrew vs alternatives
| Task | Use |
|---|---|
| "Where is X defined / what calls Y / list uses of Z" | cavecrew-investigator |
| Same but you also want suggestions/architecture commentary | Explore (vanilla) |
| Surgical edit, ≤2 files, scope obvious | cavecrew-builder |
| New feature / 3+ files / cross-cutting refactor | Main thread or feature-dev:code-architect |
| Review diff, branch, or file for bugs | cavecrew-reviewer |
| Deep code review with rationale + alternatives | Code Reviewer (vanilla) |
| One-line answer you already know | Main thread, no subagent |
Rule of thumb: if you'd want the subagent's output in 1/3 the tokens, pick cavecrew. If you'd want prose, pick vanilla.
Why this exists (the real win)
Subagent tool results get injected into main context verbatim. A vanilla Explore that returns 2k tokens of prose costs 2k tokens of main-context budget every time. The same finding from cavecrew-investigator returns ~700 tokens. Across 20 delegations in one session that's the difference between context exhaustion and finishing the task.
Output contracts
What main thread can rely on per agent:
cavecrew-investigator
<Header>:
- path:line — `symbol` — short note
totals: <counts>.
Or No match. Always file-path-first, line-number-attached, backticked symbols. Safe to grep with path:\d+.
cavecrew-builder
<path:line-range> — <change ≤10 words>.
verified: <re-read OK | mismatch @ path:line>.
Or one of: too-big. / needs-confirm. / ambiguous. / regressed. (terminal first token).
cavecrew-reviewer
path:line: <emoji> <severity>: <problem>. <fix>.
totals: N🔴 N🟡 N🔵 N❓
Or No issues. Findings sorted file → line ascending.
Chaining patterns
Locate → fix → verify (most common):
cavecrew-investigatorreturns site list.- Main thread picks 1-2 sites, hands paths to
cavecrew-builder. cavecrew-revieweraudits the diff.
Parallel scout (when investigation is broad):
Spawn 2-3 cavecrew-investigator calls in one message (different angles: defs vs callers vs tests). Aggregate in main thread.
Single-shot edit (when site is already known):
Skip investigator. Hand exact path:line to cavecrew-builder directly.
What NOT to do
- Don't use
cavecrew-builderwhen you don't already know the file. Spawn investigator first or main thread will eat tokens passing context. - Don't chain
cavecrew-investigator → cavecrew-builderfor a 5-file refactor. Builder will returntoo-big.and you'll have wasted a turn. - Don't ask
cavecrew-reviewerfor "general feedback" — it returns findings only, no architecture opinions. UseCode Reviewerfor that. - Don't expect prose. Cavecrew output is structured, sometimes terse to the point of cryptic. If a human will read it directly, paraphrase.
Auto-clarity (inherited)
Subagents drop caveman → normal English for security warnings, irreversible-action confirmations, and any output where fragment ambiguity could be misread. Resume caveman after.
Output Report
After all main skill tasks complete, write a propose draft to the wiki.
Steps
1. Build the filename:
- Format:
DDMMYY-<ten>.md DDMMYY= today (e.g.,020626for 2 June 2026)<ten>= 2–4 kebab-case words summarising what was done (e.g.,landing-page-coteccons,brand-kit-fintech,ingest-auth-spec)
2. Write llmwiki/wiki/draft/cave/DDMMYY-<ten>.md:
# DDMMYY-<ten>
**Type:** draft
**Status:** proposed
**Tags:** <skill-name>, output-report
**Proposed:** YYYY-MM-DD
## What
<One sentence — what this skill invocation produced or decided>
## Output
<Key artefacts, files created/modified, or decisions made>
## Files
| File | Action |
|------|--------|
| `path/to/file` | created / modified |
## Notes
- Invoked via: `/<skill-name>` skill
## Origin
- **Draft:** `wiki/draft/cave/DDMMYY-<ten>.md`
- **Commit:** _(filled by verify-before-commit)_
- **Date promoted:** _(filled by verify-before-commit)_
3. Update wiki index & log:
llmwiki/wiki/index.md— append one row:| [DDMMYY-<ten>](draft/cave/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |llmwiki/wiki/log.md— append:## YYYY-MM-DD — <skill-name> — <ten>
Skip only when the skill produces zero artefacts and zero decisions (e.g., a pure display mode like
/caveman-stats).