objective() reads GroundState::score (now public) rather than restating
what winning is; a copy in the bot would disagree with the kernel the
first time ground-game rules on F28.
Working out WHERE the modes can differ was most of the task and it
bounds the result: SOLVE always claims for the actor, so own-score and
group-score want the same SOLVE nearly everywhere. That is a fact about
GROUND's action set, not a shortcoming of the bot. Two real divergences,
both readable off the table: SUPPORT regulates someone else (worth less
against a rival, worth MORE under coalitions where a Bond merges them
into my side), and SOLVE's value is the card's value, which greedy
ignores entirely.
THE RESULT — F27 splits in two:
group success UNCHANGED in 34 of 36 cells
who wins MOVES: BONDED COALITIONS at 4p goes 2.04 -> 2.98,
2.12 -> 3.29, 2.05 -> 3.01 winning seats per game
So "the competitive modes are scoring lenses over cooperative play" was
too strong and is withdrawn. The sharper claim: GROUND's scoring modes
change WHO WINS, not WHETHER THE GROUP SUCCEEDS. And the effect is
seat-band dependent -- 2p none, 4p largest, 6p none under coalitions;
two relation slots capping network growth is a candidate explanation and
is untested.
The panel now prints BOTH policies side by side. That was a correction
mid-task: the first version printed only the new one and I compared it
against a figure remembered from CB-WP-0047 -- a comparison against a
board nobody re-ran.
Control that makes the numbers mean anything: under SHARED GROUND the
two policies agree at all but <=2 decision points across 12 boards, so a
moving column is mode-awareness and not simply a different bot.
Also: two T01 tests keyed on `status: proposed`, which ground-game
renamed to `ready-for-implement` mid-session. They now find the module
by asking resolve() -- the structural property is ours and does not move
when another repo edits its vocabulary.
Also: `make vendor` replaces three hand re-vendors with a tool that
regenerates digests by walking editions/, and reports one-sided files
rather than resolving them.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
9.7 KiB
Vendored edition data — provenance
Not ours. This directory holds a copy of content owned by the
ground-game repository, vendored under ADR-0011 Decision 2 because the
build must not depend on a sibling checkout that CI does not have.
| upstream repo | ground-game |
| upstream repo path | editions/ground-darvo-r0/ |
| authoritative? | yes — ruled by ground-game, GROUND-WP-0002 T01 |
Files, and why each is here
| file | vendored | upstream revision | why |
|---|---|---|---|
Problems.csv |
2026-08-04 | 9fd27a51 |
the deal (ADR-0011) |
Actions.csv |
2026-08-06 | 4fa3b8ed |
the five action cards' own words (ADR-0015 D2) |
Solutions.csv |
2026-08-06 | 4fa3b8ed |
Solution titles and microcopy |
Modes.csv |
2026-08-06 | 4fa3b8ed |
mode text and scoring_tiebreak |
Tokens.csv |
2026-08-07 | 4fa3b8ed |
the components: front_text, quantity, sides (ADR-0016) |
DARVO.csv |
2026-08-08 | 8886543 |
the DARVO sequence as rules: mandatory_effect, target_memory, advance (CB-WP-0037 T02) |
Relations.csv |
2026-08-08 | 8886543 |
how Bonds and Rivalries form and break: formation, breaking, rules_text |
Scenarios.csv |
2026-08-08 | 8886543 |
the four scenarios and their setups — the engine deals one |
Player_Mats.csv |
2026-08-08 | 8886543 |
choice_rule is GR-R03, the stress gate — mechanism on a mat (CB-WP-0037 T03) |
Glossary.csv |
2026-08-08 | 8886543 |
the game's own words for its own terms, and Relation slot restates GR-L01's two |
Why these three, now. The engine already implements the DARVO
sequence and relation formation/breaking — from GroundRules.md, never
from the edition's own statement of them. That is not inert display data;
it is rules taken from a secondary source and never checked against the
primary one, and CB-WP-0037 T02 exists to check them.
Player_Mats.csv is the reason a file is not the unit. It is mostly
ornamentation — a symbol, a colour, a title per seat — and one column,
choice_rule, is GR-R03 itself: "At Stress 0-3 choose any action. At
Stress 4-5 choose ATTACK or GROUND unless you spend a ready Freedom
token." Classifying the file would have thrown the rule away with the
colour swatches (see Ornamentation.md §1.4).
Deliberately absent: BOM, Print_Manifest, Back_Designs,
Symbols, Design_Tokens — production artifacts for a physical print
run, meaningless to a simulator, and now declared as ornamentation with
falsifiers rather than merely skipped
(OrnamentRegister.md O5-O7). And Extensions.csv, which names content
the designer placed outside the core; importing it would break the claim
that this engine plays the edition as printed (ADR-0015 D2).
The catalog and the H1 experiment package
Vendored 2026-08-08 from ground-game 8886543 (CB-WP-0038). These are
outside this directory — editions/catalog.yaml and
editions/experiments/h1-problem-stress/ — because the catalog selects
between packages and does not belong inside one.
Digests were claimed for these by CB-WP-0038 T01 and not recorded; the adversarial review (CB-REV-0001) reported it unverified and it was a real gap.
sha256 536ad836991804e8d96eff20ae549654ecb82e28cdd884914730b70e3c387ee3 ../ASPECTS.md
sha256 5b5f1b73a6fa0f7a8d9ef2061670efc1c309d69774dea9e0deeb3fbce0a399b9 ../CATALOG.md
sha256 2adedb8c28570c33e126484c472d8b097067f50358f2ac523f1b3c976e66947a ../catalog.yaml
sha256 7b1cc0149122b855e827bc930576ed165bf7dd8d62707e845a9e514ce3521f8e ../experiments/h1-problem-stress/Actions.csv
sha256 62785f5e7e245c60171624d15de2f40187a44fec54f93c7d9705cf52584b1078 ../experiments/h1-problem-stress/Rules_Text.csv
sha256 49897a68056643a8cfccff32c9e4a9811018b4e4689b90a85124a487f2318369 ../experiments/h1-problem-stress/VARIANT.md
sha256 443199db94601cc889557e5e86823f374dbfdf875962fc84f95c01865605101c ../experiments/h1-problem-stress/metadata.json
sha256 f58e81f84ea2b0d16e39932261eb3f3d9890345cdf37ad6f0b3abc00636840be ../experiments/h1-problem-stress/rules_delta.yaml
sha256 4c81bae21d2ecb70c7424fa17445246a9b551b10e258d448634816c564e28f09 ../experiments/h2-scoped-problem-stress/Problems.csv
sha256 8ed8deb7ad142de1bda70dc11add339f742e8c12ac1f02d5f7c7ec8f17f77b1d ../experiments/h2-scoped-problem-stress/Rules_Text.csv
sha256 b0ffea41820ef35960d8c75ff0a734370a29a738e49fda74851fe5c2daafe53e ../experiments/h2-scoped-problem-stress/VARIANT.md
sha256 abf994f585fdfa9b2822614a7961e98141cded6a91c446916ff7fd48642de0a7 ../experiments/h2-scoped-problem-stress/metadata.json
sha256 8dc569b2ae62f88f7f64e282bc6bba3dbcc3ffcad276591baafbdd24cb6c16b7 ../experiments/h2-scoped-problem-stress/rules_delta.yaml
sha256 54678e312332ab999826710ae30565c0bba4da76b781ba4f391ace0c4341e484 ../modules/attack_relief/none/MODULE.md
sha256 0eec2ef761c5f6548085156248f182fa077ac5aee7c657bd6bfa6ba22d53446b ../modules/attack_relief/self_soothe_ge4/MODULE.md
sha256 91463363a482219109bb6d5033019135b5b10505f55f6272b912c7a51cd90173 ../modules/attack_relief/self_soothe_ge4/rules_delta.yaml
sha256 a02aa5ee860aca71d3e7c19975dd5eb1c66d7c8a0f3d3ceca8dd9914b85d6c7e ../modules/end_condition/fixed_rounds_5/MODULE.md
sha256 b1706aa3a10bace4fac5854eaa73848bba331cc9720da4b162e09db415631a50 ../modules/end_condition/hybrid_clear_collapse/MODULE.md
sha256 66eca80a673583499da2cfef01439ebf511401b5af9fad6a9ee790b0006e98b8 ../modules/end_condition/hybrid_clear_collapse/rules_delta.yaml
sha256 5b809680afdf9282a457f8d7f70b111bf18590f4867622e332f49e1ee4a23b08 ../modules/problem_deal/fixed_setup/MODULE.md
sha256 ca656820336e37b72fdd2409c15f54102c4f7daf9ab0a0b94fc1f30119b1c727 ../modules/problem_deal/pressure_deck/MODULE.md
sha256 1845ee0d3ec48ff6df31fca6f6acb1cad8b362c65ca7e7d93dfd61e0426fcdbd ../modules/problem_deal/pressure_deck/rules_delta.yaml
sha256 a5e66fd60abef1cf965b0b20892548c65f4005c45f4d44c025e4756eff579897 ../modules/problem_stress/flat_any_open/MODULE.md
sha256 95fa5d4ad811407eda1cf31d99d5dd984e9d1d9af8c284e10df598874d0f06e3 ../modules/problem_stress/flat_any_open/rules_delta.yaml
sha256 1e9cb6e2dac046a9f48beccb0ddc09c41608306711320159ecdce3572562e454 ../modules/problem_stress/none/MODULE.md
sha256 aae98322a70e51b639b8c39ac45604807f5311ae55edc75b47199056a483c963 ../modules/problem_stress/scoped/MODULE.md
sha256 4c81bae21d2ecb70c7424fa17445246a9b551b10e258d448634816c564e28f09 ../modules/problem_stress/scoped/Problems.csv
sha256 8ed8deb7ad142de1bda70dc11add339f742e8c12ac1f02d5f7c7ec8f17f77b1d ../modules/problem_stress/scoped/Rules_Text.csv
sha256 960e8a35f5f214ff9936ea95c4ca9a9145e2a01a8258b1c873251b89ee23972f ../modules/problem_stress/scoped/rules_delta.yaml
H2 vendored 2026-08-08 (CB-WP-0042). Its Problems.csv is r0's with
one column added — stress_scope — and nothing else changed: same
rows, same point_value, required_solution, visibility and
hidden_priority. That is checked, not assumed, because the delta's
unchanged: list claims deal_and_thresholds and a silent change there
would move every baseline hash.
rules_delta.yaml is the load-bearing one: it is the executable
statement of H1, and the kernel implements it. A silent change there is a
silent change to what we measured.
Digests
sha256 7a7a302aabecdeb419c562a029bec3e3576a306b0bd1175d1200de60d9530073 Actions.csv
sha256 0afb882dc8001f03bc48a152c9d8c36ad492ceeff2d30ef6a3a690937317f77b DARVO.csv
sha256 d06924a19f805feb9e2557fd5c06254ae2054e1f865265f45c26eb293f53bf12 Glossary.csv
sha256 565431571bc06adafb67edefd4b368839b6b94134c2289877384688cc643390b Modes.csv
sha256 ad2bfbf897bbb3878691cbdbfec739adc58d28cad3923a989dd46b426cce1395 Player_Mats.csv
sha256 0a04830c93b62dcb2f4411a9fbde576368a7427fe9e63c5015e606e4d42d23a0 Problems.csv
sha256 cd84c3b131c1b7a541e9e42529fdce2b7911f0832cce8c50cfcb8462d01dc551 Relations.csv
sha256 f830de9ca44417a7510e04a39ea24a070a81969b33a31fa68361fba132ad40cd Scenarios.csv
sha256 0bda1ee97de726b5e8c4404ab15ecc53a359e6c23db74fb41ecb51d78f9884ad Solutions.csv
sha256 25273bb6e74c9ad545c5e89dfe0f76b294d0a6cbef51f80d548039d5f0943484 Tokens.csv
make edition-check compares this against ../ground-game when that
repository is present, and reports upstream not checked out as a
distinct outcome when it is not — never a pass. An absent check is
reported absent, not treated as satisfied (the shape ADR-0009 used for
node).
What may not change under this revision
Per GROUND-WP-0002 T01's contract: point_value and
required_solution are authoritative and frozen within r0. The
engine hashes game state and both values are in that state, so a silent
change would rot every recorded scenario expectation. A change to either
is a new revision (-r1), and this digest is what notices.
The catalog & module mirror (CB-WP-0048)
editions/catalog.yaml, ASPECTS.md, CATALOG.md and modules/ mirror
ground-game so tools resolve paths without requiring a sibling checkout.
ground-game remains the authority for every design decision in them.
They are recorded above like any other sibling. The digest block is
generated by walking editions/, not typed: CB-REV-0002 #8 and
CB-REV-0003 #8 both found hand-written lists that made their own controls
vacuous, and a mirror that grows a directory is the case that breaks a
list a human maintains.
This note used to be editions/PROVENANCE-catalog.md — a file inside the
mirrored tree that upstream does not have, which edition-check correctly
refused as unexplained. Provenance about the mirror is ours, so it lives
with our other provenance rather than inside the thing it describes.
Research framing: research/CB-RES-0010-game-aspects-and-design-space.md.