clay-borg/specs/ChaosRollHistory.md
tegwick 05d1a9aada
Some checks failed
ci / check (push) Failing after 4s
ADR-0021: the chaos roll is retired, and the condition that retired it was wrong
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>
2026-08-08 15:51:52 +02:00

125 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Chaos roll — window records
> **CLOSED 2026-08-08.** The mechanism is retired
> ([ADR-0021](../decisions/ADR-0021-the-chaos-roll-is-retired.md)). This
> file is history and takes no new entries.
>
> **Four windows, four overrides, no demonstrated benefit.** The
> retirement condition was met — and was itself wrong: it fires on a 1/9
> coincidence, and it measured whether an override *changed the tier*
> rather than whether the change *helped*. The real ground was D4's
> tally, not the condition.
One entry per chaos window. Split out of `InnerLoopReference.md` when that
file crossed the loadability limit: this is a **log that grows**, and a log
inside a reference eventually crowds out the reference.
The rule itself lives in [`InnerLoop.md`](InnerLoop.md) §Loop tiers; the
current window's terms are there. This is the history the verdicts rest on.
**Window 1** (d4, closed 2026-08-02): 12 declarations, **2 overrides**, one
each way, and **both changed the outcome**. The mechanism was kept and the
rate dropped d4 → d8 (CB-EV-0015 §5, CB-EV-0016 §4).
**Window 2** (d8, 2026-08-03 → 2026-08-07): 12 declarations, of which
**11 rolled at d8** — declaration 1 (CB-WP-0018) opened the window and
rolled at the old d4. Expected 8s: **1.375**. Observed: **1**.
| decl | pass | roll | effect |
|---:|---|---|---|
| 1 | CB-WP-0018 | d4 = 3 | opened the window at the old rate |
| 2 | CB-WP-0019 | d8 = 5 | — |
| **3** | **CB-WP-0020** | **d8 = 8** | **override — drew S over a structural S: changed nothing** |
| 4 | CB-WP-0021 | d8 = 7 | — |
| 59 | CB-WP-0022…0026 | d8 = 6 ×5 | — |
| 10 | CB-WP-0027 | d8 = 7 | — |
| 11 | CB-WP-0028 | d8 = 1 | — |
| 12 | CB-WP-0029 | d8 = 4 | — |
**Verdict (ADR-0017): the rate is behaving as designed.** One override
against 1.375 expected is not a shortage of evidence.
**Why the retirement condition changed.** *"An override changes nothing
twice running"* requires a consecutive pair, each with P = 1/3, so ~12
overrides are expected before one occurs — at ~1.4 overrides per window,
**~9 windows or roughly 100 declarations**. A gate that cannot cash out on
any realistic horizon is decoration (ADR-0006 D3). It is now evaluated
**per window**, needing two consecutive qualifying windows: ~24
declarations rather than ~100.
**Four evidence files claimed window 2 produced zero overrides.** They were
wrong, and each cited the one before rather than counting. See F23 —
the failure is a claim with no source, asserted once and repeated, which
no gate here detects.
**A post-hoc observation, deliberately not acted on.** Declarations 59
rolled six five times running (~1 in 370 for some run of five in eleven
rolls). `shuf` was tested over 200 rapid successive calls and looks
uniform, longest run three. Recorded so a future window can check whether
it recurs; not evidence of anything on its own.
---
## Window 3 — opened 2026-08-07 at d8, running to 12 declarations
| # | pass | roll | override |
|---|---|---|---|
| 1 | CB-WP-0030 | d8 = 7 | — |
| 2 | CB-WP-0031 | d8 = 2 | — |
| 3 | CB-WP-0032 | d8 = 6 | — |
| 4 | CB-WP-0033 | d8 = 7 | — |
| 5 | CB-WP-0034 | d8 = 4 | — |
| 6 | CB-WP-0035 | d8 = 4 | — |
| 7 | CB-WP-0036 (first declaration) | d8 = 7 | — |
| 8 | CB-WP-0036 (re-declared L→M) | d8 = 7 | — |
| 9 | CB-WP-0037 | d8 = 1 | — |
| 10 | CB-WP-0038 | **d8 = 8** | **yes — redraw L, structural was L, so it changed nothing** |
| 11 | CB-WP-0039 | d8 = 2 | — |
| 12 | CB-WP-0040 | d8 = 5 | — |
**The window's first 8, at declaration 10.** Expectation over ten rolls at
d8 is 1.25; one is exactly on rate.
**The override changed nothing**, which is the observation ADR-0017 D2's
retirement condition is built from — it needs *a full window whose
overrides all change nothing*, in two consecutive windows. This window now
had one qualifying override, and it changed nothing.
**Window 3 is closed at 12 declarations. Its verdict is due and is not
written here** — recording it is a change to how the loop constrains its
own operation, which is a tier-M trigger in its own right, and window 2's
verdict was delayed the same way. **One override in twelve, changing
nothing**, is the second consecutive window to produce no override that
changed an outcome; ADR-0017 D2's retirement condition asks for exactly
that in two consecutive windows and should now be evaluated rather than
restated.
**Declaration 8 is a re-declaration of the same workplan**, counted
separately because it was a materially different pass: CB-WP-0036 was
re-scoped from L to M after the maintainer moved the animation work out of
the repo, and a changed declaration is a new declaration or the roll is
not binding on what was actually built.
---
## Window 4 — opened 2026-08-08 at d8
| # | pass | roll | override |
|---|---|---|---|
| 1 | CB-WP-0041 | d8 = 5 | — |
| 2 | CB-WP-0042 | d8 = 4 | — |
| 3 | ADR-0020 | d8 = 7 | — |
| 4 | ADR-0021 | d8 = 7 | — |
**Window 4 ends here, incomplete, at four declarations.** The condition
was met at the end of window 3; waiting out a fourth window to satisfy a
symmetry nobody requires would have been ceremony. **Declaration 4 is the
last chaos roll this project made** — the one that declared its
retirement, which was rolled because the rule was still in force.
**Window 3's verdict, delivered 2026-08-08** in
[ADR-0021](../decisions/ADR-0021-the-chaos-roll-is-retired.md): the
condition was met, and **the condition was defective**. Every roll in this
window was cross-checked against the workplan that made it before the
verdict was written, because the last tally taken from memory was wrong
four times over (F23).