Problem
When caveman and another token-compression skill (e.g. ponytail) are both active, they both inject additionalContext on the UserPromptSubmit hook event. The model receives two contradictory style instruction sets in the same turn, causing inconsistent output — sometimes terse, sometimes verbose, sometimes a confusing mix.
Reproduction
- Install caveman (full mode) and ponytail (full mode) — both are popular Claude Code plugins
- Start a session — both hooks fire on
UserPromptSubmit
- Observe the model receives:
- From caveman:
"CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal."
- From ponytail:
"PONYTAIL MODE ACTIVE — level: full. The ladder enforced. Stdlib and native first. Shortest diff, shortest explanation."
- Model behavior becomes unpredictable — sometimes follows caveman rules, sometimes ponytail rules, sometimes both partially
Root Cause
caveman-mode-tracker.js (line 122-132) unconditionally emits additionalContext when caveman is active, without checking whether another compression plugin is already injecting competing style rules. Same for caveman-activate.js (line 91) which emits the full ruleset on SessionStart.
There is no conflict detection or de-escalation mechanism.
Related but Different
Suggested Fix
In caveman-activate.js and caveman-mode-tracker.js, before injecting compression rules:
- Detect known conflicting plugins by checking
settings.json for registered plugins (ponytail, grill-me, etc.) or scanning CLAUDE.md for their characteristic markers
- De-escalate: if a conflicting compression plugin is detected, either:
- Skip caveman's injection entirely (let the other plugin handle compression), or
- Reduce to a minimal one-liner instead of the full ruleset, or
- Emit a warning that both are active and suggest the user pick one
- Document the interaction in README — list known conflicting plugins and recommended coexistence strategy
Environment
- caveman v18e45320 (latest)
- Claude Code with both caveman + ponytail plugins installed
- macOS, Node.js v22
Problem
When caveman and another token-compression skill (e.g. ponytail) are both active, they both inject
additionalContexton theUserPromptSubmithook event. The model receives two contradictory style instruction sets in the same turn, causing inconsistent output — sometimes terse, sometimes verbose, sometimes a confusing mix.Reproduction
UserPromptSubmit"CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal.""PONYTAIL MODE ACTIVE — level: full. The ladder enforced. Stdlib and native first. Shortest diff, shortest explanation."Root Cause
caveman-mode-tracker.js(line 122-132) unconditionally emitsadditionalContextwhen caveman is active, without checking whether another compression plugin is already injecting competing style rules. Same forcaveman-activate.js(line 91) which emits the full ruleset onSessionStart.There is no conflict detection or de-escalation mechanism.
Related but Different
.caveman-activeflag file being global (per-session file lock conflict)Suggested Fix
In
caveman-activate.jsandcaveman-mode-tracker.js, before injecting compression rules:settings.jsonfor registered plugins (ponytail, grill-me, etc.) or scanningCLAUDE.mdfor their characteristic markersEnvironment