Skip to content

fix: caveman full/ultra levels now use complete sentences so host system prompts (Claude Code) stop overriding the style - #788

Open
ly6751 wants to merge 1 commit into
JuliusBrussee:mainfrom
ly6751:fix/caveman-mode-687
Open

fix: caveman full/ultra levels now use complete sentences so host system prompts (Claude Code) stop overriding the style#788
ly6751 wants to merge 1 commit into
JuliusBrussee:mainfrom
ly6751:fix/caveman-mode-687

Conversation

@ly6751

@ly6751 ly6751 commented Aug 2, 2026

Copy link
Copy Markdown

Fixes #687

Root cause: Claude Code's system prompt explicitly instructs the model to write in complete sentences and not compress writing into fragments/abbreviations. That instruction lives in the system prompt and outranks hook-delivered context, so caveman's fragment-based full/ultra levels lost every conflict — mode had no visible effect.

Fix: Compression now comes from vocabulary and selectivity (dropping filler, pleasantries, hedging, recaps, restated tool output, options not chosen) — never from fragments or dropped articles. Applied across all surfaces:

  • skills/caveman/SKILL.md + plugins/caveman/skills/caveman/SKILL.md (synced copy)
  • src/rules/caveman-activate.md + RULE_BODY fallback in src/tools/caveman-init.js
  • src/hooks/caveman-activate.js + src/hooks/caveman-mode-tracker.js (Claude Code)
  • src/plugins/opencode/plugin.js + opencode command
  • commands/caveman.md, skills/caveman-help/SKILL.md, skills/caveman/README.md
  • Added Model compatibility section documenting the host-prompt conflict

Verified: tests/test_hooks.py (7), tests/test_mode_tracker.py (23), tests/test_caveman_init.js (1), tests/test_mode_tracker_stdin.js (2) all pass.

…tem prompts (Claude Code) stop overriding the style

Root cause (issue JuliusBrussee#687, analysis in issue comment): Claude Code's system prompt
explicitly tells the model to 'write in complete sentences' and not to 'compress
the writing into fragments, abbreviations, arrow chains or jargon'. That
instruction lives in the system prompt and outranks hook-delivered context, so
caveman's fragment-based full/ultra levels lost every conflict and mode had no
visible effect.

Fix: compression now comes from vocabulary and selectivity (dropping filler,
pleasantries, hedging, recaps, restated tool output, options not chosen) -
never from fragments or dropped articles. Applied across all surfaces:
- skills/caveman/SKILL.md + plugins/caveman/skills/caveman/SKILL.md (synced copy)
- src/rules/caveman-activate.md + RULE_BODY fallback in src/tools/caveman-init.js
- src/hooks/caveman-activate.js + src/hooks/caveman-mode-tracker.js (Claude Code)
- src/plugins/opencode/plugin.js + opencode command
- commands/caveman.md, skills/caveman-help/SKILL.md, skills/caveman/README.md
- Added Model compatibility section documenting the host-prompt conflict

Verified: tests/test_hooks.py (7), tests/test_mode_tracker.py (23),
tests/test_caveman_init.js (1), tests/test_mode_tracker_stdin.js (2) all pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

caveman mode is entirely broken with claude code?

2 participants