Compare commits
3 commits
4b7bdaca16
...
cdc42afbb6
| Author | SHA1 | Date | |
|---|---|---|---|
| cdc42afbb6 | |||
| 82fdb85173 | |||
| d07caca22b |
6 changed files with 140 additions and 16 deletions
|
|
@ -17,6 +17,7 @@
|
|||
| workplan | CB-WP-0007 | in_progress | — | workplans/CB-WP-0007-session-shape.md |
|
||||
| workplan | CB-WP-0008 | done | — | workplans/CB-WP-0008-ship-stage-0.md |
|
||||
| workplan | CB-WP-0009 | done | — | workplans/CB-WP-0009-adaptive-gates.md |
|
||||
| workplan | CB-WP-0010 | proposed | — | workplans/CB-WP-0010-consolidation.md |
|
||||
| task | CB-WP-0001-T01 | done | — | workplans/CB-WP-0001-inner-loop.md |
|
||||
| task | CB-WP-0001-T02 | done | — | workplans/CB-WP-0001-inner-loop.md |
|
||||
| task | CB-WP-0001-T03 | done | — | workplans/CB-WP-0001-inner-loop.md |
|
||||
|
|
@ -81,3 +82,6 @@
|
|||
| task | CB-WP-0009-T02 | done | — | workplans/CB-WP-0009-adaptive-gates.md |
|
||||
| task | CB-WP-0009-T03 | done | — | workplans/CB-WP-0009-adaptive-gates.md |
|
||||
| task | CB-WP-0009-T04 | done | — | workplans/CB-WP-0009-adaptive-gates.md |
|
||||
| task | CB-WP-0010-T01 | todo | — | workplans/CB-WP-0010-consolidation.md |
|
||||
| task | CB-WP-0010-T02 | todo | — | workplans/CB-WP-0010-consolidation.md |
|
||||
| task | CB-WP-0010-T03 | todo | — | workplans/CB-WP-0010-consolidation.md |
|
||||
|
|
|
|||
|
|
@ -29,6 +29,22 @@ use std::collections::BTreeMap;
|
|||
/// **Delete it if no second game uses it by 2026-12-31.** A primitive
|
||||
/// with one hypothetical user and a test that exercises only itself is
|
||||
/// the AM-11 shape, and this project has paid for that shape twice.
|
||||
///
|
||||
/// **Second-use log** (CB-WP-0010 T03). Two passes have now had the
|
||||
/// opportunity and declined:
|
||||
///
|
||||
/// * **CB-WP-0008** — bots and `cb-play` drive GROUND's inline
|
||||
/// commit/reveal. A second *consumer* of the aggregate did not become
|
||||
/// a consumer of this type (CB-EV-0007 §2).
|
||||
/// * **CB-WP-0010** — the consolidation pass reviewed it and changed
|
||||
/// nothing.
|
||||
///
|
||||
/// **The date is not moved and the type is not deleted early.** The
|
||||
/// stated condition is a second *game*, and no second game has been
|
||||
/// attempted, so the test has not run — only the opportunity has passed.
|
||||
/// Deleting on a test that was never run, or extending the date because
|
||||
/// it is inconvenient, are the same error in opposite directions, and
|
||||
/// InnerLoop §Step 4 forbids the second by name.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct CommitWindow<C> {
|
||||
/// Players who must submit, and their commitment once received.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
# `make facts-check` fails if this file disagrees with the
|
||||
# instruments, or if a tagged artifact disagrees with this file.
|
||||
|
||||
generated = "2026-08-01"
|
||||
generated = "2026-08-02"
|
||||
pin = "fc76445"
|
||||
|
||||
[am4a_loc]
|
||||
|
|
@ -64,8 +64,8 @@ fmt = "{:,}"
|
|||
by = "tools/rule-coverage.py"
|
||||
|
||||
[gr_scenarios]
|
||||
value = 24
|
||||
text = "24"
|
||||
value = 25
|
||||
text = "25"
|
||||
fmt = "{:,}"
|
||||
by = "tools/rule-coverage.py"
|
||||
|
||||
|
|
|
|||
81
scenarios/ground/gr-e03-common-problem.yaml
Normal file
81
scenarios/ground/gr-e03-common-problem.yaml
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
scenario: ground/gr-e03-common-problem
|
||||
description: >
|
||||
COMMON PROBLEM scoring (GR-E03), the only scoring mode with no scenario
|
||||
until CB-WP-0010 T02 — implemented since CB-WP-0001 and referenced by
|
||||
nothing. Five players, where the threshold is actually reachable (10
|
||||
available against 9). The group qualifies, personal scores are claimed
|
||||
value −1 per Blame held, and the Blame is what decides the winner: P4
|
||||
claimed the highest-value Problem and still loses to P3 because two
|
||||
Blame tokens sit in front of them.
|
||||
covers: [GR-E03, GR-E01, GR-R09, GR-T02]
|
||||
seed: 42
|
||||
setup:
|
||||
players: 5
|
||||
preset: standard-5p
|
||||
patch:
|
||||
"round": 5
|
||||
"mode": CommonProblem
|
||||
# Every Problem claimed: 1+2+3+4 = 10, over the 5-6p threshold of 9.
|
||||
"problems.1.claimed_by": 0
|
||||
"problems.2.claimed_by": 1
|
||||
"problems.3.claimed_by": 2
|
||||
"problems.4.claimed_by": 3
|
||||
"problems.2.face_up": true
|
||||
"problems.3.face_up": true
|
||||
"problems.4.face_up": true
|
||||
# GR-T02: two Blame tokens in front of P4, −1 each.
|
||||
"players.3.blame_from": [0, 1]
|
||||
commands:
|
||||
- actor: P1
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: P2
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: P3
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: P4
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: P5
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: SYSTEM
|
||||
cmd: reveal
|
||||
- actor: P1
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: P2
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: P3
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: P4
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: P5
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: SYSTEM
|
||||
cmd: resolve
|
||||
- actor: SYSTEM
|
||||
cmd: end_round
|
||||
expect:
|
||||
events:
|
||||
- kind: GameEnded
|
||||
state:
|
||||
"outcome.total": 10
|
||||
"outcome.threshold": 9
|
||||
"outcome.group_success": true
|
||||
# GR-E03: claimed value −1 per Blame held.
|
||||
"outcome.personal.3": 2
|
||||
"outcome.personal.2": 3
|
||||
# P4 claimed 4 and still loses: the Blame is load-bearing here.
|
||||
"outcome.winners": [2]
|
||||
# GR-E03 has no Mastery rating; that is GR-E02's.
|
||||
"outcome.mastery": null
|
||||
"round": 5
|
||||
"step": End
|
||||
rejects: []
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
id: CB-WP-0007
|
||||
kind: meta
|
||||
title: "Make session shape measurable in the window that matters, then enforce it"
|
||||
status: in_progress
|
||||
status: done
|
||||
state_hub_workstream_id: "bee19b76-fb60-4dcf-94d0-9242b43e0e42"
|
||||
---
|
||||
|
||||
|
|
@ -175,11 +175,18 @@ the pass and report the rate the instrument measures.
|
|||
|
||||
## Phase C — measure, and say what it cost
|
||||
|
||||
## Task: control loop — did windowing change what fires?
|
||||
## Task: control loop — did windowing change what fires? (CANCELLED)
|
||||
|
||||
> **Cancelled 2026-08-02 (CB-WP-0010 T01), overtaken.** Both questions
|
||||
> were answered with measurements two passes later:
|
||||
> [CB-EV-0008](../evidence/CB-EV-0008-adaptive-gates.md) §1 compares the
|
||||
> windowed metric against cumulative on real passes, and §4 records the
|
||||
> shape budget firing. Writing CB-EV-0006 now would re-derive them from
|
||||
> the same transcripts.
|
||||
|
||||
```task
|
||||
id: CB-WP-0007-T05
|
||||
status: todo
|
||||
status: cancel
|
||||
priority: high
|
||||
state_hub_task_id: "2f78b272-e1f9-4530-bc8c-3a9d82833546"
|
||||
```
|
||||
|
|
@ -201,11 +208,18 @@ Four tests, all reported:
|
|||
the loop cannot detect this. Record the judgment explicitly rather than
|
||||
letting the cost number imply it.
|
||||
|
||||
## Task: retrospective
|
||||
## Task: retrospective (CANCELLED)
|
||||
|
||||
> **Cancelled 2026-08-02 (CB-WP-0010 T01), answered elsewhere.** The
|
||||
> question was whether there is a *fourth* way a number can fail to bind.
|
||||
> There is, and it is on record: CB-EV-0007 §3 found a number **aggregated
|
||||
> over a window that cannot move it** — the meta budget, reintroducing the
|
||||
> defect two tasks after the same one was fixed for session shape. The
|
||||
> tier-taxonomy gap this task also carried was closed by ADR-0006 D5.
|
||||
|
||||
```task
|
||||
id: CB-WP-0007-T06
|
||||
status: todo
|
||||
status: cancel
|
||||
priority: medium
|
||||
state_hub_task_id: "93fbd2bb-403b-4be9-a5ff-d6142b916aba"
|
||||
```
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
id: CB-WP-0010
|
||||
kind: product
|
||||
title: "Close the open ends before stage 1"
|
||||
status: proposed
|
||||
state_hub_workstream_id: ""
|
||||
status: done
|
||||
state_hub_workstream_id: "071a2da8-cb95-4dda-a711-7173434bdc3c"
|
||||
---
|
||||
|
||||
# Purpose
|
||||
|
|
@ -23,9 +23,9 @@ three against a soft 25%, and this pass is how it comes back down.
|
|||
|
||||
```task
|
||||
id: CB-WP-0010-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: ""
|
||||
state_hub_task_id: "88bafc24-eeac-4aa0-9c40-f15307dee120"
|
||||
```
|
||||
|
||||
CB-WP-0007 sits at 2/6 with T05 and T06 `todo`. Both were overtaken:
|
||||
|
|
@ -46,9 +46,9 @@ is what it has been doing for two passes.
|
|||
|
||||
```task
|
||||
id: CB-WP-0010-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: ""
|
||||
state_hub_task_id: "89355b0a-9fc7-4d69-a27e-d3c94ff0730f"
|
||||
```
|
||||
|
||||
CB-EV-0007 §1: **COMMON PROBLEM (GR-E03) is implemented, referenced by no
|
||||
|
|
@ -63,13 +63,19 @@ 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: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: ""
|
||||
state_hub_task_id: "1da2c1de-e098-440e-8cff-7c30817d1d2b"
|
||||
```
|
||||
|
||||
`CommitWindow` is PROVISIONAL with a delete-by of 2026-12-31, on the
|
||||
|
|
@ -82,3 +88,6 @@ 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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue