clay-borg/evidence/CB-EV-0031-a-seat-that-does-not-regulate.md
tegwick da58e78e4a
Some checks failed
ci / check (push) Failing after 4s
CB-REV-0002: round 2, and the corrections were not approvable either
Three FATAL, five SERIOUS. The substance of round 1's corrections held —
Reactive is genuinely one arm different, the five replacement controls are
non-inert, the inert metric is right, the numbers reproduce. What failed
were the CLAIMS about them, and two defects the corrections introduced.

FATAL 1: the fix for round 1's #11 did not fix it. The assertion was
`games + setup_fails == 200`, and a refused setup increments setup_fails
while skipping games — so the sum is invariant under exactly the failure
it claimed to catch. Injecting setup failures gave exit 0 over 196-game
columns. Now asserts games == GAMES, verified to exit 101.

FATAL 2: the correction to the selective-column FATAL was itself
selective. "81-1000 per cell, baseline AND H1" and "31-1000" twelve lines
apart, both taken from the baseline row; under H1 rank-75 arms are
59/0/0/0. Every cell is now printed rather than summarised, and the
corrected verdict is the opposite of the one it replaced: under rank-75,
H1 REDUCES DARVO arms to zero at 3p and above.

FATAL 3: "DARVO arms 2 per seat per game" is 1 per seat per game, exactly,
at every band.

SERIOUS: the tiebreak oracle asserted only that the winner set CHANGED, so
reversing the tiebreak left it green; the #13 defect's impact was claimed
and never measured (72,000 games: zero divergences — real in principle,
witnessed only by a constructed board); a 29-of-363 citation pointed at a
file that did not contain it (round 1's reviewer did report it, and it was
never transcribed — the record was wrong, not the number); the harnesses
were run by NO GATE, so every published figure came from a manual run of
an ungated binary, including the assertion added for #1; and edition-check's
sibling handling — added by the last correction — was self-certifying,
crashed instead of failing, and counted Markdown lines as coverage. Now
discovered on disk, and it found a real gap on its first run: Rules_Text.csv
vendored with no digest.

Also: "peak Stress held" was dead code kept quiet by `let _ = held;` — the
numbers were right by coincidence.

make panels is now a registered gate. Round 3 is owed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 09:44:00 +02:00

193 lines
9.4 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.

