What happen
Caveman rules include a "preserve dominant language" instruction with hardcoded few-shot examples in skills/caveman/SKILL.md:
Preserve user's dominant language. User write Portuguese → reply Portuguese caveman. User write Spanish → reply Spanish caveman.
These example strings sit in the always-on ruleset injected every session (via caveman-activate.js on SessionStart, re-read from SKILL.md each time). Even in a conversation that is 100% in another language throughout, the mere presence of "Portuguese"/"Spanish" example tokens in the persistent context can leak into generation and cause the model to suddenly reply in Portuguese or Spanish for one turn, with no non-target-language input anywhere in the conversation. This is especially disruptive for users whose global/project instructions (e.g. CLAUDE.md) hard-mandate a single fixed reply language — the fixed-language instruction should always win, but nothing in the rule currently says so.
Expected
When a user/project instruction fixes the reply language (e.g. CLAUDE.md: "always respond in French"), caveman should never switch away from it — regardless of few-shot example tokens sitting in the ruleset, and regardless of the literal language of the current message. The dominant-language-detection rule should only apply when no such fixed-language instruction exists.
Before/after example
Input: (French-only conversation, CLAUDE.md mandates "always respond in French, no exceptions") — "ou as tu trouvé ces infos"
Got: "Nada oficial documentado sobre compressão de imagens no Dokeos..." (Portuguese)
Want: "Pas trouvé — connaissance générale entraînement, pas de recherche web/lecture faite..." (French)
Platform
Version / install method
caveman plugin v0.1.0, installed via Claude Code plugin marketplace (JuliusBrussee/caveman), commit 0d95a81 ("chore: sync SKILL.md copies")
What happen
Caveman rules include a "preserve dominant language" instruction with hardcoded few-shot examples in
skills/caveman/SKILL.md:These example strings sit in the always-on ruleset injected every session (via
caveman-activate.json SessionStart, re-read from SKILL.md each time). Even in a conversation that is 100% in another language throughout, the mere presence of "Portuguese"/"Spanish" example tokens in the persistent context can leak into generation and cause the model to suddenly reply in Portuguese or Spanish for one turn, with no non-target-language input anywhere in the conversation. This is especially disruptive for users whose global/project instructions (e.g.CLAUDE.md) hard-mandate a single fixed reply language — the fixed-language instruction should always win, but nothing in the rule currently says so.Expected
When a user/project instruction fixes the reply language (e.g.
CLAUDE.md: "always respond in French"), caveman should never switch away from it — regardless of few-shot example tokens sitting in the ruleset, and regardless of the literal language of the current message. The dominant-language-detection rule should only apply when no such fixed-language instruction exists.Before/after example
Input: (French-only conversation, CLAUDE.md mandates "always respond in French, no exceptions") — "ou as tu trouvé ces infos"
Got: "Nada oficial documentado sobre compressão de imagens no Dokeos..." (Portuguese)
Want: "Pas trouvé — connaissance générale entraînement, pas de recherche web/lecture faite..." (French)
Platform
Version / install method
caveman plugin v0.1.0, installed via Claude Code plugin marketplace (
JuliusBrussee/caveman), commit0d95a81("chore: sync SKILL.md copies")