The condition is met and the tally was verified rather than recalled. ADR-0017 D2 named window 3 as the decider; windows 2 and 3 each produced exactly one override and each changed nothing. Every roll in window 3 was cross-checked against the workplan that made it, because the last time this project tallied chaos rolls from memory it was wrong and asserted the wrong figure four times (F23). All twelve agree. But meeting the condition is not evidence. P(an override changes nothing) is 1/3, and each window had exactly one override, so the condition fires on a 1/9 coincidence. ADR-0017 restated it to be REACHABLE and made it weak in the process; reachability was checked and discriminating power was not. Worse, it measures the wrong subject. It asks whether an override changed the tier; the question is whether changing the tier helped. Under it, a die that always changed the tier could never be retired however useless its changes were. The real ground is stronger. Four overrides across roughly forty declarations, and the mechanism's value has never once been demonstrated. The one substantive intervention dropped CB-WP-0011 from a structural L to S, and that work then needed CB-WP-0016 and CB-WP-0017 to fix defects a human found by playing. Not offered as causation — a tier is process weight, not a guarantee — but it is the only evidence we have about an override's consequences and it points the wrong way. And the purpose has no live evidence of need: 17 M, 11 S, 4 L across every workplan, with the only two structural/declared mismatches being the window-1 overrides themselves. Tier declaration has not ossified. So: retired, with nothing replacing it. Adding a successor to guard against ossification that has not occurred would invent a gate for an instance we do not have. The revival trigger is stated: tiers collapsing toward one value, or a pass declaring below its structural tier to dodge a review. InnerLoop loses the chaos paragraph, loop-lint loses the chaos-recorded check — a check that outlives its rule becomes an obstruction — and its self-test now asserts the opposite: a note with no roll must pass. ChaosRollHistory is closed. Window 4 ends incomplete at four declarations, the last of which is this one, rolled because the rule was still in force. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5.7 KiB
ADR-0021: the chaos roll is retired — and the condition that retired it was wrong
status: accepted
date: 2026-08-08
decided by: agent, under the standing loop authorization
tier: M (changes how the loop constrains its own operation — ADR-0006 D5).
chaos d8 = 7 → no override. Declaration 4 of chaos window 4, and the
last chaos roll this project will make.
references: ADR-0006,
ADR-0017,
specs/ChaosRollHistory.md,
specs/InnerLoop.md §Loop tiers
D1 — the condition is met, and the tally was verified rather than recalled
ADR-0017 D2: retire if a full window's overrides all change nothing, and the window contains at least one override — met in two consecutive windows. D2a: "Window 2 counts as the first. Window 3 decides."
| window | declarations | overrides | all changed nothing? |
|---|---|---|---|
| 2 | 12 | 1 (CB-WP-0020, d8=8, drew S over structural S) | yes |
| 3 | 12 | 1 (CB-WP-0038, d8=8, drew L over structural L) | yes |
Two consecutive. The condition is met.
Every roll was cross-checked against the workplan that made it, not read off the history table — because the last time this project tallied chaos rolls from memory it was wrong, and asserted the wrong figure four times (F23). All twelve of window 3 agree.
D2 — and meeting it is not evidence
P(an override changes nothing) = 1/3. Each of windows 2 and 3 had exactly one override. So:
P(the condition fires | one override per window) = 1/3 × 1/3 = 1/9.
An 11% coincidence is not a finding. The condition, restated in ADR-0017 D2 to be reachable, became reachable by becoming weak — and that trade was made without computing this number. Reachability was checked; discriminating power was not.
D3 — worse: it measures the wrong subject
The condition asks whether an override changed the tier. The question is whether changing the tier helped.
Those are different subjects, which is the family
Taxonomy.md §2.2 exists to name. An override that
changes nothing tells you the die landed on the tier you already had; it
says nothing about whether the mechanism is worth running. Under this
condition a die that always changed the tier — maximally active — could
never be retired, however useless its changes were.
D4 — the real ground for retirement, which is stronger
Four overrides across roughly forty declarations:
| override | effect | benefit |
|---|---|---|
| CB-WP-0011 | structural L → declared S | none recorded |
| CB-WP-0017 | structural S → declared M | none recorded |
| CB-WP-0020 | drew S over structural S | changed nothing |
| CB-WP-0038 | drew L over structural L | changed nothing |
The mechanism has acted four times in the project's life and its value has never once been demonstrated.
And the one substantive intervention is not encouraging. CB-WP-0011 was the inspectable-table pass; the roll dropped a structural L to S, and the resulting work needed two follow-up passes — CB-WP-0016 (the drag was broken) and CB-WP-0017 (the page was wrong about which moves exist) — to fix defects a human found by playing.
That is not proof of causation and is not offered as such. A tier is process weight, not a guarantee, and both defects were the kind INTENT says only human verification finds. But it is the only evidence we have about an override's consequences, and it points the wrong way.
D5 — the purpose has no live evidence of need
The roll exists so tier declaration cannot ossify. Measured across every workplan:
17 M · 11 S · 4 L
That is a real spread, and only two passes in the project's history declared a tier different from their structural one — both of them the window-1 overrides. Left to itself, tier declaration has varied on the structure, which is what it is supposed to do.
D6 — retired, and what replaces it
The chaos roll is retired. No roll, no window, no chaos line in a
workplan's tier block. Existing records keep theirs — they are history.
Nothing replaces it. Adding a successor mechanism to guard against ossification that has not occurred would be inventing a gate for an instance we do not have (GameDesign §2).
What stays is the structural derivation and its trigger table, which is the part that was doing the work.
The trigger for revisiting: if declared tiers collapse toward a single value, or if a pass is found to have declared a tier below its structural one to avoid a review, ossification is real and this decision was wrong.
Consequences
InnerLoop.md§Loop tiers loses the chaos paragraph;loop-lint'schaos-recordedcheck must go with it, or it fails every future workplan.ChaosRollHistory.mdbecomes a closed log, and says so.- Window 4 ends at four declarations, incomplete, which is correct: the condition was met at the end of window 3 and waiting out a window to satisfy a symmetry nobody requires would be ceremony.
What was rejected
| rejected | why |
|---|---|
| retire on the strength of the condition | it fires on a 1/9 coincidence and measures the wrong subject (D2, D3) |
| keep the roll because the condition is weak | the condition being weak is not an argument for the mechanism; D4 and D5 are, and they point at retirement |
| keep it as a diagnostic, unrolled | a roll nobody acts on is a ritual with a log file |
| replace it with a value-measuring condition | it would need overrides to measure, and retirement stops producing them. The honest sequence is retire, then watch D6's trigger |
| wait for window 4 to close | ceremony; the condition was met at the end of window 3 |