clay-borg/editions/ground-darvo-r0/PROVENANCE.md
tegwick bff64053ca ADR-0022 + CB-WP-0048 T00: the selector decision, and the mirror held
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>
2026-08-08 22:07:57 +02:00

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 directoryeditions/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 addedstress_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.