--- id: CB-WP-0044 kind: product title: "The page says which rules it plays" status: done state_hub_workstream_id: "554a67b4-58f8-462a-b22d-52f81d6f9611" --- # Purpose ``` structural tier M (adds a field to the projection, a canonical interface, and a driver knob) declared tier M ``` ## The report > *"I did a session and noted no changes."* **Correct, and the fault was ours twice over.** `make ground` passes no `--variant`, so the session was **baseline** — and CB-WP-0043 deliberately leaves the baseline layout untouched, because a variant that redraws the baseline invalidates every prior look at it. **But the deeper defect is that nothing said so.** The page named the round, the step, the Lead, the scoring mode and the viewer — **and never which rules it was playing.** `GroundView` did not even carry the variant. There was no way, from the screen, to tell baseline from H1 from H2. > **A session that cannot say which rules it is playing cannot report a > rules change.** The player did the right thing and the instrument had > nothing to tell them. ## Task: say it, and make it reachable ```task id: CB-WP-0044-T01 status: done priority: high state_hub_task_id: "2e268c45-b605-4503-b1e6-2509f421512e" ``` **Controls:** - **the page names the variant**, beside the scoring mode where a player already looks for what game this is; - **the inspector names it too** — a replay that cannot say which rules produced it is the same defect in the other tool; - **`make ground` can select it**, or the capability exists and nobody can reach it; - **verified end to end against a served page**, not by reading the code. **Done 2026-08-08.** `variant` on `GroundView`, `rules ` in the header, `rules ` in the inspector, and `make ground VARIANT=h2`. **Both coverage probes caught the new field independently** — the render crate's and `cb-play`'s — which is the second time in two passes that the probes have turned an addition into a legibility requirement rather than letting it be silent state. **Verified by fetching the served page**: `make ground VARIANT=h2` prints `rules: h2`, and the page carries `rules h2-scoped-problem-stress` plus the scope labels. The baseline page says `rules ground-darvo-r0` and keeps its row, which is the behaviour CB-WP-0043 intended and could not previously be told apart from a bug. ## What this does not fix - **Nothing on the page explains what a scope does.** It says *whose* a Problem is; it does not say that an unclaimed personal card ticks only its owner at Round End. H2's `Rules_Text.csv` is vendored and unread. - **The variant is not in the trial log's header**, so a note written during an H2 session does not record which rules it was about. That is the same class of defect as this one, one artifact along.