feat(caveman): full install — plugin + standalone hooks + MCP scaffold

Wires JuliusBrussee/caveman into the always-on tier alongside
security-guidance and superpowers. Caveman compresses Claude's output
tokens (~75%) by speaking like a caveman while keeping technical
substance. Three layers:

  1. Plugin (caveman@caveman, marketplace JuliusBrussee/caveman)
     — adds /caveman, /caveman-commit, /caveman-review, /caveman-stats,
       /caveman-help, /cavecrew, /compress + 3 cavecrew agents +
       SessionStart/UserPromptSubmit hooks from the plugin path.
  2. Standalone hooks (statusline + stats badge) deployed by
     caveman's own hooks/install.sh into ~/.claude/hooks/. Paths in
     settings.json normalized to ~/.claude/hooks/... so this user's
     home dir doesn't leak across machines.
  3. caveman-shrink MCP proxy — NOT auto-registered. The bare proxy
     fails health checks because it requires an upstream MCP server
     to wrap. install-plugins.sh STEP 5.5 prints a snippet showing how
     to register a wrapped entry (e.g. caveman-shrink-fs) when the user
     decides which upstream to compress.

New helper enable_plugin() for explicit always-on activation —
'claude plugin install' only copies into cache, doesn't write
enabledPlugins. Idempotent via Python json check.

doctor.sh adds detect_caveman / detect_caveman_hooks / detect_caveman_shrink
checks plus a 300t passive-cost adder. update-all.sh refreshes hook
files via the upstream installer's --force mode.

.gitignore covers caveman runtime files materialized into hooks/
because ~/.claude/hooks is symlinked to this repo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
bastien
2026-05-03 23:02:47 +02:00
co-authored by Claude Opus 4.7
parent 94b79d2ebb
commit e4f4edc121
8 changed files with 259 additions and 1 deletions
+30 -1
View File
@@ -195,6 +195,16 @@
"command": "bash ~/.claude/hooks/session-start.sh"
}
]
},
{
"hooks": [
{
"type": "command",
"command": "node ~/.claude/hooks/caveman-activate.js",
"timeout": 5,
"statusMessage": "Loading caveman mode..."
}
]
}
],
"PreToolUse": [
@@ -207,6 +217,18 @@
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node ~/.claude/hooks/caveman-mode-tracker.js",
"timeout": 5,
"statusMessage": "Tracking caveman mode..."
}
]
}
]
},
"statusLine": {
@@ -215,7 +237,8 @@
},
"enabledPlugins": {
"example-skills@anthropic-agent-skills": true,
"ui-ux-pro-max@ui-ux-pro-max-skill": true
"ui-ux-pro-max@ui-ux-pro-max-skill": true,
"caveman@caveman": true
},
"extraKnownMarketplaces": {
"claude-code-plugins": {
@@ -241,6 +264,12 @@
"source": "github",
"repo": "anthropics/skills"
}
},
"caveman": {
"source": {
"source": "github",
"repo": "JuliusBrussee/caveman"
}
}
},
"effortLevel": "xhigh",