The H2 panel measured wins, variance and DARVO but not ATTACK selection — which is F17's actual question. attack-value now runs H2 too. The shape is the finding. Under H1 a seat that sometimes attacks loses everything at 3p and above. Under H2 rank-75 wins 112/173/199 against greedy's 120/175/199, while attacking and arming DARVO. So H2 makes occasional ATTACK affordable — it does not make it pay. rank-75 never beats greedy in any cell, and rank-95 (always attack) still wins 0 everywhere in all three variants, so "not always-attack-optimal" holds. F17 therefore stands: ATTACK earns its place in no mode. What changed is that choosing it is no longer catastrophic. Whether affordable is what the design wants is ground-game's judgement. And a hazard: with_variant() exists because H2 assigns Problem owners at setup and `state.variant = v` leaves them unassigned, so scoped pressure ticks nobody and H2 measures as INERT. Three call sites had the bare write, including cb-play's driver. No published figure is affected, and that was checked rather than assumed: h2-panel used the builder, and the two harnesses with the bare write had only ever run baseline and H1, neither of which has a setup step; the driver has never played H2. All three fixed, and a_bare_variant_write_leaves_h2_inert now states the difference so a regression is caught by a named test rather than by a reader wondering why H2 did nothing. The builder was not enough — the field is public, so the old form still compiles. Worth knowing before the next variant. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7.1 KiB
CB-EV-0032 — H2 measured
CB-WP-0042 T05. Tier M. Closed 2026-08-08. The first pass declared after the chaos roll was retired (ADR-0021), so there is no roll to record.
Delivered: H2 implemented from rules_delta.yaml, measured against
ground-game's own §3 criteria — read from their design note, not
reused from H1 — and a control that isolates the mechanism.
1. Their criteria, answered
| # | criterion | verdict |
|---|---|---|
| 1 | greedy SHARED 3–4p well above H1's 0 | met, strongly |
| 2 | Stress variance above baseline and H1-greedy | met at 2p/4p/6p, marginally missed at 3p |
| 3 | DARVO non-zero for a policy that still sometimes wins | met — and this was H1's clearest failure |
| 4 | bond cards show elevated SOLVE rate vs personal | not met, and this panel cannot test it (§3) |
| 5 | control: force all scopes global → H1-like collapse | met, decisively |
2. The numbers
SHARED GROUND, 200 games per cell. spread is the mean max−min final
Stress across seats — their criterion 2.
greedy
| seats | baseline won / spread | H1 won / spread | H2 won / spread |
|---|---|---|---|
| 2p | 132 / 0.05 | 68 / 0.34 | 87 / 0.47 |
| 3p | 165 / 1.57 | 0 / 0.00 | 120 / 1.50 |
| 4p | 190 / 1.83 | 0 / 0.00 | 175 / 2.40 |
| 6p | 200 / 1.55 | 0 / 0.00 | 199 / 2.02 |
reactive — DARVO arms in brackets
| seats | H1 won (arms) | H2 won (arms) |
|---|---|---|
| 2p | 66 (363) | 61 (346) |
| 3p | 0 (600) | 13 (499) |
| 4p | 0 (800) | 13 (470) |
| 6p | 0 (1200) | 57 (565) |
Criterion 1 is met with room. H2 restores 73% of baseline wins at 3p and 92% at 4p, where H1 destroyed them entirely.
Criterion 3 is the one that matters most. Under H1 the unregulated seat armed DARVO constantly and never won; under H2 it arms and wins 13/13/57. "Non-zero for some policy that still sometimes wins" is exactly the shape H1 could not produce.
Criterion 2, honestly. H2's spread beats baseline at 2p, 4p and 6p and misses at 3p — 1.50 against 1.57. It beats H1-greedy everywhere, and H1-greedy's spread is 0.00 at 3p+: a flat tax on every seat creates no variance at all, which is the clearest statement of why scoping was the right correction.
3. Criterion 4 — the number is lower, and the number cannot mean what
the criterion asks
Claim rate by scope, H2, greedy:
| seats | global | personal | bond |
|---|---|---|---|
| 2p | 70.5% | 54.5% | — (no bond card, as designed) |
| 3p | 85.5% | 80.2% | 60.0% |
| 4p | 99.0% | 98.5% | 87.5% |
| 6p | 100% | 95.3% | 99.5% |
Bond is lower than personal at 3p and 4p — the opposite direction.
And this panel cannot test the hypothesis. The claim is that a shared tick makes a Bond network jointly motivated to clear that card. No policy here models another seat, or knows what a scope is. Greedy picks SOLVE on suit availability. So the bond rate is driven by which cards happen to be matchable, not by incentive — the mechanism the criterion is about could not have shown up.
This was stated in the workplan before the run, not discovered in the numbers. The honest report is: criterion 4 is untested, and the incidental figure points the wrong way. A table can answer it; this cannot.
4. Criterion 5 — the control isolates the mechanism
Force every scope to global and change nothing else:
| seats | H2 scoped | H2, all scopes global |
|---|---|---|
| 3p | 120 | 0 |
| 4p | 175 | 0 |
H1's collapse returns exactly. That is a strong causal statement and the best evidence in this file: the scoping is what saves it, not any other difference between the packages. Their optional A/B was worth running.
5. ATTACK — affordable under H2, still not profitable
Added after the first report, because the H2 panel measured wins, variance and DARVO and not ATTACK selection, which is F17's actual question.
attack-value's rank-75 policy — attack when convenient — SHARED
GROUND, wins with attacks and DARVO arms in brackets:
| seats | baseline | H1 | H2 |
|---|---|---|---|
| 2p | 132 (604 atk, 81 arms) | 66 (180, 59) | 65 (248, 102) |
| 3p | 165 (592, 125) | 0 (0, 0) | 112 (250, 52) |
| 4p | 190 (923, 218) | 0 (0, 0) | 173 (626, 165) |
| 6p | 200 (389, 31) | 0 (0, 0) | 199 (299, 45) |
The shape is the finding. Under H1 a seat that sometimes attacks loses everything at 3p and above. Under H2 it wins 112 / 173 / 199 — against greedy's 120 / 175 / 199 — while attacking and arming DARVO.
H2 makes occasional ATTACK affordable. It does not make it pay.
rank-75 never beats greedy in any cell; at best it draws level (199 vs 199 at 6p). And rank-95 — always attack — still wins 0 everywhere, in all three variants, so the "not always-attack-optimal" property holds.
F17 therefore stands. ATTACK earns its place in no mode; what changed is that choosing it is no longer catastrophic. Whether "affordable" is what the design wants, or whether ATTACK should actually reward, is ground-game's judgement.
6. A construction hazard, found while measuring this
GroundState::with_variant() exists because H2 assigns Problem owners at
setup and state.variant = v leaves them unassigned — scoped pressure
then ticks nobody and H2 measures as inert.
Three call sites had the bare write, including cb-play's driver.
No published figure is affected, and that was checked rather than
assumed: h2-panel.rs used the builder, and the two harnesses with the
bare write had only ever run baseline and H1, neither of which has a
setup step. The driver has never played H2.
All three are fixed, and a_bare_variant_write_leaves_h2_inert now states
the difference — so a regression is caught by a named test rather than by
a reader wondering why H2 did nothing.
The builder was not enough: the field is public, so the old form still compiles. That is worth knowing before the next variant.
7. What this does not say
- No felt-play. H2's central claim is about motivation — a bonded
pair caring about each other's card — and §3 says as much. 200-game
aggregates measure dynamics, not motivation
(
Taxonomy.md§4). - The panel is still greedy-family, as CB-EV-0031 said of itself. Criterion 3 asks for "some policy that still sometimes wins" and we have two, both derived from the same ranking.
- These are single-sample figures. CB-REV-0003 #10 found the 2p arm
counts varying 354–366 across seed windows; nothing here has been
re-derived on a second sample, and the
woncolumns should be read as approximate. - No re-review. CB-WP-0038's tier-L review found twelve fatal defects across three rounds, all in the instrument. This pass reuses that instrument.
Open after this pass
- Criterion 4 needs a policy that models other seats, or a table.
- A second seed window, to separate the invariant figures from the sample-specific ones as CB-EV-0031 §1 now does.
- The 3p variance miss (1.50 vs 1.57) is within what a second sample might move; it is reported as a miss because that is what this sample says.