The maintainer's observation decided the design: aspects partition the GAME, strata partition our apparatus, and they are orthogonal. A module is one coordinate change in aspect space with an obligation in every stratum. So aspect identity must NOT be Rust types -- an aspect ground-game adds would make clay-borg fail to parse a configuration rather than fail to run it, welding the two coordinate systems at the one place they must stay independent. Chosen: identity as data (Configuration round-trips anything the catalog names), behaviour exhaustive (Rules, no catch-all), resolve() between. Decisive argument: the catalog ALREADY ships modules with a rules_delta and status: proposed, so a per-aspect enum would report them as "unknown module" -- indistinguishable from a typo, a false statement about the edition, and this project's signature failure shape. Two facts need two errors. Federating design authority is permanent, so the representation must outlive the implementation. Legacy ids alias forever through the catalog's own legacy_experiment_id, on the standard-Np precedent: 26 recordings name them and the expansion is exact, so there is nothing to deprecate. T00 done: the schema-2 mirror had arrived with no digests (19 files) and edition-check was red. Digests are now generated by WALKING editions/, not typed -- two reviews already found hand-written lists that made their own controls vacuous, and a mirror that grows a directory is what breaks a maintained list. PROVENANCE-catalog.md was a file inside the mirrored tree that upstream does not have; folded into our own PROVENANCE.md, since provenance about the mirror does not belong inside the thing it describes. 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 84d43ac110615a678276c318a64a26d9996a9f3f2edbb1b72c38c3e12cf68149 ../ASPECTS.md
sha256 684abb9856e81d456eb214efc7bcfc643e06200451daae1653c528a8b93f5c66 ../CATALOG.md
sha256 297c36c67f19a3ccdab152c928f94ff39c861c7ce836c9dfc10a773a7fe51ee2 ../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 6d7d1f5b1d629b61dc35299606393cdac969379bb6207b5c1e741ddbbf50c06e ../modules/end_condition/hybrid_clear_collapse/MODULE.md
sha256 8dda4def373cd4aaaefdf764c915ad54ae7a1b4d885ee2cd623e81f752fdb907 ../modules/end_condition/hybrid_clear_collapse/rules_delta.yaml
sha256 5b809680afdf9282a457f8d7f70b111bf18590f4867622e332f49e1ee4a23b08 ../modules/problem_deal/fixed_setup/MODULE.md
sha256 d8ddf74127aa6adf32be6a9e30dac4e6b9ff14da1a9e0bb74d2faf22794e8a57 ../modules/problem_deal/pressure_deck/MODULE.md
sha256 c05addd208e9d2c287a8da8a2112e24a6b30aa163b19fe763362eae59598ce30 ../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.