CB-REV-0001: the adversarial review, and it was not approvable
Some checks failed
ci / check (push) Failing after 4s

Thirteen challenges, five FATAL, all five conceded. Nothing had reached
ground-game, which is the only reason this is a correction and not a
retraction.

The worst: `Reactive` was not "greedy with one preference changed". It
differed in five, including SpendFreedom — ranked 95 unconditionally
against greedy's `95 if gated else 0` — so the seat burned its Freedom
token in round one of every game. A second change to the exact mechanism
under study, and every number in CB-EV-0031 was measuring it. The pass
claimed ADR-0018's one-varying-parameter discipline in its own workplan
while violating it. GreedyPolicy::rank is now public and the policy
delegates, overriding one match arm, so the control is structurally true.

Withdrawn entirely: "H1-B suppresses DARVO in the attacker". Disabling
H1-B under the corrected policy changes the arm count by exactly zero.
The pass hedged the wrong variable — it disclaimed "the number 2" and
defended "the direction", and the direction is what failed. The
supporting inference was invalid anyway: final Stress cannot show who
armed, because DarvoEnded resets the stage and REVERSE gives its owner -2.

Corrected: criterion 1 was failed on the greedy column while the pass's
own printed table showed 31-1000 arms in the other columns — the
selective-column move, in the file that names it. "Peak Stress was 1" was
a maximum over StressSet payloads, not held state (true: 2); the baseline
game count was 1,600 not 3,200; and "a reckless policy plays identically
to a careful one" is refuted by this repo's own rank-95 policy.

Inert controls replaced, each verified red against the reviewer's own
mutation: the baseline hash test compared two identically-constructed
states (serde(skip) on variant left 57/57 green); the `unchanged:` test
checked 3 of 7 entries and passed with SOLVE made illegal; H1-A's ordering
and H1-B's OU-cancel path had no test at all.

edition-check now covers catalog.yaml and rules_delta.yaml, whose digests
CB-WP-0038 claimed and never recorded — the review found it and reported
it unverified rather than absent, which was the right call.

Still open: H1-B on the DARVO extra-Attack path is untested, regulation.rs
still skips setup failures silently, and round-5 arms are counted though
they can never act.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-08 02:02:35 +02:00
parent 38106791a6
commit 041c0e7c3e
9 changed files with 489 additions and 101 deletions

View file

@ -20,10 +20,18 @@ than trusted, and the ATTACK panel re-run for both rule sets.
`ground-game`'s success criteria (design note §3.2), answered one by one.
**Three of four fail.**
> **CORRECTED 2026-08-08 after adversarial review**
> ([`CB-REV-0001`](../reviews/CB-REV-0001-h1.md)). Criteria 1 and 2 were
> rendered as flat failures **on the strength of the greedy column
> alone**, while this pass's own harness printed 311000 DARVO arms per
> cell in the rank-75 and rank-95 columns. That is the selective-column
> move this project says it exists to prevent, committed in the file that
> says so. The verdicts below are restated per column.
| # | criterion | verdict |
|---|---|---|
| 1 | DARVO arm rate non-trivial, "not 0/500" | **fails** — still **0** under greedy at every seat count |
| 2 | ATTACK selection rises for some subpopulation | **fails** — greedy still attacks **0** times; and for the rank-75 policy ATTACK *fell*, 604 → 180 at 2p |
| 1 | DARVO arm rate non-trivial, "not 0/500" | **not a flat fail.** **0** under greedy; **811000 per cell** under rank-75 and rank-95, baseline *and* H1. It fails for a seat that regulates and passes for one that does not — see [CB-EV-0031](CB-EV-0031-a-seat-that-does-not-regulate.md) |
| 2 | ATTACK selection rises for some subpopulation | **mixed.** Greedy attacks **0** times; rank-75's ATTACK *fell* 604 → 180 at 2p; the unregulated seat's rose 0 → 726 |
| 3 | group success does not collapse | **fails hardest** — greedy's wins go **165 → 0** (3p), **190 → 0** (4p), **200 → 0** (6p) |
| 4 | Bond/GROUND stay better than DARVO | holds, but **vacuously**: DARVO never fires |

