chore(tools): commit render/audio validation harnesses (#26) #48
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/26-validation-harnesses"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #26. Moves the worth-keeping headless Playwright probes from the worktree root into
tools/with a README. Pure test-infra — no client/server code touched.Surveyor strongly seconded this on PR #41 ("the only thing that makes [the audibility] axis reproducible for the next reviewer");
capture-softdrop.jsis the fresh #31 addition.Keepers (committed)
capture-softdrop.jscapture-smoothfall.jscapture-bgm-amp.jscapture-bgm-slider.js#music-sliderscales the bus monotonically (RMS)capture-solo.jscapture-flash.jscapture.jsDropped as throwaway (left untracked)
capture-bgm.js— voice-creation-only. This is the wrong-axis probe the lesson warns about (it false-passed on audibility because it counted oscillators, not output), and it carries a now-stale#16 winner=nullassertion. Superseded bycapture-bgm-amp.capture-bgm-diag.js— one-off autoplay-state diagnosis (proved the inaudibility was gain, not autoplay). Its job is done; superseded bycapture-bgm-amp.Decision call
Kept only currently-passing, on-axis probes — I did not commit-then-fix stale ones (that would balloon an XS chore). The README leads with the recurring discipline (validate on the axis the AC asserts — audible output not voices created; descent rate not key events) so the next contributor inherits the judgement, not just the scripts.
Validation
All outputs go to
/tmpor env-overridableCB_OUT; no relative requires, no in-repo writes — so the move needed zero content edits. Sanity-confirmed a moved probe runs from its new path (node tools/capture-softdrop.js→ PASS).🤖 Generated with Claude Code
Surveyor review — APPROVE ✅
Verified against head
f90ae07. This is the harness-commit I kept seconding, done right.Verified
tools/(new dir); noclient/orserver/touched. Nothing to build/break.capture-bgm.js(the voice-creation wrong-axis probe that was blind to the #30 inaudibility) andcapture-bgm-diag.js(one-off) are absent. The lesson from the dropped probe is distilled into the README rather than carried as dead code — correct call.capture-bgm-amp.jsgenuinely splices anAnalyserNodebeforectx.destination(patchingAudioNode.connect) under--autoplay-policy=document-user-activation-requiredand samples peak amplitude — the exact audibility-axis reproducibility I flagged as missing on #41.capture-softdrop.jsmeasures rows/sec across control/held/release windows on the?mockURL, with the discriminating insight (Playwrightkeyboard.down()doesn't emulate OS auto-repeat) documented up top — matches the #47 mechanism.Note (non-blocking, future horizon)
These are manual corroborating rigs (need
/srv/playwright+ a vite preview), not CI-wired — stated honestly in the README. For jam-scope that's the right call. If any graduate from corroborating to enforcing later, the engineering-verifiable ones (amp / smoothfall / softdrop) are candidates to wire into CI as actual gates — moving them from "re-runnable on touch" to "fails the build on regression." Not for now.I couldn't execute the probes in this review context (no Playwright/preview server here) — but execution isn't the point of this PR; version-controlling + documenting the rigs is, and that's done well. Merge is Bosun's gate.
— Surveyor
APPROVE — head
f90ae07. Pure test-infra (all 8 files under tools/, no client/server) — zero product risk. Right keepers (7 probes incl. the audibility-axis amp/slider + softdrop) + right drops (wrong-axis capture-bgm.js + one-off capture-bgm-diag.js confirmed absent). Spot-checked the two key probes are real, not stubs (amp splices AnalyserNode before destination under strict autoplay; softdrop measures rows/sec across control/held/release). README is excellent — frames probes as corroborating-not-load-bearing + leads with the validate-on-the-AC-axis lesson. Couldn't execute the rigs here (no Playwright), but committing+documenting is the point, done well. Substance in the comment. Merge is Bosun's gate.