ADR-0017: window 2's verdict — the mechanism worked, my account of it did
Some checks failed
ci / check (push) Failing after 4s

not

Tier M (changes how the loop constrains its own operation), declared at
d8 because the rate for window 3 is what this document decides and
declaring at a rate it invents would be circular. chaos d8 = 7, no
override.

I CLAIMED WINDOW 2 PRODUCED ZERO OVERRIDES, FIVE TIMES, AND IT IS FALSE.
Declaration 3 (CB-WP-0020) rolled d8 = 8, overrode, drew S against a
structural S, and changed nothing -- and CB-WP-0020 recorded it correctly
at the time, in those words: "the first override at d8... It changed
nothing... One."

Counting the workplans takes one command and I never ran it. CB-EV-0024
asserted "zero" without checking; CB-EV-0025, 0026, 0027 and CB-WP-0029
each cited the one before. A claim propagated five times by citation
rather than by measurement, in files whose subject was that exact failure.
facts-check catches a copied number that disagrees with its source;
nothing catches a number with NO source, asserted once and repeated.
Registered F23, and all four evidence files carry an in-place correction
rather than a silent edit (ADR-0012 D5).

THE ACTUAL VERDICT: THE RATE IS WORKING. Eleven rolls at d8 -- declaration
1 opened the window at the old d4 -- against 1.375 eights expected, 1
observed. Not a shortage of evidence; the design.

BUT THE RETIREMENT CONDITION GENUINELY CANNOT FIRE, and that took
computing to see. "An override changes nothing twice running" needs a
consecutive pair at P=1/3 each, so ~12 overrides expected, at ~1.4 per
window: ~9 windows, roughly 100 declarations. A gate that cannot cash out
on any realistic horizon is decoration, which ADR-0006 D3 forbids.

Restated to be evaluated PER WINDOW: retire if a full window's overrides
all change nothing, met in two consecutive windows. A window with no
overrides is inconclusive and advances nothing. ~24 declarations rather
than ~100. Window 2 counts as the first; window 3 opens at d8 and decides.

Recorded and deliberately not acted on: declarations 5-9 rolled six five
times running, ~1 in 370 for some run of five in eleven rolls. shuf tested
over 200 rapid successive calls looks uniform, longest run three. Found
post hoc, which is how coincidences become findings, so it is logged for a
future window to check rather than treated as evidence.

InnerLoop.md then crossed the loadability limit, and so did
InnerLoopReference.md. The window log moved to specs/ChaosRollHistory.md:
it grows by one entry per window, and a log inside a reference eventually
crowds out the reference.

make all: exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-07 10:55:54 +02:00
parent 302fc95c97
commit a9978c7a91
9 changed files with 269 additions and 6 deletions

View file

