--- id: CB-WP-0010 kind: product title: "Close the open ends before stage 1" status: done state_hub_workstream_id: "071a2da8-cb95-4dda-a711-7173434bdc3c" --- # Purpose Tier **S** (structural S — fixes and one scenario, no capability port, no canonical interface, no dependency; chaos d4=1, no override; declaration 5 of 12). One provenance paragraph per commit, no survey, no ADR. Four items were carried out of CB-WP-0008 and CB-WP-0009 as open. Three are cheap and closing them costs less than carrying them into a tier-L stage-1 pass, where they would compete for attention with new work. [CB-EV-0008](../evidence/CB-EV-0008-adaptive-gates.md) §4 also says the next pass should be `product` — the meta budget reads 45% of the trailing three against a soft 25%, and this pass is how it comes back down. ## Task: close CB-WP-0007 ```task id: CB-WP-0010-T01 status: done priority: high state_hub_task_id: "88bafc24-eeac-4aa0-9c40-f15307dee120" ``` CB-WP-0007 sits at 2/6 with T05 and T06 `todo`. Both were overtaken: - **T05** (control loop for the session-shape pass) was answered by CB-EV-0008 §1 and §4, which measured the windowed metric and the budget firing on real passes. - **T06** asked whether there is a *fourth* way a number can fail to bind. There is, and it is on record: CB-EV-0007 §3 found one **aggregated over a window that cannot move it** — reintroduced two tasks after the same defect was fixed for session shape. Cancel both with pointers and mark the workplan `done`. A workplan left `in_progress` forever makes `make status` name a stale next task, which is what it has been doing for two passes. ## Task: GR-E03 gets a scenario ```task id: CB-WP-0010-T02 status: done priority: high state_hub_task_id: "89355b0a-9fc7-4d69-a27e-d3c94ff0730f" ``` CB-EV-0007 §1: **COMMON PROBLEM (GR-E03) is implemented, referenced by no test, and would not fail if deleted.** GR-E02 and GR-E04 both have scenarios; this is the only scoring mode with none. Deliver `scenarios/ground/gr-e03-common-problem.yaml`: the group meets the threshold, personal scores are claimed value −1 per Blame held, and the highest personal score wins. Use the 5-player preset, where the threshold is actually reachable (10 available against 9). **Finding a defect here is the likely outcome and is the point** — this is the first execution of that code path. **Done 2026-08-02.** `gr-e03-common-problem.yaml` passes, and **no defect was found** — GR-E03 scored correctly on its first execution. The assertions were mutation-checked three ways rather than trusted: a wrong personal score, a wrong `mastery`, and removing the Blame from the fixture each turn it red. Every scoring mode now has a scenario. ## Task: record CommitWindow's second failed use ```task id: CB-WP-0010-T03 status: done priority: medium state_hub_task_id: "1da2c1de-e098-440e-8cff-7c30817d1d2b" ``` `CommitWindow` is PROVISIONAL with a delete-by of 2026-12-31, on the condition *"delete it if no second game uses it"*. CB-WP-0008 was its best chance at a second consumer and did not take it — the bots and the CLI drive GROUND's inline implementation. **Do not delete it early.** The stated condition is a second *game*, and no second game has been attempted, so the test has not run. Record the evidence at the type so the December decision is already argued, and leave the date alone. Moving a delete-by date on the strength of a test that was never run is exactly the retarget InnerLoop §Step 4 forbids. **Done 2026-08-02.** A second-use log at the type records both declined opportunities (CB-WP-0008, CB-WP-0010). Date unchanged, type unchanged.