design-b D0: record the audit + red pin in docs 19/20/21

Doc 19: status DIAGNOSED -> DIAGNOSED + PINNED RED; the repro section
leads with the automated deterministic spec (the manual Leonardo flow
stays as the field repro).
Doc 20: D0 work-log entry; status D-1 + D0 done; next = D1.
Doc 21: red-spec section updated to "landed", with the staging test's
anti-vacuity role.

Carried finding: the strand reproduces on a 2-OBJECT fixture schematic,
so warm-load byte volume (the 68/1 dice-loader) is not an ingredient —
two concurrent parks suffice. That is why D3 closes this class and D5 is
not required for it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TEHGiiXMShNXbBr7gSJ7iz
This commit is contained in:
Gergő Törcsvári 2026-08-05 21:16:18 +02:00
commit 832cbcdf91
No known key found for this signature in database
GPG key ID: 8E75F2CDE64E5322
3 changed files with 58 additions and 12 deletions

View file

@ -87,9 +87,17 @@ belongs in the scheduler shim (it already owns `Fibers` bookkeeping and the
## 4. Red spec (the other D0 deliverable)
The doc-19 strand lands as `tests/kicad/quasimodal-strand.spec.ts`: open a schematic,
double-click a symbol → Symbol Properties (quasi-modal on a tool fiber = W1's fiber
lane), click OK → the dialog must close and dispatch must stay live. RED today by the
doc-19 mechanism; goes green at D3. Marked `test.fail()` so the battery stays runnable
while red — when D3 lands, Playwright flags "expected to fail but passed", forcing the
flip to a plain green pin.
**Landed** as `tests/kicad/quasimodal-strand.spec.ts` (pcbjam `6ab0843`): open a
schematic, double-click a symbol → Symbol Properties (quasi-modal on a tool fiber =
W1's fiber lane), arm the parking timer *while the dialog is up* (so its park lands on
top of the opener's open-ended park — structural overlap, not a race), click OK → the
dialog must close and the wait books must balance. RED today by the doc-19 mechanism,
6/6 identical (`closed=false dialogs=1 refused-resumes=1`); goes green at D3. Marked
`test.fail()` so the battery stays runnable while red — when D3 lands, Playwright flags
"expected to fail but passed", forcing the flip to a plain green pin. A separate GREEN
"staging" test asserts the window is real, so the pin cannot rot into vacuity.
**Audit consequence recorded there:** the strand reproduces on a 2-object fixture — the
warm-load byte volume that dice-loads the 68/1 family is not an ingredient. Two
concurrent parks suffice, which is why D3 (waits on contexts) closes this class and D5
(main as a context) is not required for it.