clay-borg/workplans
tegwick edab11c0e4
Some checks failed
ci / check (push) Failing after 3s
CB-WP-0033: a game is the unit
make trials reported "positions unreachable: 4, target 0 — the recording
exists but the position moved". All four were false. A recording holds one
hash, the final state, and reachability asked whether the note's hash was
in that file — so a mid-game note could never match, and a post-game note
from any but the last game could not either. Instance 8 of the ADR-0018
family: vary only WHEN a note was written and the answer flips, with
nothing having moved.

The root cause was not the metric. play again reused state belonging to a
game: it overwrote the previous game's recording (data loss), never
cleared the journal (game 2's log opened with game 1's commands), and so a
note's command index pointed into a recording without those commands.
Fixing reachability alone would have gone green while a session still
destroyed its own evidence.

A note now binds by (game, after) — an index into the recording's own
commands list, which a reader can replay to. The hash keeps a job as the
integrity check at the end of a game, where it can actually fail. Game 1
keeps the path it was given, so GameDesign §5's documented invocation is
unchanged; later games get -2, -3 and nothing is overwritten. Legacy
5-column logs stay readable and are reported as legacy, never as orphans —
an unsubstantiated orphan claim is the defect being fixed.

All three fixes mutation-proven, including at the call site via a real
two-game session.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 17:41:11 +02:00
..
CB-WP-0001-inner-loop.md CB-WP-0007 T01+T03: window the metric, budget it, cap meta at 25% 2026-08-01 14:12:07 +02:00
CB-WP-0002-cost-accounting.md CB-WP-0007 T01+T03: window the metric, budget it, cap meta at 25% 2026-08-01 14:12:07 +02:00
CB-WP-0003-loop-hardening.md CB-WP-0007 T01+T03: window the metric, budget it, cap meta at 25% 2026-08-01 14:12:07 +02:00
CB-WP-0004-mechanical-work.md CB-WP-0007 T01+T03: window the metric, budget it, cap meta at 25% 2026-08-01 14:12:07 +02:00
CB-WP-0005-assertion-coverage.md CB-WP-0007 T01+T03: window the metric, budget it, cap meta at 25% 2026-08-01 14:12:07 +02:00
CB-WP-0006-instrument-the-table.md CB-WP-0007 T01+T03: window the metric, budget it, cap meta at 25% 2026-08-01 14:12:07 +02:00
CB-WP-0007-session-shape.md CB-WP-0010-T01: close CB-WP-0007 2026-08-02 02:15:08 +02:00
CB-WP-0008-ship-stage-0.md CB-WP-0008-T04: CB-EV-0007 — stage 0 is shipped, and the spend curve is a V 2026-08-01 15:25:19 +02:00
CB-WP-0009-adaptive-gates.md CB-WP-0009-T04: CB-EV-0008 — the gate changes, measured 2026-08-01 15:45:08 +02:00
CB-WP-0010-consolidation.md CB-WP-0010-T03: record CommitWindow's second failed second-use 2026-08-02 02:19:23 +02:00
CB-WP-0011-inspectable-table.md CB-WP-0011-T03: evidence — the chaos roll fired, and it was right 2026-08-02 02:48:51 +02:00
CB-WP-0012-render-port.md Sync hub IDs and work-record index for CB-WP-0012 2026-08-02 04:30:45 +02:00
CB-WP-0013-instrument-corrections.md Sync hub IDs and work-record index for CB-WP-0013 2026-08-02 07:32:33 +02:00
CB-WP-0014-execute-the-javascript.md Sync hub IDs and work-record index for CB-WP-0014 2026-08-02 07:59:28 +02:00
CB-WP-0015-the-inert-clauses.md Sync hub IDs and work-record index for CB-WP-0015 2026-08-02 14:08:30 +02:00
CB-WP-0016-the-drop-target.md Sync hub IDs and work-record index for CB-WP-0016 2026-08-02 20:49:21 +02:00
CB-WP-0017-legible-interaction.md Sync hub IDs and work-record index for CB-WP-0017 2026-08-02 22:43:40 +02:00
CB-WP-0018-the-browser-is-a-client.md Sync hub IDs and work-record index for CB-WP-0018 2026-08-03 02:24:57 +02:00
CB-WP-0019-the-am4-family.md CB-WP-0019 T03/T04: the cost rule written down, and the lifecycle 2026-08-03 19:25:18 +02:00
CB-WP-0020-the-table-you-can-read.md Sync hub state for CB-WP-0020 2026-08-03 20:21:18 +02:00
CB-WP-0021-import-the-edition.md CB-WP-0021 T04: evidence -- the endings are tight, and the cost chain snapped 2026-08-05 15:56:31 +02:00
CB-WP-0022-the-design-instrument.md CB-WP-0022 T05/T06/T07: the register, and what its first run found 2026-08-05 15:22:33 +02:00
CB-WP-0023-solve-legality.md CB-EV-0020: a gate moved the rule, and the report was wrong 2026-08-04 00:21:21 +02:00
CB-WP-0024-the-table-you-can-watch.md CB-WP-0024: the table you can watch 2026-08-05 17:32:48 +02:00
CB-WP-0025-could-we-have-won.md CB-WP-0025 T06/T07: a difficulty baseline that reports its own confound 2026-08-05 19:24:49 +02:00
CB-WP-0026-collect-the-rulings.md Sync hub state for CB-WP-0026 2026-08-05 16:15:22 +02:00
CB-WP-0027-the-commentary-track.md CB-WP-0027 T05: evidence — and the one question this file cannot answer 2026-08-06 10:39:12 +02:00
CB-WP-0028-the-table-you-sit-at.md CB-WP-0028 T03/T08: one overhead table, and what the nine observations 2026-08-06 17:33:57 +02:00
CB-WP-0029-the-tokens-on-the-table.md CB-WP-0029 T04: evidence — and chaos window 2 closes with nothing to 2026-08-07 09:55:47 +02:00
CB-WP-0030-a-number-that-does-not-move.md CB-WP-0030: a control for the wrong-subject family 2026-08-07 11:35:41 +02:00
CB-WP-0031-the-comment-box-outlives-the-game.md CB-WP-0032: the comments in the account 2026-08-07 16:09:36 +02:00
CB-WP-0032-the-comments-in-the-account.md CB-WP-0033: a game is the unit 2026-08-07 17:41:11 +02:00
CB-WP-0033-a-game-is-the-unit.md CB-WP-0033: a game is the unit 2026-08-07 17:41:11 +02:00