clay-borg/scenarios/ground
tegwick 2da19a49b7 CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks
ADR-0011 decided it: vendor the CSV with a checked digest, read it with
a ~50-line reader, and let the hashes move.

The declaration's constraint was measured against the WRONG BUDGET. It
said a CSV crate costs 21,613 against AM-4a's 3,798 of headroom, '5.7x
over, settled by measurement'. But setup and problem_priorities are
cfg(scenarios) and are not in the shipped runtime at all, so AM-4a never
sees them. Against AM-4b, csv costs 17,651 against 19,742 -- it FITS,
with 2,091 to spare. It is refused anyway, on proportion: 89% of the
budget's remaining capacity to read 20 rows. The revisit condition is
stated (nested quoting, embedded newlines, multiple dialects).

GR-S01 now deals Surface + hidden 1..=k as ruled, with edition values and
suits. Measured: 6/9/12 available against thresholds 5/7/9 -- the game is
winnable at every seat count, which is what the maintainer could not do.
gd0001 is INVERTED, not deleted, and now also asserts the 6/9/12 so a
deal that is reachable for the wrong reason still fails.

Blast radius was scenario expectations, exactly as the ADR predicted: no
scenario pinned a hash and no bundle is committed. Six scenarios and two
unit tests updated, each with a note. gr-e01-threshold-unreachable-2p is
RENAMED to -reachable- and rewritten as the non-provisional import check
ground-game asked for by name. gr-e03's setup was restructured, not just
renumbered: with values 2,2,2 its personal-edge test would have tied
three ways and asserted nothing.

BLOCKING: AM-7 fails at median 0.845 against its 0.9 floor. Isolated
across three runs -- 3 problems + stand-in 0.97, 3 problems + edition
0.909, 4 problems + edition 0.845. State is BOUNDED (proven: identical
after 5k and 100k events), so this is not the unbounded-growth defect
AM-7 exists to catch; it is a bigger working set streaming a long log.
Whether AM-7's floor is still right for a larger aggregate is a spec
question and lowering it requires an ADR, so it is not being tuned here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 00:47:56 +02:00
..
gr-a01-investigate.yaml T08 iter 3: GROUND modes, INVESTIGATE, SOLVE 2026-07-31 02:23:09 +02:00
gr-a02-solve.yaml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
gr-a04-bond-support.yaml T08: give provisional defaults an owner, a date, and a visible age 2026-07-31 09:29:40 +02:00
gr-a05-support-response.yaml T08 iter 4: GROUND-OU/ND choices and Support consent 2026-07-31 02:27:25 +02:00
gr-a07-bond-flip.yaml T08 iter 3: GROUND modes, INVESTIGATE, SOLVE 2026-07-31 02:23:09 +02:00
gr-a08-rivalry-break.yaml T08 iter 3: GROUND modes, INVESTIGATE, SOLVE 2026-07-31 02:23:09 +02:00
gr-a10-ground-gr.yaml T08 iter 3: GROUND modes, INVESTIGATE, SOLVE 2026-07-31 02:23:09 +02:00
gr-a11-ground-ou.yaml T08 iter 4: GROUND-OU/ND choices and Support consent 2026-07-31 02:27:25 +02:00
gr-a12-ground-nd.yaml T08 iter 4: GROUND-OU/ND choices and Support consent 2026-07-31 02:27:25 +02:00
gr-d01-darvo-trigger.yaml T08: give provisional defaults an owner, a date, and a visible age 2026-07-31 09:29:40 +02:00
gr-d03-darvo-deny.yaml T08 iter 5: the DARVO sequence machine 2026-07-31 02:30:58 +02:00
gr-d04-darvo-attack.yaml T08 iter 5: the DARVO sequence machine 2026-07-31 02:30:58 +02:00
gr-d05-darvo-reverse.yaml T08: give provisional defaults an owner, a date, and a visible age 2026-07-31 09:29:40 +02:00
gr-d06-darvo-early-end.yaml T08 iter 5: the DARVO sequence machine 2026-07-31 02:30:58 +02:00
gr-e01-threshold-reachable-2p.yaml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
gr-e02-shared-ground.yaml T08: give provisional defaults an owner, a date, and a visible age 2026-07-31 09:29:40 +02:00
gr-e03-common-problem.yaml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
gr-e04-coalitions.yaml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
gr-f02-no-gate.yaml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
gr-o01-six-player.yaml CB-WP-0008-T03: prove the 2-6 player range 2026-08-01 15:20:04 +02:00
gr-o01-two-player.yaml CB-WP-0008-T03: prove the 2-6 player range 2026-08-01 15:20:04 +02:00
gr-p05-solve-legality.yaml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
gr-r02-select.yaml T08 iter 3: GROUND modes, INVESTIGATE, SOLVE 2026-07-31 02:23:09 +02:00
gr-r03-stress-gate.yaml T08 iter 1: scenario runner executes; GROUND setup and Select step 2026-07-31 02:14:34 +02:00
gr-r06-round-resolve.yaml T08 iter 3: GROUND modes, INVESTIGATE, SOLVE 2026-07-31 02:23:09 +02:00
smoke-setup.yaml T08 iter 6: game end and the three scoring modes; AM-1 at 100% 2026-07-31 02:33:27 +02:00