clay-borg/evidence/CB-EV-0032-h2-measured.md

174 lines
7.1 KiB
Markdown
Raw Normal View History

CB-WP-0042 T05: H2 measured — it largely succeeds where H1 failed Measured against ground-game's own §3 criteria, read from their design note rather than reused from H1. Criterion 1 met with room: greedy SHARED wins 120 at 3p and 175 at 4p, against H1's 0 and 0, restoring 73% and 92% of baseline. Criterion 3 met, and it was H1's clearest failure. 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 met at 2p/4p/6p and missed at 3p — 1.50 against baseline's 1.57 — reported as a miss because that is what this sample says. The mechanism is visible: H1-greedy's spread is 0.00 at 3p+, because a flat tax on every seat creates no variance at all. That is the clearest statement of why scoping was the right correction. Criterion 5 is the best evidence in the pass. Forcing every scope to global and changing nothing else reproduces H1's collapse exactly — 120 to 0 at 3p, 175 to 0 at 4p — so the scoping is what saves it, not any other difference between the packages. Criterion 4 came out backwards and the prediction held. The workplan said this panel might be unable to test it, because no policy here models another seat or knows what a scope is; bond claim rates are LOWER than personal at 3p and 4p, driven by suit availability rather than incentive. Reported as untested with an incidental figure pointing the wrong way, not as a refutation. Wired into make panels. First pass declared after ADR-0021, so no chaos roll is recorded. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 16:09:16 +02:00
# 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 34p **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 maxmin 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.
H2's ATTACK dynamics, and a construction hazard found while measuring them 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>
2026-08-08 16:56:27 +02:00
## 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
CB-WP-0042 T05: H2 measured — it largely succeeds where H1 failed Measured against ground-game's own §3 criteria, read from their design note rather than reused from H1. Criterion 1 met with room: greedy SHARED wins 120 at 3p and 175 at 4p, against H1's 0 and 0, restoring 73% and 92% of baseline. Criterion 3 met, and it was H1's clearest failure. 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 met at 2p/4p/6p and missed at 3p — 1.50 against baseline's 1.57 — reported as a miss because that is what this sample says. The mechanism is visible: H1-greedy's spread is 0.00 at 3p+, because a flat tax on every seat creates no variance at all. That is the clearest statement of why scoping was the right correction. Criterion 5 is the best evidence in the pass. Forcing every scope to global and changing nothing else reproduces H1's collapse exactly — 120 to 0 at 3p, 175 to 0 at 4p — so the scoping is what saves it, not any other difference between the packages. Criterion 4 came out backwards and the prediction held. The workplan said this panel might be unable to test it, because no policy here models another seat or knows what a scope is; bond claim rates are LOWER than personal at 3p and 4p, driven by suit availability rather than incentive. Reported as untested with an incidental figure pointing the wrong way, not as a refutation. Wired into make panels. First pass declared after ADR-0021, so no chaos roll is recorded. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 16:09:16 +02:00
- **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`](../specs/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 354366 across seed windows; nothing here has been
re-derived on a second sample, and the `won` columns 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.