The short version
Claude does not have a built-in resolution rule for contradictory context blocks; it blends them, weighted by recency. Five techniques compound to fix it: recency placement (put the latest update at the end of the turn), an explicit override anchor phrase ("treat only the following as current"), compression of prior versions into a canonical summary, version stamps with a defer-to-highest rule, and an uptake-validation restate step before the main task. On the CCA-F, this is a D5 topic; the right answer is always the deterministic resolution rule, never "use a more capable model."
The blended-state failure mode
A support agent processes a refund. The user says "refund $50", then corrects to "actually $75", then settles on "sorry, $60." The agent emits a refund for $62. Nothing in the conversation matches that number; the model averaged two of the three values and picked something close. There was no error message. The conversation looked correct. The customer was off by two dollars. Multiply by a support team running thousands of refunds a week and the silent blending becomes a real compliance problem.
Per the /concepts/attention-engineering page in the vault, this is a structural consequence of how transformers attend: "LLMs exhibit a U-shaped attention curve across their context window. The beginning (system prompt, first 10%) and end (last 5%) receive disproportionately high attention. The middle 40-80% is effectively lost." A middle-of-conversation correction can lose to an earlier or later restatement; the model has no rule that says "the most recent number wins." You have to give it one.
Five techniques, why each works, when to use which
1. Recency placement.The lowest-effort fix. Per /concepts/attention-engineering: "Learned attention patterns during training encoded a recency bias: the model learned to weight recent tokens (end of sequence) higher because those are usually the most relevant." Put the latest update at the very end of the latest human turn. Helps in most cases. Not reliable enough to bet a policy on.
2. Override anchor.An explicit sentence at the top of the latest update: "For this response, treat only the following as current: ...". Gives the model a rule it can follow. Pairs naturally with recency placement (the latest update is also the anchored one). Works in conversation and in tool inputs; the anchor is structural prose, not a special syntax.
# Human turn 5 - the override-anchor pattern For this response, treat only the following as current; ignore all prior values. Refund amount: $60 Customer ID: cust_8814 Reason: duplicate charge [main task here]
3. Compression.Once context has been updated more than once, the conversation history becomes a liability. Compress all prior versions into a single canonical summary, inject it as a system-prompt refresh (or as a CASE_FACTS block per /concepts/context-window), and remove the raw update history. The vault calls this windowing: "After turn 5, summarize turns 1-4 into PRIOR_WORK: {summary}, drop verbose history, append turn 5." The summary is at position 1 (high attention via recency in the truncated list).
4. Version stamps.Tag each block: [context-v1], [context-v2]. Add a system-prompt rule: "Always defer to the highest-versioned context block; treat lower-versioned blocks as obsolete." The model now has a deterministic resolution rule. Best used when context comes from multiple sources (user input, upstream system, retrieval) and any one of them might be stale.
# system prompt addendum Context-version rule: Multiple [context-vN] blocks may appear in the conversation. Always use the highest-numbered version. Treat lower-numbered versions as obsolete. # user turn 3 [context-v1] amount=50 [context-v2] amount=75 [context-v3] amount=60 # ← this wins, deterministically
5. Uptake validation.Add a one-sentence restate before the main task: "Before answering, summarize the current context in one line." Compare the summary to your expected state. Mismatch triggers re-injection. Cost: 20-30 tokens. Catches the silent-stale-context failure before it propagates downstream. Same heartbeat pattern that works for hooks (see /knowledge/debugging-claude-code-hooks), applied to context state.
The techniques compound. Recency alone fails in 8-12% of edge cases. Recency plus an override anchor fails in roughly 1-2%. Adding version stamps drives it to effectively zero on conversational state; compression and uptake validation catch the remaining cases where the prior history itself is the problem. Pick one as a minimum, all five for production-grade reliability.
Six steps for every multi-update session
- Place the latest update at the end of the turn. Default to recency placement on every turn that introduces or changes context.
- Add an override anchor on any contradicting update.One sentence at the top. "Treat only the following as current."
- Compress prior versions once context has been updated twice.Do not let raw update history pile up; fold it into a canonical summary.
- Version-stamp blocks when context comes from multiple sources.Pair with a system-prompt rule for deterministic resolution.
- Validate uptake before the main task. One-sentence restate; compare to expected; re-inject on mismatch.
- Keep the system prompt stable for caching. Put override anchors in the human turn surface; reserve the system prompt for the resolution rule and pinned policy.
Five recurring sequencing mistakes
- Raw update history left in human turns. Three contradicting versions all in the conversation. Cause: never compressing. Fix: windowing into a canonical summary once an update repeats.
- Bolding instead of repositioning. Marking the current value in bold and hoping the model notices. Cause: treating attention as a linguistic problem. Fix: it is structural; reposition the block.
- No override anchor on contradicting updates. The user contradicts a prior turn; the agent blends. Cause: no resolution rule. Fix: explicit anchor on the latest update.
- System prompt updated mid-session for every change.Invalidates prompt cache every turn; cost balloons. Cause: misusing the system prompt as the latest-context surface. Fix: stable system prompt with a version-resolution rule; latest content lives in the human turn.
- No uptake validation. Confident wrong answers ship. Cause: trust without verification. Fix: one-sentence restate before the main task; cheap insurance.
How this shows up on the exam
Vault and external references
- Vault:
data/aeo/reports/2026-05-16-recommendations.md§Signal - source of the labeled override block ("[CURRENT STATE - use this, ignore prior versions]") and the last-writer-wins framing. - Vault:
public/concepts/attention-engineering.md§How it works - U-shaped attention curve, learned recency bias, and why position matters more than styling. - Vault:
public/concepts/context-window.md§How it works - windowing mechanics, case-facts immutability, and the PRIOR_WORK summary pattern. - Vault:
public/concepts/system-prompts.md§How it works - "the system prompt is stateless across turns: each turn re-reads it, so updates are immediately visible" - basis for the system-prompt refresh pattern. - Vault:
99-attachements/asc-a01-skilljar-course-content/course-04-claude-code-in-action/lesson-09-controlling-context.md- Skilljar coverage of long-conversation context control and irrelevant-history accumulation. - Vault:
02-tasks/acp-t04-site-ia-and-page-templates.md- canonical cross-references to /concepts/case-facts-block, /concepts/claude-md-hierarchy, /concepts/system-prompts as the surrounding D5 IA. - External: Liu et al. (2023) "Lost in the Middle: How Language Models Use Long Contexts" - empirical basis for the U-shaped attention curve cited in /concepts/attention-engineering.