Hey, thanks for the report. This looks mostly like model behavior, but let’s also confirm the rule is actually being applied.
Closely related Scandinavian languages. Bokmål, Nynorsk, Danish, and Swedish often get mixed together. Training data for these languages is heavily blended, so LLMs tend to mix vocabulary and grammar from neighboring languages, especially in longer contexts. Dropping æ, ø, å is the same kind of generation artifact. This isn’t specific to Cursor or Composer 2. Even specialized language ID classifiers often confuse the Scandinavian languages.
Is the rule reaching the model. In 3.2.16 you’re already on a version where the fix for alwaysApply: true rules should be included, but it’s still worth verifying. Simple test: in a fresh chat, ask repeat the content of my language rule. If the model can’t reproduce the text, the rule isn’t reaching it. Then it’s worth checking the structure. This matches reports like `alwaysApply: true` rules are being completely ignored now and AGENTS.md not automatically injected.
What you can try right now:
- Make the rule as strict as possible: Reply only in Norwegian Bokmål. Never use Danish, Nynorsk, or Swedish vocabulary or grammar. Always preserve æ, ø, å. The stricter it is, the more stable the model tends to follow it.
- Duplicate the language instruction in
AGENTS.mdat the project root as an extra channel. - For critical docs, add a one-line language instruction directly in the prompt (in Norwegian or English) so it’s in the fresh context, not only in the system section.
- If you run long sessions, language drift gets worse as context grows. It can help to start a new chat periodically.
If the issue still happens after tightening the rule and adding AGENTS.md, share a short example input plus output and we can dig deeper.