clay-borg/evidence
tegwick bf72a1863a
Some checks failed
ci / check (push) Failing after 4s
CB-WP-0016: the drop target that was never there
Provenance (tier S, one paragraph in lieu of survey and ADR): the human
check that kept INTENT stage 1 open was run and the drag was broken.
Root cause, worth more than the instance: drop targets were ids, and an
id must be unique, so exactly one element could ever be seat-0. The
relationship-graph circle took it and the seat card that every action
card's own text points at -- 'drag Attack onto a seat' -- silently had
none. A seat is drawn twice and both drawings are the seat; the document
model could not express that.

Drop keys are now data-drop. Any number of elements may carry the same
key, so a seat is droppable on its card and on its graph node. Measured
on a live server: seat-0/1/2 each appear twice, id survives only on
cb-status which is the one element the script looks up, and
down=action-attack&up=seat-1 returns ok.

Second defect: a drop on nothing returned without posting and without
touching the status line, so a broken target was indistinguishable from
a working page. resolve already refuses rather than defaulting, which is
right; refusing SILENTLY is not. The page now reports the raw fact --
'took action-attack, let go over nothing droppable' -- which names
elements, not moves, so ADR-0007 control 5 holds.

And the honest part: the general check added here -- every offered
affordance names a key that exists, driven through Policy::choose over
four real bot games -- does NOT catch the reported defect. seat-0 did
exist, on the graph circle. It is kept because a wholly absent target is
a real class, and paired with a targeted regression test that does catch
it. Three mutations, each red for its stated reason, including the
reported defect reintroduced; only the targeted test fires on that one.

A cb-play assertion matched id="action-ground" as a substring while
describing itself as checking the page; rewritten through drop_keys.

make all exits 0. Stage 1 stays open: verified by tests, mutation and a
live server, not by a human dragging.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 20:48:18 +02:00
..
CB-EV-0001-game-kernel.md CB-WP-0013-T02/T03: retire SH-3 as a gate; correct AM-4a and its target 2026-08-02 07:30:14 +02:00
CB-EV-0002-cost-accounting.md CB-WP-0004 T04: fact registry and make facts-check — DFD gets a gate 2026-07-31 10:24:39 +02:00
CB-EV-0003-mechanical-work.md CB-WP-0004 T05: control loop — 6 points recovered, not 25-30 2026-07-31 10:27:09 +02:00
CB-EV-0004-assertion-coverage.md CB-WP-0005 T07/T08: control loop, retrospective, InnerLoop v1.4 2026-07-31 18:05:31 +02:00
CB-EV-0005-instrument-the-table.md CB-WP-0006 T08: control loop — 4 of 14 to 8 of 14, and a cost regression 2026-08-01 13:39:12 +02:00
CB-EV-0007-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-EV-0008-adaptive-gates.md CB-WP-0009-T04: CB-EV-0008 — the gate changes, measured 2026-08-01 15:45:08 +02:00
CB-EV-0009-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-EV-0010-render-port.md CB-WP-0012-T05: evidence — tier L deleted its own deliverable 2026-08-02 04:30:10 +02:00
CB-EV-0011-instrument-corrections.md CB-WP-0013-T04: evidence — and a rule about quoting your own cost 2026-08-02 07:32:07 +02:00
CB-EV-0012-execute-the-javascript.md CB-WP-0014-T03: hot-seat evidenced; stage 1 open on one human check 2026-08-02 07:58:59 +02:00
CB-EV-0013-the-inert-clauses.md CB-EV-0013: correct the cost table, and the self-quoting rule with it 2026-08-02 14:09:52 +02:00
CB-EV-0014-the-drop-target.md CB-WP-0016: the drop target that was never there 2026-08-02 20:48:18 +02:00