# GROUND edition catalog — schema 2: composable modules # Docs: CATALOG.md # 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 # packages declare files consumers must read (consumed_files / data_overlays) updated: "2026-08-08" default_baseline: ground-darvo-r0 default_profile: baseline # --------------------------------------------------------------------------- # Aspects — orthogonal design dimensions (formerly "axes"). At most one non-default module per aspect. # --------------------------------------------------------------------------- aspects: - id: problem_stress # legacy key: axis (same meaning) title: Problem → Stress routing default_module: problem_stress.none summary: > Whether and how unclaimed Problems raise Stress at Round End. - id: attack_relief title: ATTACK self-soothing default_module: attack_relief.none summary: > Whether resolving ATTACK can reduce the attacker's Stress. - id: end_condition title: How the game ends default_module: end_condition.fixed_rounds_5 summary: > Fixed round clock vs clear-board / collapse / hybrid ends. - id: problem_deal title: How Problems enter play default_module: problem_deal.fixed_setup summary: > Fixed setup deal only vs mid-game influx (pressure deck, etc.). # Future aspects (not yet registered): setup_difficulty, sequence_pacing, # ground_as_sequence, status_stress, competence_track. # --------------------------------------------------------------------------- # Baseline content package (CSV edition data) # --------------------------------------------------------------------------- baselines: - baseline_id: ground-darvo-r0 path: editions/ground-darvo-r0 selectable: true status: baseline dataset_id: GROUND-DARVO-CORE-0.1 title: "GROUND DARVO Edition — core r0" summary: > Print/playtest content. Modes, deal 6/9/12, thresholds 5/7/9. 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. decision: none # --------------------------------------------------------------------------- # Modules — independent variations (one directory each) # --------------------------------------------------------------------------- modules: # --- problem_stress --- - module_id: problem_stress.none aspect: problem_stress path: editions/modules/problem_stress/none is_default: true selectable: true status: baseline-default rules_delta: null summary: Unclaimed Problems do not raise Stress (r0). decision: none - module_id: problem_stress.flat_any_open aspect: problem_stress path: editions/modules/problem_stress/flat_any_open is_default: false selectable: true status: measured rules_delta: editions/modules/problem_stress/flat_any_open/rules_delta.yaml legacy_experiment_ids: [h1-problem-stress] measurement_ref: reports/260808-clay-borg-h1-measured.md summary: > +1 Stress to every seat if any Problem unclaimed (former H1-A). utility_estimate: > Reject as sole pressure: greedy 3–4p wins → 0. Keep for A/B control. decision: reject-as-baseline clay_borg_notes: Former H1-A; implement without H1-B unless attack_relief also selected. - module_id: problem_stress.scoped aspect: problem_stress path: editions/modules/problem_stress/scoped is_default: false selectable: true status: measured rules_delta: editions/modules/problem_stress/scoped/rules_delta.yaml data_overlays: [Problems.csv, Rules_Text.csv] # files a consumer must open to implement this module (RPT-0006 §5b) consumed_files: - editions/modules/problem_stress/scoped/rules_delta.yaml - editions/modules/problem_stress/scoped/Problems.csv - editions/modules/problem_stress/scoped/Rules_Text.csv - editions/modules/problem_stress/scoped/MODULE.md legacy_experiment_ids: [h2-scoped-problem-stress] measurement_ref: reports/260808-clay-borg-h2-measured.md hypothesis_ref: history/260808-h2-scoped-problem-stress.md summary: > +1 Stress per unclaimed Problem to stress_scope (personal/bond/global). utility_estimate: > Scoping works (RPT-0005). Keep; candidate promote with other axes later. decision: keep-as-experiment clay_borg_notes: > Prefer path editions/modules/problem_stress/scoped. Use with_variant()/owners. legacy_experiment_id h2-scoped-problem-stress remains an alias profile. # --- attack_relief --- - module_id: attack_relief.none aspect: attack_relief path: editions/modules/attack_relief/none is_default: true selectable: true status: baseline-default rules_delta: null summary: ATTACK does not self-soothe (r0). decision: none - module_id: attack_relief.self_soothe_ge4 aspect: attack_relief path: editions/modules/attack_relief/self_soothe_ge4 is_default: false selectable: true status: measured-as-combo rules_delta: editions/modules/attack_relief/self_soothe_ge4/rules_delta.yaml legacy_experiment_ids: [h1-problem-stress] measurement_ref: reports/260808-clay-borg-h1-measured.md summary: Uncancelled ATTACK at Stress ≥4 → attacker −1 Stress (former H1-B). utility_estimate: > Alone unmeasured. With flat problem stress, dead for competent play. Re-measure with problem_stress.scoped via profile scoped_plus_attack_soothe. decision: none clay_borg_notes: Independent of problem_stress; compose explicitly. # --- end_condition --- - module_id: end_condition.fixed_rounds_5 aspect: end_condition path: editions/modules/end_condition/fixed_rounds_5 is_default: true selectable: true status: baseline-default rules_delta: null summary: Always 5 rounds then threshold scoring (r0). decision: none - module_id: end_condition.hybrid_clear_collapse aspect: end_condition path: editions/modules/end_condition/hybrid_clear_collapse is_default: false selectable: true status: ready-for-implement rules_delta: editions/modules/end_condition/hybrid_clear_collapse/rules_delta.yaml hypothesis_ref: history/260808-deal-end-sequences-design.md summary: > End on board clear, group collapse, or round-5 ceiling (v0 frozen). utility_estimate: Unimplemented in kernel — package ready for clay-borg. decision: none clay_borg_notes: > v0 frozen in MODULE.md. Implement alone then profile scoped_plus_hybrid_end. allow_proposed/ready-for-implement: refuse measure-as-green until kernel ships. # --- problem_deal --- - module_id: problem_deal.fixed_setup aspect: problem_deal path: editions/modules/problem_deal/fixed_setup is_default: true selectable: true status: baseline-default rules_delta: null summary: Surface + hidden 1..k at setup only (r0). decision: none - module_id: problem_deal.pressure_deck aspect: problem_deal path: editions/modules/problem_deal/pressure_deck is_default: false selectable: true status: ready-for-implement rules_delta: editions/modules/problem_deal/pressure_deck/rules_delta.yaml hypothesis_ref: history/260808-deal-end-sequences-design.md summary: > Reduced starters + Pressure deck draws; drawn cards 0 points (v0 frozen). utility_estimate: Unimplemented in kernel — package ready for clay-borg. decision: none clay_borg_notes: > v0 frozen in MODULE.md. Drawn point_value 0; thresholds unchanged. Compose with problem_stress.scoped via profile scoped_plus_pressure_deck. # --------------------------------------------------------------------------- # Profiles — named compositions (convenience; not a second rules source) # Selection = baseline + modules list. Defaults fill missing axes. # --------------------------------------------------------------------------- profiles: - profile_id: baseline title: Pure r0 modules: [] summary: All aspect defaults — printed ground-darvo-r0 behaviour. - profile_id: h1 title: Legacy H1 (flat problem stress + attack soothe) modules: - problem_stress.flat_any_open - attack_relief.self_soothe_ge4 legacy_experiment_id: h1-problem-stress summary: Equivalent to old monolithic experiment h1-problem-stress. decision: reject-as-baseline - profile_id: h2 title: Legacy H2 (scoped problem stress only) modules: - problem_stress.scoped legacy_experiment_id: h2-scoped-problem-stress summary: Equivalent to old monolithic experiment h2-scoped-problem-stress. decision: keep-as-experiment - profile_id: scoped_plus_attack_soothe title: Scoped stress + ATTACK self-soothe modules: - problem_stress.scoped - attack_relief.self_soothe_ge4 summary: First intentional multi-aspect combo after modular catalog. status: unmeasured - profile_id: scoped_plus_hybrid_end title: Scoped stress + hybrid end (when end module ships) modules: - problem_stress.scoped - end_condition.hybrid_clear_collapse summary: Requires end_condition.hybrid_clear_collapse kernel support. status: proposed - profile_id: scoped_plus_pressure_deck title: Scoped stress + pressure deck (when deal module ships) modules: - problem_stress.scoped - problem_deal.pressure_deck summary: Requires problem_deal.pressure_deck kernel support. status: proposed # --------------------------------------------------------------------------- # Legacy experiment paths (still on disk; prefer modules + profiles) # --------------------------------------------------------------------------- legacy_experiments: - experiment_id: h1-problem-stress path: editions/experiments/h1-problem-stress equivalent_profile: h1 note: Prefer profile h1 or modules problem_stress.flat_any_open + attack_relief.self_soothe_ge4 - experiment_id: h2-scoped-problem-stress path: editions/experiments/h2-scoped-problem-stress equivalent_profile: h2 note: Prefer profile h2 or module problem_stress.scoped