Skip to content

[Bug] Multiple token-compression plugins conflict — caveman + ponytail/other compression skills inject contradictory style instructions #574

Description

@lg320531124

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

  1. Install caveman (full mode) and ponytail (full mode) — both are popular Claude Code plugins
  2. Start a session — both hooks fire on UserPromptSubmit
  3. 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."
  4. 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:

  1. Detect known conflicting plugins by checking settings.json for registered plugins (ponytail, grill-me, etc.) or scanning CLAUDE.md for their characteristic markers
  2. 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
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions