caveman
Skill2 starsChanged 3 months agoMITView on GitHub
Phase 8 of ACF (optional, extreme mode). Reduces the context snapshot to the absolute minimum — bare paths, counts, labels, and commands with zero prose. Target: under 500 tokens for the entire snapshot. Use when token budget is critical, when the model has a very small context window, or when the user asks for "caveman mode", "extreme compression", or "bare minimum context".
184 other projects use a version of this.
Adopted by
Most recently taken up by
- Markssuave/Markssuave-Agent-skillstheir own version, first seen Nov 8, 2026
- aegntic/compound-engineeringtheir own version, first seen Nov 8, 2026
- ishandutta2007/Awesome-Claude-Skillstheir own version, first seen Nov 8, 2026
- mjlueck-hash/cavemantheir own version, first seen Nov 8, 2026
- dhruvsaxena1998/skillstheir own version, first seen Nov 8, 2026
- dalonga-kohi/mawltheir own version, first seen Nov 8, 2026
Used with
Projects with it also use addskill, apply-firmware and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ryanportfolioSkilladdskill
Create, import, update, or install repo or personal skills: runtime ownership, resources, discovery checks.
Also in 6 projects that use this
ryanportfolioSkillapply-firmware
Bring current folder (plain folder, existing repo, old or partial firmware copy) up to full Harness Firmware in place. Mirror external repo → adopt-repo.
Also in 6 projects that use this
- +10 more from ryanportfolio
Other versions184 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 184
- JuliusBrussee/caveman★ 118ksame name
- stagewise-io/stagewise★ 6.8ksame name
- codejunkie99/agentic-stack★ 2.3ksame name
- microsoft/hve-core★ 1.6ksame name
- JuliusBrussee/cavekit★ 1.1ksame name
- VladSez/easy-invoice-pdf★ 1.1ksame name
- FidelusAleksander/ghcertified★ 996same name
- shobcoder/shob★ 575same name
- HoangNguyen0403/agent-skills-standard★ 565same name
- victorgarciaesgi/regle★ 508same name
174 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- context-loadSkill
- stack-auditSkill
- issue-craftSkill
- pr-contextSkill
- frontend-previewSkill
- label-metadataSkill
- compactionSkill
- graph-scopeSkill
- acfSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 121 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 93
Only compress paths when the project structure is known from context-load.
- Distinctive: line 94
Never compress a path that could be ambiguous.
- Distinctive: line 101
Only compress commands that are unambiguous in the project context.
- Distinctive: line 131
When even the caveman snapshot is too large, strip to the absolute minimum:
- Distinctive: line 164
If any of these are critical for the current issue/PR, do NOT use caveman.
- Distinctive: line 165
Use compaction (phase 7) instead.
- Very specific: line 177
ghnot authenticated: not applicable to caveman. - Distinctive: line 178
GitHub API rate limits: not applicable to caveman.
- Very specific: line 179
Progress file doesn't exist: if .slim/acf/<slug>.md is missing, report "Progress file not found — nothing to compress.
- Distinctive: line 182
Commands fail: if the progress file cannot be read (permissions, encoding), report the error and skip caveman compression.
“Common” is measured: kept by at least 6 in 10 of the 121 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Caveman
Extreme compression mode. Named "caveman" because the output looks like cave paintings — nothing but the essential marks, no decoration.
When to Trigger
- The compacted snapshot (from phase 7) is still too large for the target model
- The model has a small context window (<8K tokens)
- The user explicitly asks for "caveman mode" or "extreme compression"
- Running ACF on a budget-constrained API (pay-per-token)
- The snapshot needs to fit in a single system prompt
Caveman Principles
- No prose — every word must earn its place; if it's not a path, command, label, or number, it doesn't belong
- Paths, not descriptions —
AGENTS.mdnot "the agent directives file" - Counts, not lists —
26 servicesnot a list of 26 service names - Labels, not sentences —
priority:P1not "this is high priority" - Commands, not explanations —
lune run scripts/test_core.luaunot "run the core test suite with lune" - Symbols over words —
→instead of "leads to",|instead of "or",#Ninstead of "issue number N"
Caveman Snapshot Format
The entire context snapshot in caveman mode fits in this structure:
ACF@<project> | branch:<name> | issues:<N> | PRs:<M>
STACK
orphan:<N> | stale:<N> | gaps:[PR#→Issue#] | escaped:[#N] | lib:[N]
TESTS
<cmd1> → <N>pass
<cmd2> → <N>pass
cov:<cmd|none>
CI
<check1>@<workflow1>
<check2>@<workflow2>
ARCH
stack:<lang+fw, 1line>
dirs:<src/ scripts/ docs/>
arch:<path|none>
LABELS
type:bug|enhancement|docs|refactor|chore|test|security
pri:P0|P1|P2|P3
area:backend|frontend|ci|docs|security|devops
CONV
commit:conventional
branch:feature/|fix/|docs/
NOW
<current issue/PR — 1line>
NEXT
<next action — 1line>Token Budget
| Mode | Target tokens | Chars (approx) | When to use |
| Full | ~2000 | ~8000 | Default, large context window |
| Compacted (phase 7) | ~800 | ~3200 | Standard compression |
| Caveman (phase 8) | <500 | <2000 | Extreme, small context window |
Caveman Compression Techniques
Path compression
src/server/Services/CycleManager.luau→srv/CycleManagerdocs/ARCHITECTURE.md→arch.md.github/workflows/ci.yml→ci.yml
Only compress paths when the project structure is known from context-load. Never compress a path that could be ambiguous.
Command compression
lune run scripts/test_core.luau→lune test_corebash scripts/dev.sh --test→dev.sh --testgh pr list --state open --json number,title,body→gh pr list --open
Only compress commands that are unambiguous in the project context.
Finding compression
- "PR #42 has no issue reference — orphan PR" →
orphan:42 - "Issue #17 is ready but no PR is open — stale issue" →
stale:17 - "PR #38 merged but issue #29 still open — close gap" →
gap:38→29 - "Issue #51 closed but no merged PR — escaped issue" →
esc:51
Label compression
priority:P0→P0area:backend→backendready-to-implement→ready
Degradation Path
Full snapshot (~2000 tokens)
│
▼ [trigger_ratio exceeded]
Compacted snapshot (~800 tokens, phase 7)
│
▼ [still too large or caveman requested]
Caveman snapshot (<500 tokens, phase 8)
│
▼ [still too large]
Bare caveman: only NOW + NEXT + TESTS + CI (~100 tokens)Bare Caveman (last resort)
When even the caveman snapshot is too large, strip to the absolute minimum:
NOW:<issue/PR 1line>
NEXT:<action 1line>
TEST:<cmd> → <N>pass
CI:<check>@<wf>This is ~100 tokens. It loses all stack context but preserves the ability to craft an issue or PR with the right test command and CI check.
Relationship to Compaction
Caveman is NOT a replacement for compaction (phase 7). It is the next step when compaction is not enough. The typical flow is:
context-load → stack-audit → [compaction if needed] → [caveman if still needed] → issue-craft → pr-contextCaveman can also be triggered directly (skipping compaction) when the user knows upfront that the context budget is very small.
What Caveman Loses
Be explicit about what caveman mode sacrifices:
- Architecture context — only a one-line stack summary remains
- Convention details — only label names, no rules
- Library opportunities — reduced to a count, no details
- Stale issue titles — reduced to issue numbers
- Template structure — not included at all
If any of these are critical for the current issue/PR, do NOT use caveman. Use compaction (phase 7) instead.
Sources
- Inspired by Kimi CLI's compaction system (MoonshotAI/kimi-cli)
- Caveman takes Kimi's compression rules to their logical extreme
- The "bare caveman" last-resort format is original to ACF
Error Handling
ghCLI not installed: caveman operates on the progress file, not GitHub. It does not requiregh. Proceed normally.ghnot authenticated: not applicable to caveman. Proceed normally.- GitHub API rate limits: not applicable to caveman. Proceed normally.
- Progress file doesn't exist: if
.slim/acf/<slug>.mdis missing, report "Progress file not found — nothing to compress. Run context-load first." Do not create an empty caveman file. - Commands fail: if the progress file cannot be read (permissions, encoding), report the error and skip caveman compression. Do not destroy the original file.
Example
Filled-in caveman snapshot for the sample Luau game project:
ACF@flashlight-game | branch:fix/flashlight-fireserver | issues:7 | PRs:2
STACK
orphan:1 | stale:1 | gaps:[38→29] | escaped:[51] | lib:1
TESTS
lune run scripts/test_core.luau → 26pass
cov:none
CI
test(lune)@ci.yml
type-check(luau-analyze)@ci.yml
ARCH
stack:Luau,Knit,Lune
dirs:src/ scripts/ docs/
arch:docs/ARCHITECTURE.md
LABELS
type:bug|enhancement|docs|refactor|chore|test|security
pri:P0|P1|P2|P3
area:backend|frontend|ci|docs|security|devops
CONV
commit:conventional
branch:fix/|feature/|docs/
NOW
fix: flashlight :Fire()→:FireServer()
NEXT
gh issue create /tmp/issue-body.mdAnd the bare caveman last-resort (~100 tokens):
NOW:fix: flashlight :Fire()→:FireServer()
NEXT:gh issue create /tmp/issue-body.md
TEST:lune run scripts/test_core.luau → 26pass
CI:test(lune)@ci.ymlDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

