clay-borg/workplans
tegwick 4b40a537a6
Some checks failed
ci / check (push) Failing after 4s
CB-WP-0041 T01: perfect recall fails on the projection, holds on the history
The answer is "it depends what you call an information set", and the
distinction is the result. 44,938 decision points, random play, 2/3/4/6
seats.

Reading A — information set = the seat's current projection, which is what
project(Viewer::Player(seat)) returns and what the page renders: 22
violations. Reading B — information set = the seat's observation history,
every view seen and action taken in order: 0.

The Reading A witness is concrete. Two histories reach a byte-identical
view — round 3, Select step, same hand, same claimed Problem — where the
seat had played SOLVE then GROUND-OU(protect) in one and SUPPORT then
SOLVE in the other. The view does not tell the seat what it did, because
our state is a snapshot rather than a history: selections clear each round
and effects coincide, so a player cannot reconstruct their own past from
the present. In a real game the player's memory supplies it; in the state,
nothing does.

That is precisely OpenSpiel's ObservationString vs InformationStateString
split, arrived at here by measurement rather than read off. project() is
an observation, not an information state.

So Track B is not closed, it is constrained, and usefully: an
extensive-form game built from this engine must key information sets on
observation histories, never on project().

Both directions are asserted — Reading B empty AND Reading A non-empty —
because if the sample stops finding Reading A violations the conclusion is
unsupported and must be re-derived rather than quietly kept. And the check
samples, so it can falsify perfect recall and cannot establish it: Reading
B's zero means no counterexample was drawn, which is printed as such.

Wired into make panels, so it is re-derived by the gate rather than by
hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 15:18:36 +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-0034: who you are bonding with 2026-08-07 17:49:06 +02:00
CB-WP-0034-who-you-are-bonding-with.md CB-WP-0035: a session that answers nothing 2026-08-07 20:31:32 +02:00
CB-WP-0035-a-session-that-answers-nothing.md specs/Ornamentation.md: what a game is besides its rules 2026-08-07 21:16:34 +02:00
CB-WP-0036-interactive-mode.md CB-WP-0036 done: the pace flag and the first ornament declarations 2026-08-07 22:15:38 +02:00
CB-WP-0037-the-fourteen-unread-files.md CB-WP-0037 done: T03 classification and T04 evidence 2026-08-08 00:33:24 +02:00
CB-WP-0038-h1-variant.md Sync hub ids for CB-WP-0038 2026-08-08 00:50:51 +02:00
CB-WP-0039-a-seat-that-does-not-regulate.md CB-REV-0001: the adversarial review, and it was not approvable 2026-08-08 02:02:35 +02:00
CB-WP-0040-what-a-statement-is-about.md simulators/: persist the survey, and let it shrink two of the three tracks 2026-08-08 11:56:27 +02:00
CB-WP-0041-the-extensive-form-foundation.md CB-WP-0041 T01: perfect recall fails on the projection, holds on the history 2026-08-08 15:18:36 +02:00
CB-WP-0042-h2-scoped-problem-stress.md Declare CB-WP-0041 (extensive-form foundation) and CB-WP-0042 (H2) 2026-08-08 15:11:09 +02:00