Language drift to Portuguese after background task-notification, despite strict French system instruction

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 5, 2026

Setup

Session running as a background job (Bash tool description references $CLAUDE_JOB_DIR), with an explicit system-level instruction to always respond in French for the entire conversation. The user was writing in French throughout.

Bug

After several task-notification events (results of agents launched in the background via the Agent tool arriving asynchronously), the assistant switched to Portuguese on multiples separate replies in the same session, with no trigger for it:

  • the system instruction mandated French for the whole conversation
  • the user's own messages right before were in French
  • the content of the notifications themselves was in French
  • nothing in the conversation ever introduced Portuguese

The user had to call it out twice ("PT serieux ?", "pourquoi tu bascule en PT serieux ?") before the assistant caught it and reverted.

Suspected trigger

The drift appears correlated with generating a reply immediately after an asynchronous task-notification system turn lands (background agent completion), rather than in direct response to a user message. It did not happen on turns that were direct replies to the user.

Impact

No impact on code correctness in this instance (the technical work in the session was unaffected), but it broke the language contract set by the system prompt/instructions, on a task explicitly requiring French output, in a way that repeated more than once in a single session.

Repro notes

Not reliably reproduced in isolation yet — observed empirically in one long session with multiple background Agent calls and a strict system-level "always respond in French" instruction. Suspect the language-adherence instruction has less weight/attention when the turn is triggered by an async notification rather than a user message.

Suggestion

Re-anchor active language/style system instructions specifically on turns that are generated in response to async notifications (task completions, hook events, etc.), since those turns seem to get less instruction-following weight than direct user-triggered turns.

View original on GitHub ↗