# CB-EV-0031 — a seat that does not regulate
CB-WP-0039. Tier M (adds a policy to the panel every future measurement is
reported against; chaos d8 = 2 → no override). **Declaration 11 of chaos
window 3.** Closed 2026-08-08.
> **CORRECTED 2026-08-08 after adversarial review, and most of the
> original file was wrong.** The review is in
> [`CB-REV-0001`](../reviews/CB-REV-0001-h1.md). The policy this pass
> called *"greedy with one preference changed"* differed in **five**
> places — including `SpendFreedom`, which it ranked 95 unconditionally
> where greedy ranks it 0 unless the gate bites, so the seat burned its
> Freedom token in round one of every game. **Every number below was
> measuring that bug.** They have been re-derived against a policy that
> delegates to `GreedyPolicy::rank` and overrides exactly one arm.
>
> Sections 1 and 2 are rewritten. **Section 3 is withdrawn entirely.**
**Delivered:** the `reactive` policy, and the measurement CB-EV-0030 §4
named as the one it had not run.
---
## 1. It changes CB-EV-0030's verdict
CB-EV-0030 concluded H1's DARVO arm rate was still 0. **That was true of
the panel, and the panel was greedy-family throughout.**
`GreedyPolicy` ranks `Action::Ground if gated => 100`: the instant the
stress gate bites it grounds. Stress plateaus at 3, and the arm at 5 is
unreachable **by construction**. So "H1 does nothing" was really "H1 does
nothing *to a seat that already manages its Stress*" — and H1 was written
for the seat that does not.
`reactive` now **delegates to `GreedyPolicy::rank` and overrides one arm**
(`Ground if gated`), so "one preference differs" is structurally true
rather than a claim. SHARED GROUND, 200 games per cell, all 200 ran, and
**`peak` is now Stress held, not Stress assigned** (§2):
| | | greedy | | | | reactive | | |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| **seats** | won | atk | darvo | peak | won | atk | darvo | peak |
| 2p | 68 | 0 | 0 | 4 | **66** | 726 | 363 | **5** |
| 3p | 0 | 0 | 0 | 4 | 0 | 1200 | 600 | **5** |
| 4p | 0 | 0 | 0 | 4 | 0 | 1600 | 800 | **5** |
| 6p | 0 | 0 | 0 | 4 | 0 | 2400 | 1200 | **5** |
**H1's mechanism does reach the unregulated seat.** DARVO arms **exactly
1 per seat per game** — 600/(200×3), 800/(200×4), 1200/(200×6) — and 0.91
at 2p. The first correction said **2** per seat per game, which is wrong
by a factor of two and was caught by round 2 (#3).
**Criterion 3's verdict is corrected.** The original said reactive *"wins
nothing, at any seat count"*. **False.** At 2p it wins **66 against
greedy's 68** — indistinguishable. It wins nothing at 3p and above, which
is also where greedy wins nothing.
## 2. The baseline finding, which is larger than H1
Look at the baseline half of the same run. Greedy and reactive are
**identical** — 132/165/190/200, zero attacks, zero DARVO, in all four
bands.
**Peak Stress held across the 1,600 baseline games was 2 — the starting
value, never exceeded.** Stress only ever went down.
**Three corrections to what this section originally said.**
1. It reported **1**, because `peak` was a maximum over `StressSet` event
*payloads*. Starting Stress is written by `setup`, never by an event,
so a table sitting at 2 all game reported 1 — and a table with no
`StressSet` at all would have reported 0. **Wrong subject**: the metric
answered *"highest value ever assigned"* while the prose claimed
*"highest Stress reached"*.
2. It said **3,200 baseline games**. The run is 3,200 *total*; the
baseline half is **1,600**.
3. It generalised to *"a policy built to be reckless with Stress plays
identically to one built to husband it"*. **False, and refuted by this
repo's own sibling harness**: `attack-value.rs`'s rank-95 policy is
exactly that policy, and under **baseline** it drives Stress to 5 and
arms DARVO 4001000 times per cell.
**What survives, stated narrowly.** Under both policies measured here —
neither of which ever selects ATTACK under baseline — **no Stress is ever
added at all**. The baseline's Stress economy is reachable only through
ATTACK, so a table that does not attack never meets the gate, the arm, or
the Freedom token. That is still a real observation about F17, and it is
**about ATTACK being the sole inbound pressure**, not about the economy
being unreachable in general.
## 3. WITHDRAWN — "H1-B suppresses DARVO in the attacker"
The original §3 argued that H1-B holds the attacker at Stress 4, below the
arm, and pushes its targets to 5 — inferred from a constant `darvo = 400`
and a final-Stress signature of `[5, 5, 4, 4, 4, 4]`.
**Withdrawn on two independent grounds, both found by the review.**
1. **The constant was the broken policy** — but a constant remains, and
saying otherwise was wrong (round 2, #12). With the one-arm-override
policy `darvo` is **exactly `seats × games`** at 3p and above. The
constant moved from 400 to `n·games`; it did not dissolve, and whatever
forces exactly one arm per seat per game is still unexplained.
2. **Disabling H1-B changes the arm count by exactly zero**, in every
cell, under the corrected policy. The effect attributed to H1-B's
arithmetic was an interaction with the undeclared preference deltas.
**And the inference was invalid even where the numbers held.** Final
Stress does not record who armed: `DarvoEnded` resets the stage to `Off`
and REVERSE applies 2 to its owner, so a seat can arm and finish below 5.
The review demonstrated six seats arming behind the same `[5,5,4,4,4,4]`
signature. **The original hedged the wrong variable** — it disclaimed "the
number 2" and defended "the direction", and the direction is the part that
failed.
## 4. What this does not say
- **`reactive` is not a good player and is not meant to be.** It wins
nothing under H1 and exactly what greedy wins under baseline. It is an
instrument for reaching the Stress economy, not a claim about how people
play.
- **Two policies is still not a panel.** RetrospectiveAnalysis §4.1 asks
for greedy, random and first-legal at minimum; this pass added a fourth
axis to two of them, in one mode.
- **SHARED GROUND only.** CB-EV-0030 covered three modes; this covers one.
- **No felt-play**, and this is the kind of claim — about pressure, and
when a player feels cornered — that a human table answers and 3,200
simulated games do not.
## 5. The three items the review left open, now closed
**H1-B on the DARVO extra Attack** — the delta says the extra Attack
shares the Attack resolution *"so it can self-soothe too if Stress ≥ 4"*.
CB-WP-0038 asserted it because the code shares `resolve_attack`; nothing
tested it, and the withdrawn §3 ran straight through this path.
`h1b_soothes_the_darvo_stage_attack_too` now covers it, mutation-verified.
**Round-5 pressure did not reach the score.** `end_round_events` scored
from `self` while H1-A's pressure went into `work`, and `score` reads
Stress for the GR-E03 and GR-E04 tiebreaks. Fixed, and the test uses the
case that actually bites: uniform pressure preserves an ordering, so it
takes the **clamp** at 5 to collapse a gap and change who wins.
**Its impact was claimed and never measured, and the measurement is
zero** (round 2, #5). This file said the pressure was invisible to *"the
two modes CB-EV-0030 reports on"* without checking. The reviewer ran
~72,000 games across all three modes with a divergence detector and found
**no divergence at all**; `attack-value`'s output is byte-identical with
the fix and without it. **The defect is real in principle and its only
witness is a hand-constructed board.** It is worth fixing and it changed
nothing that has been reported.
**Inert arms, and a second wrong-subject error caught on the way.** A
DARVO arm at the End of Round 5 can never advance a stage — `GameEnded`
follows immediately — and ground-game's criterion 1 is about DARVO
*mattering*. Now reported separately:
| seats | arms | of which inert |
|---|---:|---:|
| 2p | 363 | **29** (8%) |
| 3p | 600 | 0 |
| 4p | 800 | 0 |
| 6p | 1200 | 0 |
**The first version of that metric was wrong and equalled `darvo` in
every cell**, because it tested `g.rounds >= 5` — a property of the
*game*, not of the *event*. Every arm in every completed game was marked
inert, which briefly looked like "criterion 1 is not met after all". An
arm is inert when no `RoundEnded` follows it.
**29-of-363 was independently confirmed twice**, and the citation for it
was wrong the first time (round 2, #6): this file credited
`CB-REV-0001`, which does not contain the figure. Round 1's reviewer *did*
report it — 29 of 363 at 2p, 8% — but only in its message, and it was
never transcribed into the review file. **The record is now corrected
there.** Round 2 re-derived it independently, by a different definition
(no later DARVO event names that player), and agrees in every cell.
**Criterion 1 stands as met**: 92% of arms at 2p and all of them above are
live.
**`regulation.rs` no longer skips setup failures silently.** They are
counted, and a short cell now **fails an assertion** rather than printing
a number a reader has to notice — which is what CB-EV-0030 §3 claimed
credit for and only half did.
## 6. Open
- **The baseline's Stress economy being unreachable (§2) deserves its own
finding**, and is not raised here because it wants the plural panel of
§4 first. It is the more consequential of the two results in this file.
- **Whether H1-B's suppression is intended** is ground-game's question,
and it is the sharpest thing this pass can hand them.