clay-borg/WORK-RECORDS.md

266 lines
22 KiB
Markdown
Raw Permalink Normal View History

# Work Records — clay-borg
> Generated by `statehub fix-consistency` (CUST-WP-0061-T04, work-record
> stage 3). Do not edit by hand — edit the source file/block listed for
> each record and re-run fix-consistency to refresh this index. Archived
> workplans are omitted; closed decisions/intakes/engagements stay listed
> so recently-resolved work is still visible. [auto]
| Kind | ID | Status | Lane | Source |
| --- | --- | --- | --- | --- |
Amend CB-EV-0001; add CB-WP-0002 for cost accounting AM-4: measured what each remediation option actually buys, rather than leaving one recommendation unquantified. serde_yaml optional removes 6 crates, not 5 — ryu belongs to that group, since serde_json now uses zmij for floats. Full ladder: -6 to 27, serde_json -4 more to 23, inlining SHA-256 -8 to 19, inlining ChaCha12 -4 to 15. Only reimplementing a primitive gets under 20, so the target is unreachable without undoing K5/K7. Also records that crate count compares badly across ecosystems, and offers the alternative the count is a proxy for: 307,317 lines of third-party source under audit against 3,398 of our own. AM-12: corrected from "uncomputable" to measured. The refusal to estimate was right; the claim that no instrument existed was wrong. Session transcripts carry exact per-message usage including the cache breakdown. This session cost $248.46 at Fable 5 rates, of which 53% is cache reads — cost is driven by context size times turn count, not by output volume. What is still missing is per-task attribution, since nothing marks task boundaries in a transcript. CB-WP-0002 makes cost measurable and attributable: survey the instruments, decide the attribution model by ADR, spec metrics that include cost composition rather than a bare total, build a collector whose positive control refuses to emit unreconciled numbers, and prove it by answering a question that could not be answered before. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 03:26:03 +02:00
| workplan | CB-WP-0001 | done | — | workplans/CB-WP-0001-inner-loop.md |
| workplan | CB-WP-0002 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| workplan | CB-WP-0003 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| workplan | CB-WP-0004 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| workplan | CB-WP-0005 | done | — | workplans/CB-WP-0005-assertion-coverage.md |
| workplan | CB-WP-0006 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| workplan | CB-WP-0007 | done | — | 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 | done | — | workplans/CB-WP-0010-consolidation.md |
| workplan | CB-WP-0011 | done | — | workplans/CB-WP-0011-inspectable-table.md |
| workplan | CB-WP-0012 | done | — | workplans/CB-WP-0012-render-port.md |
| workplan | CB-WP-0013 | done | — | workplans/CB-WP-0013-instrument-corrections.md |
| workplan | CB-WP-0014 | done | — | workplans/CB-WP-0014-execute-the-javascript.md |
| workplan | CB-WP-0015 | done | — | workplans/CB-WP-0015-the-inert-clauses.md |
| workplan | CB-WP-0016 | done | — | workplans/CB-WP-0016-the-drop-target.md |
| workplan | CB-WP-0017 | done | — | workplans/CB-WP-0017-legible-interaction.md |
| workplan | CB-WP-0018 | done | — | workplans/CB-WP-0018-the-browser-is-a-client.md |
| workplan | CB-WP-0019 | done | — | workplans/CB-WP-0019-the-am4-family.md |
| workplan | CB-WP-0020 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| workplan | CB-WP-0021 | done | — | workplans/CB-WP-0021-import-the-edition.md |
| workplan | CB-WP-0022 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
2026-08-04 00:21:21 +02:00
| workplan | CB-WP-0023 | done | — | workplans/CB-WP-0023-solve-legality.md |
| workplan | CB-WP-0024 | done | — | workplans/CB-WP-0024-the-table-you-can-watch.md |
| workplan | CB-WP-0025 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| workplan | CB-WP-0026 | done | — | workplans/CB-WP-0026-collect-the-rulings.md |
| workplan | CB-WP-0027 | done | — | workplans/CB-WP-0027-the-commentary-track.md |
| workplan | CB-WP-0028 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| workplan | CB-WP-0029 | done | — | workplans/CB-WP-0029-the-tokens-on-the-table.md |
| workplan | CB-WP-0030 | done | — | workplans/CB-WP-0030-a-number-that-does-not-move.md |
| workplan | CB-WP-0031 | done | — | workplans/CB-WP-0031-the-comment-box-outlives-the-game.md |
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
| workplan | CB-WP-0032 | done | — | workplans/CB-WP-0032-the-comments-in-the-account.md |
2026-08-07 17:49:06 +02:00
| workplan | CB-WP-0033 | done | — | workplans/CB-WP-0033-a-game-is-the-unit.md |
| workplan | CB-WP-0034 | done | — | workplans/CB-WP-0034-who-you-are-bonding-with.md |
specs/Ornamentation.md: what a game is besides its rules Draws one boundary — between what the rules can see and everything else a player experiences — and says which repository each belongs to as the simulator grows. "Ritual" becomes ornamentation: half the category is material rather than ceremonial, and "decoration" is already spoken for in this repo (a control that cannot fail). The test is not "does it have a decision in it" — choosing who deals is a decision and is ornamental. The test is whether the state hash moves, which reuses the instrument that already binds a trial note to a position. The part that earns its place in clay-borg rather than in a renderer's stylesheet: calling something ornamentation is a CLAIM THAT IT DOES NOT MATTER, and this project's register is a list of times that claim was wrong — quantity in Tokens.csv, F18's four unread files, SOLVE offered where it could not act. So a declaration carries a falsifier, and "provisional" is a state it must say out loud. Downstream may read, may not decide — ADR-0007 D5 restated at the repository boundary. The port to clay-animate is deliberately NOT designed: no consumer exists, and an interface built against an imagined client is the same defect as a gate that cannot go red. Five invariants, four checkable today. I3 — same seed and decisions produce a byte-identical recording at any pace through any renderer — is the falsifier for the whole split. CB-WP-0036 re-declared from L to M accordingly: the animation architecture that made it L has moved to clay-animate. No code had been written and the tier-L review had not been run, which is the only reason it could be re-scoped rather than unwound. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 21:16:34 +02:00
| workplan | CB-WP-0035 | done | — | workplans/CB-WP-0035-a-session-that-answers-nothing.md |
| workplan | CB-WP-0036 | done | — | workplans/CB-WP-0036-interactive-mode.md |
| workplan | CB-WP-0037 | done | — | workplans/CB-WP-0037-the-fourteen-unread-files.md |
| workplan | CB-WP-0038 | done | — | workplans/CB-WP-0038-h1-variant.md |
| workplan | CB-WP-0039 | done | — | workplans/CB-WP-0039-a-seat-that-does-not-regulate.md |
| workplan | CB-WP-0040 | done | — | workplans/CB-WP-0040-what-a-statement-is-about.md |
| workplan | CB-WP-0041 | done | — | workplans/CB-WP-0041-the-extensive-form-foundation.md |
| workplan | CB-WP-0042 | done | — | workplans/CB-WP-0042-h2-scoped-problem-stress.md |
| workplan | CB-WP-0043 | done | — | workplans/CB-WP-0043-a-problem-sits-where-its-stress-lands.md |
| workplan | CB-WP-0044 | done | — | workplans/CB-WP-0044-the-page-says-which-rules-it-plays.md |
| workplan | CB-WP-0045 | done | — | workplans/CB-WP-0045-the-table-names-what-it-shows.md |
| workplan | CB-WP-0046 | done | — | workplans/CB-WP-0046-the-rule-the-placement-encodes.md |
| workplan | CB-WP-0047 | done | — | workplans/CB-WP-0047-all-four-boards-and-all-three-modes.md |
| workplan | CB-WP-0048 | done | — | workplans/CB-WP-0048-a-configuration-not-a-variant.md |
| workplan | CB-WP-0049 | done | — | workplans/CB-WP-0049-a-seat-that-plays-its-own-objective.md |
| workplan | CB-WP-0050 | done | — | workplans/CB-WP-0050-every-configuration-faceted-by-aspect.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 |
Amend CB-EV-0001; add CB-WP-0002 for cost accounting AM-4: measured what each remediation option actually buys, rather than leaving one recommendation unquantified. serde_yaml optional removes 6 crates, not 5 — ryu belongs to that group, since serde_json now uses zmij for floats. Full ladder: -6 to 27, serde_json -4 more to 23, inlining SHA-256 -8 to 19, inlining ChaCha12 -4 to 15. Only reimplementing a primitive gets under 20, so the target is unreachable without undoing K5/K7. Also records that crate count compares badly across ecosystems, and offers the alternative the count is a proxy for: 307,317 lines of third-party source under audit against 3,398 of our own. AM-12: corrected from "uncomputable" to measured. The refusal to estimate was right; the claim that no instrument existed was wrong. Session transcripts carry exact per-message usage including the cache breakdown. This session cost $248.46 at Fable 5 rates, of which 53% is cache reads — cost is driven by context size times turn count, not by output volume. What is still missing is per-task attribution, since nothing marks task boundaries in a transcript. CB-WP-0002 makes cost measurable and attributable: survey the instruments, decide the attribution model by ADR, spec metrics that include cost composition rather than a bare total, build a collector whose positive control refuses to emit unreconciled numbers, and prove it by answering a question that could not be answered before. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 03:26:03 +02:00
| task | CB-WP-0001-T03 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0001-T04 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0001-T05 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0001-T06 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0001-T07 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0001-T08 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0001-T09 | done | — | workplans/CB-WP-0001-inner-loop.md |
| task | CB-WP-0002-T01 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0002-T02 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0002-T03 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0002-T04 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0002-T05 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0002-T06 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0002-T07 | done | — | workplans/CB-WP-0002-cost-accounting.md |
| task | CB-WP-0003-T01 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T02 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T03 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T04 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T05 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T06 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T07 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T08 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T09 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T10 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0003-T11 | done | — | workplans/CB-WP-0003-loop-hardening.md |
| task | CB-WP-0004-T01 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| task | CB-WP-0004-T02 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| task | CB-WP-0004-T03 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| task | CB-WP-0004-T04 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| task | CB-WP-0004-T05 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| task | CB-WP-0004-T06 | done | — | workplans/CB-WP-0004-mechanical-work.md |
| task | CB-WP-0005-T01 | done | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T02 | done | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T03 | done | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T04 | cancel | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T05 | cancel | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T06 | cancel | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T07 | done | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0005-T08 | done | — | workplans/CB-WP-0005-assertion-coverage.md |
| task | CB-WP-0006-T01 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T02 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T03 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T04 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T05 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T06 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T07 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T08 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0006-T09 | done | — | workplans/CB-WP-0006-instrument-the-table.md |
| task | CB-WP-0007-T01 | done | — | workplans/CB-WP-0007-session-shape.md |
| task | CB-WP-0007-T02 | cancel | — | workplans/CB-WP-0007-session-shape.md |
| task | CB-WP-0007-T03 | done | — | workplans/CB-WP-0007-session-shape.md |
| task | CB-WP-0007-T04 | cancel | — | workplans/CB-WP-0007-session-shape.md |
| task | CB-WP-0007-T05 | cancel | — | workplans/CB-WP-0007-session-shape.md |
| task | CB-WP-0007-T06 | cancel | — | workplans/CB-WP-0007-session-shape.md |
| task | CB-WP-0008-T01 | done | — | workplans/CB-WP-0008-ship-stage-0.md |
| task | CB-WP-0008-T02 | done | — | workplans/CB-WP-0008-ship-stage-0.md |
| task | CB-WP-0008-T03 | done | — | workplans/CB-WP-0008-ship-stage-0.md |
| task | CB-WP-0008-T04 | done | — | workplans/CB-WP-0008-ship-stage-0.md |
| task | CB-WP-0009-T01 | done | — | workplans/CB-WP-0009-adaptive-gates.md |
| 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 | done | — | workplans/CB-WP-0010-consolidation.md |
| task | CB-WP-0010-T02 | done | — | workplans/CB-WP-0010-consolidation.md |
| task | CB-WP-0010-T03 | done | — | workplans/CB-WP-0010-consolidation.md |
| task | CB-WP-0011-T01 | done | — | workplans/CB-WP-0011-inspectable-table.md |
| task | CB-WP-0011-T02 | done | — | workplans/CB-WP-0011-inspectable-table.md |
| task | CB-WP-0011-T03 | done | — | workplans/CB-WP-0011-inspectable-table.md |
CB-WP-0012-T05: evidence — tier L deleted its own deliverable CB-EV-0010. The pass's own verdict on the tier it ran at. Full-weight review withdrew the capability port the declaration was made to build. A tier-S pass has no step 2 and would have shipped it, and stage 2 would have found it unimplementable — which is what CommitWindow is already on record in this repo for doing. Two corrections of the survey's own numbers, compounding: AM-4a headroom 3,750 claimed -> 92,798 measured (25x) cheapest windowed 480,501 claimed -> 140,079 measured (3.4x) headline ratio 128x -> 1.5x (85x) The prediction from CB-EV-0009 §4 held: meta budget reads 0%, published in advance and unfalsified. A correction that is now a pattern: CB-EV-0009 reported CB-WP-0011 at 45 responses / $4.23 / 0.094; final is 71 / $7.02 / 0.099. Still the cheapest pass, so the conclusion stands. But that is the second consecutive evidence file to report its own pass's cost low — a pass cannot measure its own cost, and one quoting its own is quoting a floor. First priced tier comparison on a single subject: 0.123 $/response at L against 0.099 at S — 24% more, for a pass that found the two errors above. On one data point, step 2 is cheap. Not shipped, and said plainly: the emitted JavaScript has never been executed. The socket loop is tested end to end with synthetic HTTP and the page is asserted against as a parsed document, but no browser engine has run it. INTENT stage 1 therefore stays open even though all four of its named deliverables now exist. SH-3 reads 0.0% for a sixth consecutive pass and remains the oldest unargued number in the project. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 04:30:10 +02:00
| task | CB-WP-0012-T01 | done | — | workplans/CB-WP-0012-render-port.md |
| task | CB-WP-0012-T02 | done | — | workplans/CB-WP-0012-render-port.md |
| task | CB-WP-0012-T03 | done | — | workplans/CB-WP-0012-render-port.md |
| task | CB-WP-0012-T04 | done | — | workplans/CB-WP-0012-render-port.md |
| task | CB-WP-0012-T05 | done | — | workplans/CB-WP-0012-render-port.md |
CB-WP-0013-T04: evidence — and a rule about quoting your own cost CB-EV-0011. Three instruments were wrong; the pass found the third defect itself and committed the fourth. The rule this pass should leave behind: an evidence file quotes the PREVIOUS pass's final cost, not its own. Three for three, all low by a strikingly consistent ~2/3: CB-WP-0009 $6.73 reported -> $11.31 final CB-WP-0011 $4.23 reported -> $7.02 final CB-WP-0012 $8.82 reported -> $14.52 final And this time it changed a conclusion. CB-EV-0010 reported the first priced tier comparison as "0.123 at L against 0.099 at S — 24% more". The final figures are 0.150 against 0.099 — 51% more. Tier L costs twice what that comparison claimed. It still deleted a port that would have been rewritten and found errors of 25x and 85x, so it still looks worth it, but the price doubled and the file that made the argument could not have known. Also closed rather than deferred again: cb-play's "third mode" never arrived. --serve is a play flag selecting which Policy fills a human seat; the binary still has two modes, and CB-EV-0010 §6 was wrong. Carried for two passes, resolved, stopped. Recorded as a near-miss: an instrument reading that looked impossible (53 tool calls in 53 responses) turned out to be correct. One independent re-derivation before writing anything stopped a false accusation — in the pass whose whole subject is instruments reporting things that are not so. gate-review: 0 due, 0 silent, 0 drifted. Every gate in the registry has a caught entry for the first time. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 07:32:07 +02:00
| task | CB-WP-0013-T01 | done | — | workplans/CB-WP-0013-instrument-corrections.md |
| task | CB-WP-0013-T02 | done | — | workplans/CB-WP-0013-instrument-corrections.md |
| task | CB-WP-0013-T03 | done | — | workplans/CB-WP-0013-instrument-corrections.md |
| task | CB-WP-0013-T04 | done | — | workplans/CB-WP-0013-instrument-corrections.md |
CB-WP-0014-T03: hot-seat evidenced; stage 1 open on one human check CB-EV-0012. Stage 1, deliverable by deliverable: relationship-graph visualization emitted and gated, NEVER SEEN drag-to-propose evidenced end to end debug inspector evidenced (CB-WP-0011) hot-seat play evidenced here Hot-seat was the one closest to being claimed on the strength of the code path existing. SeatPolicy hands every human seat a handle on one shared Server, so turn-taking "obviously" worked — and nothing drove more than one seat until now. The property that matters is not that two turns happen but that the same tab, asked twice, shows two different hands. Mutating the projection to serve P1's view to every seat turns it red. The stage stays open on ONE named blocker rather than a vague reservation: no browser is available to this loop, so the visualization is evidenced only as correctly emitted. Everything testable from here has been tested. What remains is `cb-play --serve 0`, open the URL, confirm the table reads and a drag works. INTENT carries that note now. The self-quoting rule from CB-EV-0011 §4 is ADOPTED: an evidence file quotes the previous pass's final cost and never its own. CB-WP-0013 reported itself at $5.78/34 mid-flight; final is $8.26/47, under by 43%. Four for four, always low. Meta budget 29% [OVER] soft 25%, driven by CB-WP-0013 in a trailing three with two cheap product passes; it was an instrument repair, which ADR-0006 D2 exempts. SH-1 at 347,720 [HARD] against a 300,000 ceiling. Compaction is the remedy and this session cannot do it for itself. CB-EV-0009's standing prediction is now live and testable for the first time in three passes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 07:58:59 +02:00
| task | CB-WP-0014-T01 | done | — | workplans/CB-WP-0014-execute-the-javascript.md |
| task | CB-WP-0014-T02 | done | — | workplans/CB-WP-0014-execute-the-javascript.md |
| task | CB-WP-0014-T03 | done | — | workplans/CB-WP-0014-execute-the-javascript.md |
| task | CB-WP-0015-T01 | done | — | workplans/CB-WP-0015-the-inert-clauses.md |
| task | CB-WP-0015-T02 | done | — | workplans/CB-WP-0015-the-inert-clauses.md |
| task | CB-WP-0015-T03 | done | — | workplans/CB-WP-0015-the-inert-clauses.md |
| task | CB-WP-0016-T01 | done | — | workplans/CB-WP-0016-the-drop-target.md |
| task | CB-WP-0016-T02 | done | — | workplans/CB-WP-0016-the-drop-target.md |
| task | CB-WP-0016-T03 | done | — | workplans/CB-WP-0016-the-drop-target.md |
| task | CB-WP-0017-T01 | done | — | workplans/CB-WP-0017-legible-interaction.md |
| task | CB-WP-0017-T02 | done | — | workplans/CB-WP-0017-legible-interaction.md |
| task | CB-WP-0017-T03 | done | — | workplans/CB-WP-0017-legible-interaction.md |
| task | CB-WP-0017-T04 | done | — | workplans/CB-WP-0017-legible-interaction.md |
| task | CB-WP-0018-T01 | done | — | workplans/CB-WP-0018-the-browser-is-a-client.md |
| task | CB-WP-0018-T02 | done | — | workplans/CB-WP-0018-the-browser-is-a-client.md |
| task | CB-WP-0018-T03 | done | — | workplans/CB-WP-0018-the-browser-is-a-client.md |
| task | CB-WP-0018-T04 | done | — | workplans/CB-WP-0018-the-browser-is-a-client.md |
| task | CB-WP-0019-T01 | done | — | workplans/CB-WP-0019-the-am4-family.md |
| task | CB-WP-0019-T02 | done | — | workplans/CB-WP-0019-the-am4-family.md |
| task | CB-WP-0019-T03 | done | — | workplans/CB-WP-0019-the-am4-family.md |
| task | CB-WP-0019-T04 | done | — | workplans/CB-WP-0019-the-am4-family.md |
| task | CB-WP-0019-T05 | done | — | workplans/CB-WP-0019-the-am4-family.md |
| task | CB-WP-0020-T01 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| task | CB-WP-0020-T02 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| task | CB-WP-0020-T03 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| task | CB-WP-0020-T04 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| task | CB-WP-0020-T05 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| task | CB-WP-0020-T06 | done | — | workplans/CB-WP-0020-the-table-you-can-read.md |
| task | CB-WP-0021-T01 | done | — | workplans/CB-WP-0021-import-the-edition.md |
| task | CB-WP-0021-T02 | done | — | workplans/CB-WP-0021-import-the-edition.md |
| task | CB-WP-0021-T03 | done | — | workplans/CB-WP-0021-import-the-edition.md |
| task | CB-WP-0021-T04 | done | — | workplans/CB-WP-0021-import-the-edition.md |
| task | CB-WP-0021-T05 | done | — | workplans/CB-WP-0021-import-the-edition.md |
| task | CB-WP-0021-T06 | done | — | workplans/CB-WP-0021-import-the-edition.md |
2026-08-04 00:21:21 +02:00
| task | CB-WP-0022-T01 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
| task | CB-WP-0022-T02 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
| task | CB-WP-0022-T03 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
| task | CB-WP-0022-T04 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
| task | CB-WP-0022-T05 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
| task | CB-WP-0022-T06 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
| task | CB-WP-0022-T07 | done | — | workplans/CB-WP-0022-the-design-instrument.md |
2026-08-04 00:21:21 +02:00
| task | CB-WP-0023-T01 | done | — | workplans/CB-WP-0023-solve-legality.md |
| task | CB-WP-0023-T02 | done | — | workplans/CB-WP-0023-solve-legality.md |
| task | CB-WP-0023-T03 | done | — | workplans/CB-WP-0023-solve-legality.md |
| task | CB-WP-0024-T01 | done | — | workplans/CB-WP-0024-the-table-you-can-watch.md |
| task | CB-WP-0024-T02 | done | — | workplans/CB-WP-0024-the-table-you-can-watch.md |
| task | CB-WP-0024-T03 | done | — | workplans/CB-WP-0024-the-table-you-can-watch.md |
| task | CB-WP-0024-T04 | done | — | workplans/CB-WP-0024-the-table-you-can-watch.md |
| task | CB-WP-0024-T05 | done | — | workplans/CB-WP-0024-the-table-you-can-watch.md |
| task | CB-WP-0025-T01 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0025-T02 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0025-T03 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0025-T04 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0025-T05 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0025-T06 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0025-T07 | done | — | workplans/CB-WP-0025-could-we-have-won.md |
| task | CB-WP-0026-T01 | done | — | workplans/CB-WP-0026-collect-the-rulings.md |
| task | CB-WP-0026-T02 | done | — | workplans/CB-WP-0026-collect-the-rulings.md |
| task | CB-WP-0026-T03 | done | — | workplans/CB-WP-0026-collect-the-rulings.md |
| task | CB-WP-0026-T04 | done | — | workplans/CB-WP-0026-collect-the-rulings.md |
| task | CB-WP-0026-T05 | done | — | workplans/CB-WP-0026-collect-the-rulings.md |
| task | CB-WP-0027-T01 | done | — | workplans/CB-WP-0027-the-commentary-track.md |
| task | CB-WP-0027-T02 | done | — | workplans/CB-WP-0027-the-commentary-track.md |
| task | CB-WP-0027-T03 | done | — | workplans/CB-WP-0027-the-commentary-track.md |
| task | CB-WP-0027-T04 | done | — | workplans/CB-WP-0027-the-commentary-track.md |
| task | CB-WP-0027-T05 | done | — | workplans/CB-WP-0027-the-commentary-track.md |
| task | CB-WP-0028-T01 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T02 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T03 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T04 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T05 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T06 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T07 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0028-T08 | done | — | workplans/CB-WP-0028-the-table-you-sit-at.md |
| task | CB-WP-0029-T01 | done | — | workplans/CB-WP-0029-the-tokens-on-the-table.md |
| task | CB-WP-0029-T02 | done | — | workplans/CB-WP-0029-the-tokens-on-the-table.md |
| task | CB-WP-0029-T03 | done | — | workplans/CB-WP-0029-the-tokens-on-the-table.md |
| task | CB-WP-0029-T04 | done | — | workplans/CB-WP-0029-the-tokens-on-the-table.md |
| task | CB-WP-0030-T01 | done | — | workplans/CB-WP-0030-a-number-that-does-not-move.md |
| task | CB-WP-0030-T02 | done | — | workplans/CB-WP-0030-a-number-that-does-not-move.md |
| task | CB-WP-0030-T03 | done | — | workplans/CB-WP-0030-a-number-that-does-not-move.md |
| task | CB-WP-0030-T04 | done | — | workplans/CB-WP-0030-a-number-that-does-not-move.md |
| task | CB-WP-0031-T01 | done | — | workplans/CB-WP-0031-the-comment-box-outlives-the-game.md |
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
| task | CB-WP-0032-T01 | done | — | workplans/CB-WP-0032-the-comments-in-the-account.md |
2026-08-07 17:49:06 +02:00
| task | CB-WP-0033-T01 | done | — | workplans/CB-WP-0033-a-game-is-the-unit.md |
| task | CB-WP-0034-T01 | done | — | workplans/CB-WP-0034-who-you-are-bonding-with.md |
specs/Ornamentation.md: what a game is besides its rules Draws one boundary — between what the rules can see and everything else a player experiences — and says which repository each belongs to as the simulator grows. "Ritual" becomes ornamentation: half the category is material rather than ceremonial, and "decoration" is already spoken for in this repo (a control that cannot fail). The test is not "does it have a decision in it" — choosing who deals is a decision and is ornamental. The test is whether the state hash moves, which reuses the instrument that already binds a trial note to a position. The part that earns its place in clay-borg rather than in a renderer's stylesheet: calling something ornamentation is a CLAIM THAT IT DOES NOT MATTER, and this project's register is a list of times that claim was wrong — quantity in Tokens.csv, F18's four unread files, SOLVE offered where it could not act. So a declaration carries a falsifier, and "provisional" is a state it must say out loud. Downstream may read, may not decide — ADR-0007 D5 restated at the repository boundary. The port to clay-animate is deliberately NOT designed: no consumer exists, and an interface built against an imagined client is the same defect as a gate that cannot go red. Five invariants, four checkable today. I3 — same seed and decisions produce a byte-identical recording at any pace through any renderer — is the falsifier for the whole split. CB-WP-0036 re-declared from L to M accordingly: the animation architecture that made it L has moved to clay-animate. No code had been written and the tier-L review had not been run, which is the only reason it could be re-scoped rather than unwound. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 21:16:34 +02:00
| task | CB-WP-0035-T01 | done | — | workplans/CB-WP-0035-a-session-that-answers-nothing.md |
| task | CB-WP-0036-T01 | done | — | workplans/CB-WP-0036-interactive-mode.md |
| task | CB-WP-0036-T02 | done | — | workplans/CB-WP-0036-interactive-mode.md |
| task | CB-WP-0036-T03 | done | — | workplans/CB-WP-0036-interactive-mode.md |
| task | CB-WP-0037-T01 | done | — | workplans/CB-WP-0037-the-fourteen-unread-files.md |
| task | CB-WP-0037-T02 | done | — | workplans/CB-WP-0037-the-fourteen-unread-files.md |
| task | CB-WP-0037-T03 | done | — | workplans/CB-WP-0037-the-fourteen-unread-files.md |
| task | CB-WP-0037-T04 | done | — | workplans/CB-WP-0037-the-fourteen-unread-files.md |
| task | CB-WP-0038-T01 | done | — | workplans/CB-WP-0038-h1-variant.md |
| task | CB-WP-0038-T02 | done | — | workplans/CB-WP-0038-h1-variant.md |
| task | CB-WP-0038-T03 | done | — | workplans/CB-WP-0038-h1-variant.md |
| task | CB-WP-0039-T01 | done | — | workplans/CB-WP-0039-a-seat-that-does-not-regulate.md |
| task | CB-WP-0040-T01 | done | — | workplans/CB-WP-0040-what-a-statement-is-about.md |
| task | CB-WP-0040-T02 | done | — | workplans/CB-WP-0040-what-a-statement-is-about.md |
| task | CB-WP-0040-T03 | done | — | workplans/CB-WP-0040-what-a-statement-is-about.md |
| task | CB-WP-0041-T01 | done | — | workplans/CB-WP-0041-the-extensive-form-foundation.md |
| task | CB-WP-0041-T02 | done | — | workplans/CB-WP-0041-the-extensive-form-foundation.md |
| task | CB-WP-0041-T03 | done | — | workplans/CB-WP-0041-the-extensive-form-foundation.md |
| task | CB-WP-0041-T04 | done | — | workplans/CB-WP-0041-the-extensive-form-foundation.md |
| task | CB-WP-0042-T01 | done | — | workplans/CB-WP-0042-h2-scoped-problem-stress.md |
| task | CB-WP-0042-T02 | done | — | workplans/CB-WP-0042-h2-scoped-problem-stress.md |
| task | CB-WP-0042-T03 | done | — | workplans/CB-WP-0042-h2-scoped-problem-stress.md |
| task | CB-WP-0042-T04 | done | — | workplans/CB-WP-0042-h2-scoped-problem-stress.md |
| task | CB-WP-0042-T05 | done | — | workplans/CB-WP-0042-h2-scoped-problem-stress.md |
| task | CB-WP-0043-T01 | done | — | workplans/CB-WP-0043-a-problem-sits-where-its-stress-lands.md |
| task | CB-WP-0044-T01 | done | — | workplans/CB-WP-0044-the-page-says-which-rules-it-plays.md |
| task | CB-WP-0045-T01 | done | — | workplans/CB-WP-0045-the-table-names-what-it-shows.md |
| task | CB-WP-0046-T01 | done | — | workplans/CB-WP-0046-the-rule-the-placement-encodes.md |
| task | CB-WP-0047-T01 | done | — | workplans/CB-WP-0047-all-four-boards-and-all-three-modes.md |
| task | CB-WP-0048-T00 | done | — | workplans/CB-WP-0048-a-configuration-not-a-variant.md |
| task | CB-WP-0048-T01 | done | — | workplans/CB-WP-0048-a-configuration-not-a-variant.md |
| task | CB-WP-0048-T02 | done | — | workplans/CB-WP-0048-a-configuration-not-a-variant.md |
| task | CB-WP-0048-T03 | done | — | workplans/CB-WP-0048-a-configuration-not-a-variant.md |
| task | CB-WP-0048-T04 | done | — | workplans/CB-WP-0048-a-configuration-not-a-variant.md |
| task | CB-WP-0049-T01 | done | — | workplans/CB-WP-0049-a-seat-that-plays-its-own-objective.md |
| task | CB-WP-0049-T02 | done | — | workplans/CB-WP-0049-a-seat-that-plays-its-own-objective.md |
| task | CB-WP-0049-T03 | done | — | workplans/CB-WP-0049-a-seat-that-plays-its-own-objective.md |
| task | CB-WP-0049-T04 | done | — | workplans/CB-WP-0049-a-seat-that-plays-its-own-objective.md |
| task | CB-WP-0050-T01 | done | — | workplans/CB-WP-0050-every-configuration-faceted-by-aspect.md |
| task | CB-WP-0050-T02 | done | — | workplans/CB-WP-0050-every-configuration-faceted-by-aspect.md |