German output: invented compound nouns instead of the established word
What happens
When Claude Code answers in German, it regularly coins compound nouns that do not exist in German instead of using the ordinary word, and it repeats a small set of stock metaphors across a session. As a native speaker I have to correct almost every answer by hand.
Examples from a single working day, all of them invented, all of them replacing a word that exists:
| written | the word that exists |
| --- | --- |
| Wartezeitgeber | Timer |
| Aufgabenbrett | Board |
| Zustandsauszeichnung | (the CSS attribute it meant) |
| geborgtes Bild | — the sentence should say what happened |
German morphology is what makes this invisible to the model: two nouns join into a form that is grammatically perfect and looks like a word that exists. A spell checker confirms it — hunspell -d de_CH accepts Wartezeitgeber, Blockregel and Zustandsauszeichnung, none of which are German words. In English the same operation would be audible at once ("waiting-time-giver").
The second half of the problem is a small set of phrases that come back in every answer, for example was ... trägt used for "what works" or "what is decisive", where German simply names what the thing does.
Why this is a model issue and not a prompting issue
My configuration forbids invented words explicitly, in several places, with examples and with the rule that every noun must come from an identifiable source (the code, the label on the control, the wording of my own prompt). The behaviour survives all of it. In one session the model produced a new invented expression inside the sentence that reported the previous invented expression.
What I expect
When generating German — and presumably any language that forms compounds freely — prefer the established term over a newly formed compound: the everyday word, the English term that German has taken over (Timer, Board, Commit), or the identifier used in the code. Where no term exists, write the sentence that says what happens instead of naming it.
Reproduction
Ask for a technical explanation in German in a domain whose vocabulary is English (agents, ports, boards, timers, queues) and look for nouns that no German speaker uses. They appear reliably in headings, table headers and summarising opening lines, which is where a short label is needed and no established word is at hand.
Environment
- Claude Code 2.1.251 / 2.1.252, VS Code extension, Linux (Ubuntu)
- Model: Opus 5
- Language of the conversation: German (Swiss spelling)