View file

@ -4,9 +4,17 @@ 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.
> Like [CB-EV-0030](CB-EV-0030-h1-measured.md), **this has not had the
> tier-L adversarial review that pass owes, and none of it may reach
> `ground-game` until that review has run.**
> **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.
@ -24,24 +32,27 @@ 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` is greedy with **one preference changed**: GROUND demoted below
ATTACK. SHARED GROUND, 200 games per cell, all 200 ran in every cell:
`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 | **0** | 1200 | **400** | **5** |
| 3p | 0 | 0 | 0 | 4 | **0** | 1800 | **400** | **5** |
| 4p | 0 | 0 | 0 | 4 | **0** | 2400 | **400** | **5** |
| 6p | 0 | 0 | 0 | 4 | **0** | 3600 | **400** | **5** |
| 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 works.** Criterion 1 (DARVO arm rate non-trivial) and
criterion 2 (ATTACK selection rises for some subpopulation) are **met**
for the subpopulation H1 was aimed at. CB-EV-0030 reported both as
failures, and that report was about greedy.
**H1's mechanism does reach the unregulated seat.** DARVO arms **2 per
seat per game**, scaling with the table — where the earlier figure was a
flat 400 in every cell, which was an artifact of the broken policy.
**Criterion 3 still fails, and now worse.** Reactive wins **nothing**, at
any seat count, under H1.
**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
@ -49,40 +60,55 @@ 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 across 3,200 baseline games was 1.** Starting Stress is 2,
so no seat's Stress was ever *set* above 1: it only ever went down.
**Peak Stress held across the 1,600 baseline games was 2 — the starting
value, never exceeded.** Stress only ever went down.
> **The baseline's entire Stress economy is unreachable under this panel.**
> The gate at 4, the DARVO arm at 5, the Freedom token that buys past the
> gate — none of it can engage, and a policy built to be reckless with
> Stress plays identically to one built to husband it.
**Three corrections to what this section originally said.**
That is a deeper account of F17 than F17 has. ATTACK is not merely
unrewarding; **the pressure it is supposed to answer never exists.** H1 is
an attempt to fix exactly this, and it is aimed at the right thing.
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.
## 3. What H1-B actually does, which is not what it was for
**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.
`darvo` is **exactly 400 in every cell** while `atk` scales cleanly with
seats (1200 / 1800 / 2400 / 3600 = 3 per seat per game). A constant across
seat counts is an artifact smell, so it was measured rather than reported.
## 3. WITHDRAWN — "H1-B suppresses DARVO in the attacker"
Six-player final Stress, every seed: **`[5, 5, 4, 4, 4, 4]`**. Exactly two
seats arm, whatever the table size.
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]`.
**The self-soothe is doing it.** An attacker at Stress ≥ 4 takes 1 for a
landed Attack, which holds it at 4 — *below the arm* — while its targets
take +1 or +2 and climb to 5. **H1-B suppresses DARVO in the seat that
attacks and concentrates it in the seat attacked.**
**Withdrawn on two independent grounds, both found by the review.**
The hypothesis wanted ATTACK to be rational at high Stress. It is. The
side effect is that the aggressor is the one seat protected from arming.
1. **The constant was the broken policy.** With the one-arm-override
policy, `darvo` scales with seats (363/600/800/1200). There is no
constant to explain.
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.
**Stated as a limitation, not a finding about H1:** `reactive` picks its
Attack target by first-legal, not by any judgement, so the *concentration*
on two seats is partly an artifact of crude targeting. The direction —
attackers held at 4, targets pushed to 5 — follows from H1-B's arithmetic
and does not depend on the targeting. **The number 2 does.**
**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