Some checks failed
ci / check (push) Failing after 3s
The pattern is now measured over three rounds: 5 fatal, then 3 (2 from the previous round's corrections), then 4 (3 from them). The corrections are not getting safer. FATAL 1: round 2's short-cell assertion went into regulation.rs only. attack-value.rs — which produced every number in CB-EV-0030's DARVO table — still just warned, and the gate registered to close the finding claimed the property for both. FATAL 2, the sharpest of the three rounds: counting games proves they STARTED. Stopping the engine after one round gives 200 games, all-zero columns and exit 0 — byte for byte the signature CB-EV-0030 says the instrumentation distinguishes from a real result. Both harnesses now require every counted game to have reached an outcome over five rounds. FATAL 3: round 2's `.csv` filter was applied to all three loops, so catalog.yaml and rules_delta.yaml — whose missing digests were round 1's finding — were recorded and then never compared, and never checked against upstream at all. Only the parser loop filters now. FATAL 4: five of six tiebreak comparators had no coverage. GR-E04's tiebreak never executes in any scenario. All four are now covered and mutation-verified; the Blame key needed compensating claims to be reachable at all, since Blame also lowers the coalition score. SERIOUS: "peak held" computed the same number as "peak assigned" for every possible input — the real gap was that START_STRESS was an unchecked constant, now read off the dealt state; cadence="none" was a pure loophole, removed; sibling discovery swapped a hand-written list for hand-written globs and missed metadata.json and VARIANT.md, both named in the package's own changed_files — now walked, and it found them immediately; and "~72,000 games" was unsourced, make panels runs 17,600. Also separated two kinds of number that were presented alike: seats×games is invariant, 363 and 29 vary 7.1%-11.5% across samples. Round 4 owed. The conclusion is not that the work is nearly right — it is that author-made corrections to measurement work should be assumed defective until a fresh reader has attacked them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
212 lines
10 KiB
Markdown
212 lines
10 KiB
Markdown
# 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 400–1000 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. Reverting the fix
|
||
leaves `attack-value`'s output **byte-identical across all 24 cells and
|
||
all three modes**, including the two whose `won` column reads through the
|
||
tiebreak. **The defect is real in principle and its only witness is a
|
||
hand-constructed board.**
|
||
|
||
**The sample size quoted here was "~72,000 games" and was not
|
||
derivable from anything in this repo** (round 3, #9). `make panels` runs
|
||
**17,600**: `attack-value` is 2 variants × 3 modes × 3 policies × 4 seat
|
||
counts × 200 = 14,400, and `regulation` is 2 × 4 × 2 × 200 = 3,200. The
|
||
figure was adopted from a reviewer's message and never re-derived — in
|
||
the file whose whole correction history is about exactly that.
|
||
|
||
**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 |
|
||
|
||
**Two kinds of number are in that table and this file did not distinguish
|
||
them** (round 3, #10). `600 / 800 / 1200` is **exactly `seats × games`**
|
||
and holds on every sample tried. `363` and `29` are **sample-specific**:
|
||
across four disjoint windows the 2p arms run 354–366 and the inert share
|
||
runs **7.1%–11.5%**. So "92% of arms at 2p are live" is a fact about seeds
|
||
`0..200`, not about the game — it reads 88.5% elsewhere.
|
||
|
||
The same applies to the baseline win counts quoted throughout
|
||
(`132/165/190/200`): the *identity* of greedy and reactive under baseline
|
||
holds on every sample, the **digits do not**.
|
||
|
||
**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.
|
||
|
||
**The 29-of-363 citation has now been wrong twice and is stated plainly
|
||
here.** Round 2 found it credited to `CB-REV-0001`, which did not contain
|
||
the figure; round 1's reviewer *had* reported it, in its message only.
|
||
Round 3 found the remaining problem (#10, #11): both "independent
|
||
confirmations" used **seeds 0..200**, so what was confirmed twice is the
|
||
**definition**, not the figure — and whether round 1's `StrictReactive`
|
||
was the corrected one-arm policy or the five-difference one **cannot be
|
||
determined from anything in this repo**, because that reviewer's code was
|
||
never kept. Treat 29/363 as one sample of a quantity that varies.
|
||
|
||
**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.
|