CB-WP-0017: legible interaction, and the chaos window's verdict
Some checks failed
ci / check (push) Failing after 4s
Some checks failed
ci / check (push) Failing after 4s
Provenance (tier M, structural S, chaos d4=4 -> OVERRIDE drawn M): the maintainer could drag after CB-WP-0016 but could not tell what was pickable, held, or droppable. Underneath that, the page was WRONG about which moves exist: 9 legal commands rendered as 5 cards each claiming all three target kinds, from a const string in the emitter. Investigate is legal on problems 2 and 3 but not 1; Solve on 1 but not 2 or 3. The live page now says 'Solve onto problem 1'. ADR-0010 restates control 5, which this work would otherwise have outgrown in silence: every game fact the page acts on must arrive from Rust as data; the script may read, match and render it, never compute, infer, filter or default one. The survey's real finding is that the permitted and forbidden designs are indistinguishable from outside, so the vocabulary grep is demoted to a cheap first line and two behavioural properties become the controls -- the highlighted set EQUALS the set Rust emitted, and anything the page marks legal must resolve. Both mutation-proven; the derive-legality mutation produces a plausible highlight (seat-0,1,2 where only seat-1 is legal) and is caught. Visible now: .pick resting shadow, .held on the grabbed element, .dropok on every legal target including BOTH drawings of a seat, and a ghost following the pointer. Nothing perceptual is verified and ADR-0010 D5 says so. The DOM stub now models classList/querySelectorAll/createElement and builds its node set from the real emitted page. Trap recorded: QuickJS fixes its stack limit at Context creation relative to that frame, so a helper returning a Context makes every later eval report 'SyntaxError: stack overflow'. CHAOS WINDOW CLOSED, 12 declarations, 2 overrides, one each way. Both changed the outcome, so the retirement condition is not met. Verdict: keep, and recommend d4 -> d8 with a second window of 12 -- that is a change to the loop's own constraints and is owed to the next declaration as tier-M work, not made here. CB-EV-0014 corrected: it quoted CB-WP-0015 at $15.14/136 and called it the first settled figure quoted. Now $22.70/166. The number had been read during CB-WP-0015 itself, so there are two defects -- the boundary, and quoting from memory instead of re-running the instrument. make all exits 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ca92db53bc
commit
a55e878bf0
9 changed files with 911 additions and 77 deletions
19
INTENT.md
19
INTENT.md
|
|
@ -64,14 +64,17 @@ game.
|
|||
and scenario tests, simple bots. No rendering, no physics.
|
||||
1. **Inspectable 2D table** — card/token/hand/relationship-graph
|
||||
visualization, drag-to-propose, debug inspector, hot-seat play.
|
||||
*Open on one human verification. The first run of it (2026-08-02)
|
||||
found the table legible and the drag **broken**: drop targets were
|
||||
`id`s, an `id` must be unique, so the relationship-graph circle held
|
||||
`seat-0` and the seat card the page points at had none. Fixed in
|
||||
CB-WP-0016 — drop keys are `data-drop` — and verified by tests, by
|
||||
mutation, and against a live server, but **not** by a human dragging,
|
||||
which is the standard that found it. Run `cb-play --serve 0`, open the
|
||||
printed URL, and drag an action onto a seat card.*
|
||||
*Open on one human verification, and every run of it so far has found
|
||||
something no test could. 2026-08-02, run 1: the drag was broken — drop
|
||||
targets were `id`s, which must be unique, so the graph circle held
|
||||
`seat-0` and the seat card had none (CB-WP-0016). Run 2: the drag
|
||||
worked but the page was **wrong about which moves exist**, showing 5
|
||||
cards each claiming all three target kinds where 9 specific commands
|
||||
were legal, with no way to see what was pickable, held, or droppable
|
||||
(CB-WP-0017). Both fixed. What remains is perceptual and unreachable
|
||||
from here by construction (ADR-0010 D5): run `cb-play --serve 0` and
|
||||
confirm you can see what can be picked up, what you are holding, and
|
||||
where it may go.*
|
||||
2. **Physical 3D tabletop** — wgpu renderer, Rapier-backed physics, camera
|
||||
and pointer controls, snap zones, asset importer.
|
||||
3. **Networked sessions** — authoritative host, private projections,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue