--- id: GROUND-WP-0008 type: workplan title: "Composable rules modules catalog (schema 2)" domain: consumer repo: ground-game status: finished owner: bernd topic_slug: whynot created: "2026-08-08" updated: "2026-08-08" origin: residual origin_ref: GROUND-WP-0007 state_hub_workstream_id: "b365be0e-ef94-553e-98f2-f50b5dac754c" --- # Independent modules + combinable profiles (by **aspect**) **Finished 2026-08-08.** ground-game catalog schema 2, aspect map, modules, profiles, and ready-for-implement packages are **landed**. Simulator adoption and multi-aspect panels live on **clay-borg** (CB-WP-0048 / CB-RES-0010), not as open tasks here. **Design:** [`history/260808-modular-variants.md`](../history/260808-modular-variants.md) **Contract:** [`editions/CATALOG.md`](../editions/CATALOG.md) **Aspect map:** [`editions/ASPECTS.md`](../editions/ASPECTS.md) **Simulator digest:** clay-borg `research/CB-RES-0010-game-aspects-and-design-space.md` Terminology: **aspect** (not axis) for each design dimension. ## Delivered (this repo) | Artifact | Role | |----------|------| | `editions/catalog.yaml` schema 2 | aspects, modules, profiles, legacy map | | `editions/CATALOG.md` | selection + `consumed_files` rule | | `editions/ASPECTS.md` | full design-space inventory | | `editions/modules/**` | defaults + measured + ready-for-implement | | profiles `h1`, `h2`, `scoped_plus_*` | named compositions | | CB-RES-0010 (clay-borg) | research handoff for design environment | ### Modules by status (at finish) | module_id | status | |-----------|--------| | `problem_stress.none` / `flat_any_open` / `scoped` | baseline-default / measured-reject / measured-keep | | `attack_relief.none` / `self_soothe_ge4` | baseline-default / measured-as-combo | | `end_condition.fixed_rounds_5` / `hybrid_clear_collapse` | baseline-default / **ready-for-implement** | | `problem_deal.fixed_setup` / `pressure_deck` | baseline-default / **ready-for-implement** | ## Task: land schema 2 catalog and module tree ```task id: GROUND-WP-0008-T01 status: done priority: high state_hub_task_id: "9b5e2c3f-5c38-561d-8620-93b1cce53cb4" ``` **Done 2026-08-08.** ## Task: notify clay-borg of selection API change ```task id: GROUND-WP-0008-T02 status: done priority: high state_hub_task_id: "36db32d7-1999-5589-a755-38b6ce7fd6e5" ``` **Done 2026-08-08.** Aspect terminology + CB-RES-0010 + closeout message with ready-for-implement modules. ## Task: first multi-aspect measurement (optional) ```task id: GROUND-WP-0008-T03 status: cancel priority: medium state_hub_task_id: "24263940-838e-5676-94a7-192306ab5548" ``` **Cancelled 2026-08-08 as ground-game task.** Optional by design; blocked on simulator selection/panels. Handed off as **residual** to clay-borg CB-WP-0048 (and follow-on panel work): resolve `scoped_plus_attack_soothe` vs `h2` vs `h1`; later hybrid end / pressure deck alone then with scoped. Not reopened here when those panels land — file a report extending the relevant module, not this workplan. ## Task: package next proposed modules (ready-for-implement) ```task id: GROUND-WP-0008-T04 status: done priority: medium state_hub_task_id: "bc5dec7f-ec3d-5855-9a16-da42176988e9" ``` **Done 2026-08-08.** v0 frozen: - `end_condition.hybrid_clear_collapse` - `problem_deal.pressure_deck` Kernel implementation remains clay-borg. ## Residuals (live work elsewhere — not open tasks here) | Residual | Home | |----------|------| | Configuration selector (schema 2 parse, persist module list) | clay-borg **CB-WP-0048** | | Kernel for hybrid end + pressure deck | clay-borg (after CB-WP-0048) | | Multi-aspect / profile panels | clay-borg evidence / reports → ground-game `reports/` | | Bond joint-SOLVE table or scope-aware policy | optional human / clay-borg policy work | | `consumed_files` on every module | opportunistic catalog hygiene | | Accept `ready-for-implement` (not only `proposed`) in gates | clay-borg catalog reader | ## Close note This workplan’s job was to **define the design-space contract and ship packages** in ground-game. That is complete. Measuring configurations is the simulator’s job once CB-WP-0048 finishes the selector.