CLAUDE.md · JuliusBrussee/caveman
CLAUDE.md from JuliusBrussee/caveman: 436 lines covering README is a product artifact, Project overview, Repository routing, What lives where and more.
Template by JuliusBrussee
Chalk Labs
Need help deploying CLAUDE.md · JuliusBrussee/caveman?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/CLAUDE.md -o CLAUDE.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A CLAUDE.md file: project memory Claude Code loads at the start of every session.
- For
- Claude Code
- Length
- 436 lines
- File
CLAUDE.md
Sections
- README is a product artifact
- Project overview
- Repository routing
- What lives where
- File structure and what owns what
- CI sync workflow
- Hook system (Claude Code)
- Skill system
- Agent distribution
- Evals
- Benchmarks
- Key rules for agents working here
First lines (shown under the repo's Apache-2.0 license)
# CLAUDE.md — caveman
## README is a product artifact
README = product front door. Non-technical people read it to decide if caveman worth install. Treat like UI copy.
**Rules for any README change:**
- Readable by non-AI-agent users. If you write "SessionStart hook injects system context," invisible to most — translate it.
- Keep Before/After examples first. That the pitch.
- Install table always complete + accurate. One broken install command costs real user.
- What You Get table must sync with actual code. Feature ships or removed → update table.
- Preserve voice. Caveman speak in README on purpose. "Brain still big." "Cost go down forever." "One rock. That it." — intentional brand. Don't normalize.
- Benchmark numbers from real runs in `benchmarks/` and `evals/`. Never invent or round. Re-run if doubt.
- Adding new agent to install table → add detail block in `<details>` section below.
- Readability check before any README commit: would non-programmer understand + install within 60 seconds?
---
## Project overview
Caveman makes AI coding agents respond in compressed caveman-style prose while preserving technical substance, code, commands, and exact errors. Publish no reduction or quality-equivalence percentage without a committed reviewed benchmark. Ships as Claude Code plugin, Codex plugin, Gemini CLI extension, and agent rule files for Cursor, Windsurf, Cline, Copilot, and other profiles via `npx skills`.
## Repository routing
This repo is source of truth for Caveman skills, Engine, and MV3 directive
extension. Agent SDK + initializer work belongs in
`/Users/julb/Desktop/GitHub/caveman-agent-sdk`
(`JuliusBrussee/agent-sdk`). Proprietary Pebble runtime, policy, sessions, TUI,
distribution, and conformance work belongs in
`/Users/julb/Desktop/GitHub/caveman-coding-agent`
(intended `JuliusBrussee/caveman-coding-agent`). Browse driver/MCP/benchmark/plugin work
belongs in `/Users/julb/Desktop/GitHub/caveman-browse`
(`JuliusBrussee/caveman-browse`). The matching `browse/` directory here is a
consumer copy (it still builds the `caveman-browse` release binary); edit only
for pinned integration, migration/removal, or an explicitly requested
cross-repo sync.
Visibility is separate from ownership: this repo and `caveman-browse` are
public now; `caveman-agent-sdk` is private during development and planned for
public release after its release gates; `caveman-coding-agent` and
Caveman-Cloud remain private commercial source.
---
## What lives where
Post-cleanup layout. Sources of truth at the top, distribution mirrors below, build outputs in `dist/`, human docs alongside each skill.
```
caveman/
├── README.md # Front door (product pitch)
├── INSTALL.md # Per-agent install commands
├── CONTRIBUTING.md # Dev guide
├── CLAUDE.md # This file (maintainer instructions)
├── AGENTS.md / GEMINI.md # Autodiscovery files (must stay at root)
│
├── install.sh / install.ps1 # 30-line shims → installer/install.js
│
├── installer/ # Unified installer
│ ├── install.js # Single source for all 30+ agents (PROVIDERS array)
│ └── lib/settings.js # JSONC-tolerant settings.json reader/writer
│
├── skills/ # ALL skills, single source of truth
│ ├── caveman/{SKILL.md, README.md}
│ ├── caveman-commit/{SKILL.md, README.md}
│ ├── caveman-review/{SKILL.md, README.md}
│ ├── caveman-help/{SKILL.md, README.md}
│ ├── caveman-stats/{SKILL.md, README.md}
│ ├── caveman-compress/{SKILL.md, README.md, scripts/}
│ └── cavecrew/{SKILL.md, README.md}
│
├── agents/ # cavecrew subagents (single source — kept at root for plugin auto-discovery)
│ └── docs/ # profile-registry docs — NOT agents (see note below)
├── commands/ # Codex/Gemini TOML command stubs (root for plugin auto-discovery)
│
├── src/ # Internal source — not auto-discovered by plugin
│ ├── hooks/ # Claude Code hooks (installer reads here)
│ ├── rules/ # Auto-activation rule body (single source)
│ ├── tools/ # caveman-init.js (per-repo rule writer)
│ └── mcp-servers/ # caveman-shrink npm-published MCP middleware
│
├── packages/ # Current public packages
│ ├── cli/ # @caveman-ai/cli
│ ├── pi-extension/ # @caveman-ai/pi — native Pi extension (bundled into the CLI, published on `pi-v*` tags)
│ ├── sdk/ # TypeScript + Python gateway clients
│ ├── subagent-tax/ # Local harness-prefix benchmark
│ └── shared/ # Contracts + binary installer
├── engine/ · proxy/ # Local compression runtime + provider proxy
├── mcp/ · mem/ · shrink/ # Recovery tools, memory, output compression
├── browse/ # consumer copy; source = caveman-browse
├── extension/ # MV3 extension source
├── shared/ # Provider catalog + platform libraries
│
├── .claude-plugin/ # Claude Code plugin manifest (REQUIRED at root)
├── .cursor-plugin/plugin.json # Cursor plugin: skills/, hooks/hooks-cursor.json, agents/ (default scan)
├── hooks/hooks-cursor.json # Cursor plugin sessionStart hook ONLY. Never add hooks/hooks.json:
│ # Claude Code and Gemini auto-load it from the plugin/extension root
├── plugins/caveman/ # Claude Code plugin distribution (CI-mirrored)
│ ├── skills/ # ← from skills/
│ └── agents/ # ← from agents/
│
├── dist/ # Build artifacts (gitignored)
│ └── caveman.skill # ZIP of skills/caveman/, rebuilt by CI
│
├── tests/ # All tests (Node + Python)
├── benchmarks/ # Real token measurements through Claude API
├── evals/ # Three-arm eval harness
├── docs/ # User-facing docs site
└── .github/workflows/ # CI sync
```
---
## File structure and what owns what
### Single source of truth files — edit only these
| File | What it controls |
|------|-----------------|
| `skills/caveman/SKILL.md` | The caveman voice: rules, auto-clarity, persistence. Sibling skills `skills/ultracave/SKILL.md` (grammar stripped) and `skills/megacave/SKILL.md` (文言文) are self-contained and each map 1:1 to a stored mode. Edit these three for behavior changes. |
| `src/rules/caveman-activate.md` | Always-on auto-activation rule body, consumed by `src/tools/caveman-init.js` (per-repo IDE rule files) and by the opencode `AGENTS.md` block. GENERATED: `skills/compile.mjs` derives it from `skills/caveman/SKILL.md` (thesis line + rule headlines) plus the fixed tail in `skills/activation-rule.mjs`, and rewrites the `RULE_BODY` fallback in `caveman-init.js` to match. Edit the skill or the tail, rerun `node packages/cli/scripts/compile-registries.mjs`; `tests/installer/rule-copies.test.mjs` fails on drift. |
| `src/rules/caveman-openclaw-bootstrap.md` | Marker-fenced bootstrap snippet appended to `~/.openclaw/workspace/SOUL.md` by `installer/lib/openclaw.js`. Drives always-on caveman through the OpenClaw gateway. Must include the SENTINEL `Respond terse like smart caveman` and stay well under OpenClaw's 12K-per-bootstrap-file cap. |
| `.codex/codex-sessionstart.js` | Repo-local Codex SessionStart hook. Resolves the configured default mode through `src/hooks/caveman-config.js` and emits the active skill's ruleset whole, replacing the hardcoded `full`-level echo `.codex/hooks.json` used to carry — so `CAVEMAN_DEFAULT_MODE`, a repo-local `.caveman.json` and a user-config `defaultMode: "off"` all take effect on Codex. Also the user-level always-on hook (#573): `installer/install.js --only codex` copies it (shipped via `package.json` `files`) into the owned payload `$CODEX_HOME/caveman/hooks/` beside `caveman-config.js` and `package.json`, with `caveman/skills/{caveman,ultracave,megacave}/SKILL.md`, and merges one SessionStart entry into `$CODEX_HOME/hooks.json`, identified by that script path so foreign and caveman-CLI `native-hook` entries are never touched. `--no-hooks`/`--minimal` skip it; uninstall unmerges before removing the payload. Codex asks the user to trust a new hook via `/hooks`; never pre-trust it. Carries a hand-copied `FALLBACK_VALID_MODES` for when the shared resolver is absent; `tests/hooks/codex-sessionstart.test.mjs` fails if it drifts from `VALID_MODES`. |
| `installer/lib/openclaw.js` | OpenClaw install/uninstall helper. Frontmatter merge (`version`, `always: true`), SOUL.md marker append/strip, idempotent. Shared by `installer/install.js` and `src/tools/caveman-init.js`. |
| `skills/caveman-commit/SKILL.md` | Caveman commit message behavior. Fully independent skill. |
| `skills/caveman-review/SKILL.md` | Caveman code review behavior. Fully independent skill. |
| `skills/caveman-help/SKILL.md` | Quick-reference card. One-shot display, not a persistent mode. |
| `skills/caveman-compress/SKILL.md` | Compress sub-skill behavior. |
| `skills/cavecrew/SKILL.md` | Cavecrew decision guide — when to delegate to caveman subagents vs vanilla. Edit only here. |
| `skills/{caveman-setup,caveman-discover,caveman-learn,caveman-manage,caveman-optimize,caveman-explore,caveman-evidence-review}/SKILL.md` | Engine/proxy driver skills. Ship with the plugin (see the auto-discovery note below). |
| `skills/{investigate-first,lean-build,surgical-patch,safe-refactor,migration,verify-and-stop}/SKILL.md` | Token-discipline work patterns — same goal as caveman prose (fewer output tokens) applied to code volume rather than wording. Deliberately un-branded so they read as generic patterns to the model. Ship with the plugin. |
| `agents/cavecrew-investigator.md` | Read-only locator subagent (haiku). Output contract: `path:line — symbol — note`. |
| `agents/cavecrew-builder.md` | Surgical 1-2 file editor subagent. Refuses 3+ file scope. |
| `agents/cavecrew-reviewer.md` | Diff/file reviewer subagent (haiku). One-line findings with severity emoji. |
| `src/plugins/opencode/plugin.js` | opencode native plugin. ESM Bun module — `session.created` writes flag, `tui.prompt.append` parses slash/natural-language activation and appends per-prompt reinforcement. Reuses `caveman-config.js` via `createRequire`. |
| `src/plugins/opencode/commands/*.md` | Six opencode slash-command prompt templates (`/caveman`, `/caveman-{commit,review,compress,stats,help}`). |
### `skills/` is auto-discovered wholesale — every subdirectory ships
`.claude-plugin/marketplace.json` sets `"source": "./"`, so the plugin root IS
the repo root, and Claude Code auto-discovers **every** `skills/*/SKILL.md`
with no `skills` key in `plugin.json` to gate it. Adding a directory under
`skills/` therefore installs it into every plugin user's agent, where its
`description` competes for activation on ordinary work.
There is no allowlist. Before adding a directory here, decide whether it
should reach end users; if not, it belongs under `packages/` or another root.
Keep the two tables above and the README "What you get" table in sync with the
actual directory listing — `ls skills/` is the source of truth.
### `agents/*.md` is auto-discovered too — and `plugin.json` must NOT list them
Same mechanism, sharper edge. `plugin.json` used to carry an explicit
`"agents": ["./agents/cavecrew-*.md"]` array. On Claude Code 2.1.235 that array
loads **zero** agents — `claude plugin details caveman` reports `Agents (0)`
with it and `Agents (3)` without it, so the three cavecrew subagents the
`cavecrew` skill delegates to did not exist for any plugin user. The docs say
`string | string[]` is valid and a directory string is rejected outright
(`agents: Invalid input`), so the default `agents/` scan is the only path thatSignals
- Stars
- 114,786
- Forks
- 6,616
- Open issues
- 64
- Last commit (this folder)
- Oct 10, 2026 (21 days ago)
- Last release
- Oct 13, 2026 (17 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/JuliusBrussee/caveman
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from JuliusBrussee
- 0.888score
caveman-compress
JuliusBrussee
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-learn
JuliusBrussee
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-manage
JuliusBrussee
Inspect Caveman Cloud's experiment lifecycle and block unsafe execution.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-optimize
JuliusBrussee
Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.885score
caveman-evidence-review
JuliusBrussee
Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings.
SkillAFreshness: A★ 114.8KClaude Code +9 - 0.882score
cavecrew
JuliusBrussee
When to delegate to `cavecrew-investigator` (locate code), `cavecrew-builder` (1-2 file edit) or `cavecrew-reviewer` (diff review) instead of working inline…
SkillAFreshness: A★ 114.8KClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get CLAUDE.md · JuliusBrussee/caveman running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
CLAUDE.md · JuliusBrussee/caveman. Agent Mart. https://agentmart.dev/templates/juliusbrussee-caveman-claude-md (last updated 2026-10-24)