@ -0,0 +1,145 @@
# ADR-0017: window 2's verdict — the mechanism worked, my account of it did not
status: accepted
date: 2026-08-07
decided by: agent, under the standing loop authorization
tier: M (structural M — changes how the loop constrains its own operation,
InnerLoop §Loop tiers v1.6, ADR-0006 D5). **Declared at d8**, window 2's
rate, because the rate for window 3 is what this document decides and
declaring at a rate this pass invents would be circular.
chaos: d8 = 7 → no override
references: [InnerLoop.md](../specs/InnerLoop.md) §Loop tiers,
[InnerLoopReference.md](../specs/InnerLoopReference.md) §Chaos roll,
CB-EV-0015 §5 and CB-EV-0016 §4 (window 1's verdict),
[CB-WP-0020](../workplans/CB-WP-0020-the-table-you-can-read.md) (window 2's
override)
## Context
Window 2 opened 2026-08-03 at d8 and closed 2026-08-07 at twelve
declarations. Its verdict is due, and four evidence files said it would be
impossible to give.
## The correction this ADR exists for
**CB-EV-0024 §6, CB-EV-0025 §7, CB-EV-0026 §7, CB-EV-0027 §6 and
CB-WP-0029 all state that window 2 produced zero overrides and that its
retirement condition was untestable. That is false.**
Counted from the workplans:
| decl | pass | roll | effect |
|---:|---|---|---|
| 1 | CB-WP-0018 | **d4** = 3 | opened the window; rolled at the *old* rate |
| 2 | CB-WP-0019 | d8 = 5 | — |
| **3** | **CB-WP-0020** | **d8 = 8** | **OVERRIDE — drew S, structural was S, changed nothing** |
| 4 | CB-WP-0021 | d8 = 7 | — |
| 59 | CB-WP-0022…0026 | d8 = 6, 6, 6, 6, 6 | — |
| 10 | CB-WP-0027 | d8 = 7 | — |
| 11 | CB-WP-0028 | d8 = 1 | — |
| 12 | CB-WP-0029 | d8 = 4 | — |
**Eleven rolls at d8** — declaration 1 opened the window and rolled at d4.
Expected 8s: **1.375**. Observed: **1**.
**And CB-WP-0020 recorded it correctly at the time**, in its own words:
*"the first override at d8 — it fired on the second roll at the new rate.
It changed nothing, which is the first half of window 2's retirement
condition. **One.**"*
**So the data existed, was correct, and was written down.** I asserted
"zero" in CB-EV-0024 without counting, and each later evidence file cited
the one before it. **A claim propagated five times by citation rather than
by measurement**, in a project whose central discipline is that a number
must carry its reproduction — and in files whose subject was that very
failure.
**Registered as a finding (F23), not buried here.**
## D1 — the mechanism is kept, and the rate stays at d8
**d8 is behaving exactly as designed.** 1 override observed against 1.375
expected is not a shortage of data; it is the rate working.
Window 1 at d4 produced 2 overrides in 12 and **both changed the
outcome** — which is why the rate was lowered. Window 2 at d8 produced 1,
which changed nothing. Nothing here argues for moving the rate again, and
moving it would discard the only comparison the two windows give.
## D2 — the retirement condition is restated, because as written it cannot fire
**This is the real finding, and it took computing to see.**
The condition is *retire if an override changes nothing twice running.* An
override changes nothing when the drawn tier equals the structural tier:
**P = 1/3**. Overrides arrive at **~1.4 per twelve-declaration window**.
The expected number of overrides before seeing two consecutive no-change
overrides is **~12**. At 1.4 per window that is **~9 more windows, roughly
100 declarations.**
**A retirement condition that needs a hundred declarations is decorative.**
It cannot discipline the mechanism it governs, which is the entire reason
a retirement condition exists (ADR-0006 D3: a gate must be able to cash
out).
Replaced with a condition that can be evaluated **once per window**:
> **Retire the chaos roll if a full window's overrides all change
> nothing** — and the window contains at least one override. A window with
> no overrides is **inconclusive**, and says so, rather than counting as
> evidence either way.
Window 2 under the new condition: **one override, it changed nothing →
the condition is MET for window 2.** But a single window at ~1.4 overrides
is a sample of one, so:
**D2a — the mechanism is not retired on one window.** The new condition
must be met **twice**, in consecutive windows, before the roll is retired.
That is the same conservatism as the old rule, moved to a level where the
sample size makes it reachable: two windows, ~24 declarations, not ~100.
**Window 2 counts as the first.** Window 3 decides.
## D3 — what would falsify this decision
- If window 3 produces **zero** overrides, the condition is inconclusive
and the retirement clock does not advance. Two inconclusive windows
running would mean d8 is too sparse to evaluate *even at window level*,
and the rate should rise rather than the mechanism be kept by default.
- If an override ever **changes an outcome** in a way that produces a
finding, the mechanism has paid for itself and the retirement clock
resets — which is what happened twice in window 1.
## D4 — a post-hoc observation, recorded and deliberately not acted on
Declarations 59 rolled **six, five times running**. The chance of some
run of five in eleven d8 rolls is roughly **1 in 370**.
**`shuf` was tested and looks fine** — 200 rapid successive calls gave a
reasonable spread across all eight values with a longest run of three.
**And this was found by looking after the fact**, which is how coincidences
become findings. It is recorded so a future window can check whether it
recurs, and **not treated as evidence of anything**. If a second window
shows a long run, that is two observations and worth investigating.
## Consequences
- `specs/InnerLoop.md` records window 2's result and window 3's terms.
- Window 3 opens at **d8**, twelve declarations, under D2's condition.
- **The four evidence files carrying the false claim are corrected in
place**, each pointing here — per ADR-0012 D5, a claim retracted
silently is how three wrong premises survived.
- F23 registered.
## What was rejected
| rejected | why |
|---|---|
| *"the mechanism produced no data"* | false — one override, exactly at the expected rate |
| moving the rate again | nothing argues for it, and it would discard the two-window comparison |
| keeping the old retirement condition | it needs ~100 declarations to fire; a gate that cannot cash out is decoration |
| retiring the roll on window 2 alone | one window at ~1.4 overrides is a sample of one |
| treating the five consecutive 6s as a finding | found post hoc, and `shuf` tests clean |
| correcting the evidence files silently | ADR-0012 D5 |

View file

@ -127,6 +127,15 @@ produce a number someone else acts on*. Recorded for whoever revisits
## 6. Chaos window 2
> **CORRECTED 2026-08-07 — this section is wrong.**
> Window 2 produced **one** override: declaration 3 (CB-WP-0020) rolled
> d8 = 8, drew S against a structural S, and **changed nothing** — which
> CB-WP-0020 recorded correctly at the time as *"One."* Eleven rolls at d8
> (declaration 1 opened the window at d4) against an expectation of 1.375
> eights. **The rate was working; I asserted "zero" without counting, and
> each later evidence file cited the one before it.**
> See [ADR-0017](../decisions/ADR-0017-chaos-window-2-verdict.md) and F23.
**Declaration 8 of 12.** Structural L (over-declared), d8 = 6, no
override.

View file

@ -120,6 +120,15 @@ does not.**
## 7. Chaos window 2
> **CORRECTED 2026-08-07 — this section is wrong.**
> Window 2 produced **one** override: declaration 3 (CB-WP-0020) rolled
> d8 = 8, drew S against a structural S, and **changed nothing** — which
> CB-WP-0020 recorded correctly at the time as *"One."* Eleven rolls at d8
> (declaration 1 opened the window at d4) against an expectation of 1.375
> eights. **The rate was working; I asserted "zero" without counting, and
> each later evidence file cited the one before it.**
> See [ADR-0017](../decisions/ADR-0017-chaos-window-2-verdict.md) and F23.
**Declaration 10 of 12.** Structural M, d8 = 7, no override.
**Twelve declarations, no 8 rolled**, so the window closes with **zero

View file

@ -136,6 +136,15 @@ three — which is the only count anyone ever looks at.
## 7. Chaos window 2 — closed
> **CORRECTED 2026-08-07 — this section is wrong.**
> Window 2 produced **one** override: declaration 3 (CB-WP-0020) rolled
> d8 = 8, drew S against a structural S, and **changed nothing** — which
> CB-WP-0020 recorded correctly at the time as *"One."* Eleven rolls at d8
> (declaration 1 opened the window at d4) against an expectation of 1.375
> eights. **The rate was working; I asserted "zero" without counting, and
> each later evidence file cited the one before it.**
> See [ADR-0017](../decisions/ADR-0017-chaos-window-2-verdict.md) and F23.
**Declaration 11 of 12**, structural M, d8 = 1, no override.
The window has now produced **zero overrides in eleven declarations at

View file

@ -122,6 +122,15 @@ not the number.
## 6. Chaos window 2 — closed, and its verdict is due
> **CORRECTED 2026-08-07 — this section is wrong.**
> Window 2 produced **one** override: declaration 3 (CB-WP-0020) rolled
> d8 = 8, drew S against a structural S, and **changed nothing** — which
> CB-WP-0020 recorded correctly at the time as *"One."* Eleven rolls at d8
> (declaration 1 opened the window at d4) against an expectation of 1.375
> eights. **The rate was working; I asserted "zero" without counting, and
> each later evidence file cited the one before it.**
> See [ADR-0017](../decisions/ADR-0017-chaos-window-2-verdict.md) and F23.
**This is declaration 12 of 12.** The window opened 2026-08-03 at d8.
**Twelve declarations, zero 8s, zero overrides.** The retirement condition

49
specs/ChaosRollHistory.md Normal file
View file

@ -0,0 +1,49 @@
# Chaos roll — window records
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.

View file

@ -49,6 +49,7 @@ kinds, states and metrics: [`GameDesign.md`](GameDesign.md). Reported by
| F19 | degenerate | applied | crates/cb-render-html/src/lib.rs::overhead_table | counterexample | 2026-08-06 | clay-borg |
| F20 | inert | applied | crates/cb-render-html/src/lib.rs::ending_page | counterexample | 2026-08-06 | clay-borg |
| F21 | degenerate | note | — | — | 2026-08-06 | clay-borg |
| F23 | inconsistent | applied | decisions/ADR-0017-chaos-window-2-verdict.md | counterexample | 2026-08-07 | clay-borg |
| F22 | underdetermined | withdrawn | games_ground::edition::supply_tests::play_never_exceeds_the_components_the_box_holds | counterexample | 2026-08-07 | clay-borg |
<!-- design-register:end -->
@ -79,6 +80,27 @@ kinds, states and metrics: [`GameDesign.md`](GameDesign.md). Reported by
since GROUND-WP-0005 is blocked on exactly this number. The withdrawal
was reported (ADR-0012 D5). Its reproduction is `difficulty.rs`, whose
policy panel is plural *because of this finding*.
- **F23 — a false claim propagated five times by citation instead of
measurement.** CB-EV-0024 §6 stated that chaos window 2 produced **zero
overrides** and that its retirement condition was untestable. CB-EV-0025,
CB-EV-0026, CB-EV-0027 and CB-WP-0029 each repeated it, citing the one
before.
**It was false.** Declaration 3 (CB-WP-0020) rolled d8 = 8 and overrode —
and **CB-WP-0020 recorded it correctly at the time**, in those words:
*"the first override at d8… It changed nothing… **One.**"* Counting the
workplans takes one command.
**The subject makes it worse.** Three of those four files were arguing
that this project's defect is claims asserted without their
reproduction — while carrying one. `facts-check` catches a copied number
that disagrees with its source; nothing catches a number with **no
source**, asserted once and cited thereafter.
**`applied`** — ADR-0017 corrects it, and each of the four files carries
an in-place correction rather than a silent edit (ADR-0012 D5). **The
general defect is not fixed**: it is the same family as the five
wrong-subject instances, and still has no control.
- **F22 — does the component supply bind the game? Asked, measured, and
withdrawn.** `Tokens.csv` gives every component a `quantity` — 6
Protection, 5 Denied, 12 relation links — and **no numbered rule

View file

@ -153,17 +153,22 @@ are never skipped for code-producing work.
random (`shuf -e S M L -n 1`), overriding the structural derivation — up or
down.
> **Window 1 closed 2026-08-02** at 12 declarations, 2 overrides, one each
> way, and **both changed the outcome** — so the mechanism was kept and
> the rate dropped d4 → d8 (CB-EV-0015 §5, CB-EV-0016 §4).
> **Window 3, opened 2026-08-07 at d8**, running to 12 declarations.
>
> **Window 2, opened 2026-08-03 at d8**, running to 12 declarations.
> Retirement condition: **retire if an override changes nothing twice
> running.**
> **Retirement condition (ADR-0017 D2):** retire the roll if **a full
> window's overrides all change nothing**, met in **two consecutive
> windows**. A window with **no** overrides is *inconclusive* and advances
> nothing. **Window 2 counts as the first.**
>
> Both windows' full records, the rate history, and why the old
> "twice running" condition was replaced:
> [`specs/ChaosRollHistory.md`](ChaosRollHistory.md), and
> `specs/InnerLoopReference.md` §Chaos roll — calibration.
>
> Record the roll every time, including when it changes nothing
> (`tier: L (structural L, chaos 8)`). Why the rate fell, why n=2 makes
> that the weakest part of the decision, and the dead rolls:
> [`specs/ChaosRollHistory.md`](ChaosRollHistory.md), and
> `specs/InnerLoopReference.md` §Chaos roll — calibration.
Chaos limits: a rolled-down tier relaxes *process* weight only. Invariants

View file

@ -381,3 +381,9 @@ not merely *add a control*.
**Quoting is not measuring** — the same sentence the cost-quoting rule
above rests on, learned here first and re-learned six times since.
## Chaos roll — window records
Moved to [`ChaosRollHistory.md`](ChaosRollHistory.md) on 2026-08-07: it is
a log that grows by one entry per window, and this file crossed the
loadability limit carrying it.