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>
This commit is contained in:
tegwick 2026-08-08 22:07:57 +02:00
parent b39bc14861
commit bff64053ca
29 changed files with 1997 additions and 22 deletions

View file

@ -1,17 +1,19 @@
# GROUND edition catalog — schema 2: composable modules
# Docs: CATALOG.md
# clay-borg: select baseline + 0..N modules (≤1 per axis), or a named profile.
# clay-borg: select baseline + 0..N modules (≤1 per aspect), or a named profile.
schema_version: 2
# terminology: aspect (human) = former axis; modules remain module_id
updated: "2026-08-08"
default_baseline: ground-darvo-r0
default_profile: baseline
# ---------------------------------------------------------------------------
# Axes — orthogonal dimensions. At most one non-default module per axis.
# Aspects — orthogonal design dimensions (formerly "axes"). At most one non-default module per aspect.
# ---------------------------------------------------------------------------
axes:
aspects:
- id: problem_stress
# legacy key: axis (same meaning)
title: Problem → Stress routing
default_module: problem_stress.none
summary: >
@ -35,7 +37,7 @@ axes:
summary: >
Fixed setup deal only vs mid-game influx (pressure deck, etc.).
# Future axes (not yet registered): setup_difficulty, sequence_pacing,
# Future aspects (not yet registered): setup_difficulty, sequence_pacing,
# ground_as_sequence, status_stress, competence_track.
# ---------------------------------------------------------------------------
@ -50,7 +52,7 @@ baselines:
title: "GROUND DARVO Edition — core r0"
summary: >
Print/playtest content. Modes, deal 6/9/12, thresholds 5/7/9.
Default modules on all axes = r0 printed behaviour.
Default modules on all aspects = r0 printed behaviour.
utility_estimate: >
Ship-default content. Stress has no problem pressure until a
problem_stress module is selected.
@ -62,7 +64,7 @@ baselines:
modules:
# --- problem_stress ---
- module_id: problem_stress.none
axis: problem_stress
aspect: problem_stress
path: editions/modules/problem_stress/none
is_default: true
selectable: true
@ -72,7 +74,7 @@ modules:
decision: none
- module_id: problem_stress.flat_any_open
axis: problem_stress
aspect: problem_stress
path: editions/modules/problem_stress/flat_any_open
is_default: false
selectable: true
@ -88,7 +90,7 @@ modules:
clay_borg_notes: Former H1-A; implement without H1-B unless attack_relief also selected.
- module_id: problem_stress.scoped
axis: problem_stress
aspect: problem_stress
path: editions/modules/problem_stress/scoped
is_default: false
selectable: true
@ -109,7 +111,7 @@ modules:
# --- attack_relief ---
- module_id: attack_relief.none
axis: attack_relief
aspect: attack_relief
path: editions/modules/attack_relief/none
is_default: true
selectable: true
@ -119,7 +121,7 @@ modules:
decision: none
- module_id: attack_relief.self_soothe_ge4
axis: attack_relief
aspect: attack_relief
path: editions/modules/attack_relief/self_soothe_ge4
is_default: false
selectable: true
@ -136,7 +138,7 @@ modules:
# --- end_condition ---
- module_id: end_condition.fixed_rounds_5
axis: end_condition
aspect: end_condition
path: editions/modules/end_condition/fixed_rounds_5
is_default: true
selectable: true
@ -146,7 +148,7 @@ modules:
decision: none
- module_id: end_condition.hybrid_clear_collapse
axis: end_condition
aspect: end_condition
path: editions/modules/end_condition/hybrid_clear_collapse
is_default: false
selectable: true
@ -161,7 +163,7 @@ modules:
# --- problem_deal ---
- module_id: problem_deal.fixed_setup
axis: problem_deal
aspect: problem_deal
path: editions/modules/problem_deal/fixed_setup
is_default: true
selectable: true
@ -171,7 +173,7 @@ modules:
decision: none
- module_id: problem_deal.pressure_deck
axis: problem_deal
aspect: problem_deal
path: editions/modules/problem_deal/pressure_deck
is_default: false
selectable: true
@ -194,7 +196,7 @@ profiles:
- profile_id: baseline
title: Pure r0
modules: []
summary: All axis defaults — printed ground-darvo-r0 behaviour.
summary: All aspect defaults — printed ground-darvo-r0 behaviour.
- profile_id: h1
title: Legacy H1 (flat problem stress + attack soothe)
@ -218,7 +220,7 @@ profiles:
modules:
- problem_stress.scoped
- attack_relief.self_soothe_ge4
summary: First intentional multi-axis combo after modular catalog.
summary: First intentional multi-aspect combo after modular catalog.
status: unmeasured
- profile_id: scoped_plus_hybrid_end