# `[2026-08-27]` The corpus mix was specified in a unit the optimiser never sees Run 3's recipe specified its mix as **context shares** — dialogue 45.8% / kvasir 38.0% / fireball 16.2% — and was approved, built and trained on that basis. **As TRAINED the gradient was 24.2% dialogue and 75.8% prose.** effective_mix, adapter provenance.json, LOSS shares kvasir 0.5310 fireball 0.2271 prose 75.81% c2-logs 0.0861 cwm 0.0763 bluemoon 0.0796 dialogue 24.20% Not a reinterpretation — **the trainer wrote both numbers into the same manifest and nobody read the second one**, across three runs. ## The mechanic F2/F3/F4 mask loss off dialogue turns while leaving their context in place. So **the harder the dialogue filters work, the more prose-dominant the gradient becomes.** Every mix ruling was made in the wrong unit. ## Why it survived review infra-ops set kvasir's subset to 38.0% *of context* because that is the unit the recipe stated a share in, and because fireball's 12% landed exactly on context — which was read as confirmation the recipe meant context throughout. It did. **The specification was in the wrong unit and it was matched faithfully**, which is a worse failure mode than an arithmetic error because every check agreed with it. ## The fix — a RENAME, not a reordering Harness commit `dd5a12e` (eitri-smithy). Both numbers were already printed, adjacent, with context first — and that was enough for three runs of people reading the wrong one. Demoting context would not have stopped a fourth. [mix] LOSS share is what the optimiser sees. ctx share is a memory budget, NOT the mix. [mix] kvasir loss 0.5310 [memory budget: ctx 0.3800] Calling it a *memory budget* makes "the mix is 38% kvasir" a sentence someone has to actively mis-say. Found by brokkr-smithy-dev's CPU arm after the run-3 gate. See also [[2026-08-27-dose-response-entanglement]] — the wedge this finding produced was consistent with four separate failures and was still not the whole story.