The Lab was planned with a panel of running experiments — each with its hypothesis and stopping rule written down before it ran. There are none, because there is nobody to run them on. This is the true version of the same page: not what we intend to test, but what we tested and had to give up.
2026-09-28
KILLED BY MEASUREMENT
“A PreToolUse hook in a subagent's frontmatter guards that subagent's tool calls.”
- WHAT KILLED IT
- The red-team reviewer, asked to probe the read-only guard attached that way, ran a command that writes a file, and a 6-byte file was written with no denial. Whether the hook never ran or ran and failed, the probe cannot tell; either way it did not guard.
- WHAT HAPPENED INSTEAD
- The reviewer has no tool that writes; its tool list, which Claude Code enforces, is what makes it read-only. The hook stays attached and labelled as measured not to deny.
docs/handoff-2026-09-28.mdguarded by scripts/claude-agents.test.ts
2026-09-04
KILLED BY MEASUREMENT
“A published critics' ranking can set the spread over the clips the Prestige Test already plays.”
- WHAT KILLED IT
- Checked against the sources rather than from memory. Michael Tanner's ranked 21 Beethoven works for BBC Music Magazine contains 0 of this pool's works, and 4 of the 14 scored clips are Creative Commons artists no critic has ever ranked — so no enumerated critic ranking covers the repertoire at all.
- WHAT HAPPENED INSTEAD
- Critics supply the reference SCALE and never the spread over our items: the reading quotes what professionals do with their own degrees, and scores nobody against them.
docs/handoff-2026-09-04.mdguarded by src/content/comparison/scales.test.ts
2026-09-04
KILLED BY ARGUMENT
“The BBC Music Magazine list of fifteen Chopin works is a ranking we can use for spread.”
- WHAT KILLED IT
- It would have been the ideal source — 15 short piano works, all available from one CC0 complete-works set already licensed here, one performer throughout. Opening the article's own framing killed it: the works are numbered but not ordered by merit, with no countdown and no statement of greatness anywhere in it.
- WHAT HAPPENED INSTEAD
- Dropped rather than used. Reading rank order into a numbered list that does not claim one would have been inventing the ranking, which is the failure this page catalogues.
docs/handoff-2026-09-04.md
2026-09-04
KILLED BY MEASUREMENT
“Eleven of eleven degrees is a meaningful ceiling for the degrees-used count.”
- WHAT KILLED IT
- Rating a pool of this size at random lands on 8.606 distinct values of 11, cross-checked against a Monte Carlo draw rather than by restating the formula. Two simulated listeners with entirely different order stability both scored 11 of 11.
- WHAT HAPPENED INSTEAD
- The engine carries the null model and no surface prints the count without it, so a reader is never handed a bar that indifference already clears.
docs/handoff-2026-09-04.mdguarded by src/engine/comparison.test.ts
2026-09-04
KILLED BY ARGUMENT
“Public-domain tags on historical recordings can supply a pool of critic-ranked works.”
- WHAT KILLED IT
- Almost every freely tagged recording of these works is a transfer from 1927 to 1941 — Stokowski, Schnabel, Serkin, Toscanini. US sound recordings published from 1926 onward get 100 years from publication, so as of 2026 only recordings published before 1926 are public domain there. The earliest candidate misses by a single year, and one item states a rationale that applies to printed works rather than to recordings.
- WHAT HAPPENED INSTEAD
- Every historical transfer was refused and the pool was built from recordings somebody deliberately gave away instead — four self-published by the performer, one a US Government work, one a commissioned public-domain recording. A tag is not a licence.
docs/analytics/e17-spread.txtguarded by src/content/spread/ranking.test.ts
2026-09-04
KILLED BY MEASUREMENT
“The pool's bandwidth differences are explained by how many times its audio has been encoded.”
- WHAT KILLED IT
- Four of six sources were already lossy, so the clips were checked for codec damage — and the narrow clips are not the lossy-sourced ones. Three of the six end in an encoder-shaped cliff, at 8624, 15967 and 17786 Hz, and one of those three came from FLAC while the widest of all came from an mp3. The spread across the pool is 10002 Hz and source format does not predict it.
- WHAT HAPPENED INSTEAD
- The measurement stopped reporting a cutoff beside a lossy-generation count, which invited a causal reading the numbers do not support, and reports how abruptly each spectrum ends instead — the figure that separates an encoder from a room.
docs/analytics/e17-spread.txtguarded by scripts/clip-pipeline/spreadvalidate.test.ts
2026-09-04
KILLED BY MEASUREMENT
“The pool's brightness differences inflate the spread on the pairs the critic separated.”
- WHAT KILLED IT
- Expected, because the narrowest clip in the pool sits in three of the four critic-far pairs. Measured the other way: the mean bandwidth gap is 3758 Hz across the far pairs and 6498 Hz across the close ones, so the confound is concentrated where it makes a difference HARDER to find rather than easier.
- WHAT HAPPENED INSTEAD
- The confound is disclosed rather than removed — it cannot be removed without destroying the recordings — and its DIRECTION is guarded. If the gaps ever concentrate on the far pairs the pool would inflate its own answer, and the build stops.
docs/analytics/e17-spread.txtguarded by scripts/clip-pipeline/spreadvalidate.test.ts
2026-09-04
KILLED BY MEASUREMENT
“The top-scoring window of a recording is fit to put in front of a listener.”
- WHAT KILLED IT
- The scorer ranks windows by energy, dynamics and onset density, which says something is happening and nothing about whether it can be rated. Its first pick was 32% near-silent for the Violin Concerto and sat across a 4.30s gap between two Diabelli variations. The Diabelli then failed all twelve of its candidates, and passed at the twenty-third.
- WHAT HAPPENED INSTEAD
- The window is chosen by measurement rather than by score: the fitter renders down the ranked list until Layer A accepts one, and the search was widened to sixty candidates rather than the dead-air gate relaxed. Every rejection is kept, so a hard source is visible as one.
docs/analytics/e17-spread.txtguarded by scripts/clip-pipeline/spreadvalidate.test.ts
2026-09-02
KILLED BY MEASUREMENT
“A per-family delicacy arc is impossible.”
- WHAT KILLED IT
- It is expressible. The objection cited a floor of 40 trials per family, which answers a DIFFERENT question — whether one flaw may be called sharper than another within a single sitting. Comparing a family against itself across two sittings is easier, and the floor is reachable at about four of the family's five items.
- WHAT HAPPENED INSTEAD
- The ruling that kept delicacy out of the retest arc was re-taken on the corrected numbers, and it survived for a third reason: coarseness. Both of the reasons originally given for it were false.
docs/analytics/e14-arc-resolution.txtguarded by src/analytics/arc-resolution.test.ts
2026-09-02
KILLED BY MEASUREMENT
“Asking three flaw families at once is what makes a delicacy arc unsafe.”
- WHAT KILLED IT
- Measured at the floor actually derived, a person who did not change sees at least one family called moved 2.5% of the time — BELOW a single family's own 5%, not above it.
- WHAT HAPPENED INSTEAD
- The multiplicity argument is dead and is reported rather than asserted, because it does not support the case it was raised for.
docs/analytics/e14-arc-resolution.txtguarded by src/analytics/arc-resolution.test.ts
2026-08-26
KILLED BY ARGUMENT
“Green is the right third accent.”
- WHAT KILLED IT
- It reads as a pass mark, and the Threshold Test issues no verdict at all — so the colour would have announced a judgment the instrument refuses to make.
- WHAT HAPPENED INSTEAD
- The third instrument took a colour that carries no verdict.
docs/handoff-2026-08-26.md
2026-08-25
KILLED BY MEASUREMENT
“A speech detector can gate this.”
“An absolute speech-detection threshold is viable.”
- WHAT KILLED IT
- Six features measured against real audio; five inverted or overlapped. Only one separates at all, and it cannot catch a short announcement over busy music — a clean orchestral clip measures 0.709 against a 0.673 mixture, so the classes overlap and no threshold divides them.
- WHAT HAPPENED INSTEAD
- The gate that ships is positional rather than acoustic, and its blind spot is asserted as a passing test rather than hoped away.
docs/analytics/e7-speech-gate.txtdocs/handoff-2026-08-26.mdguarded by scripts/clip-pipeline/speech.test.ts
2026-08-25
KILLED BY MEASUREMENT
“A within-track anomaly score finds the announcer.”
“A within-track anomaly finds the announcer.”
- WHAT KILLED IT
- The one window known to contain an announcer ranks 4th of 24, below three windows containing no speech at all.
- WHAT HAPPENED INSTEAD
- Ranking by strangeness does not find speech. Recorded so nobody pays for it twice.
docs/analytics/e7-speech-gate.txtdocs/handoff-2026-08-25.mdguarded by scripts/clip-pipeline/speech.test.ts
2026-08-25
KILLED BY ARGUMENT
“The obvious fix to the on pb4 jargon is to name the recording.”
- WHAT KILLED IT
- It would have printed the Prestige Test's answers on a public share card.
- WHAT HAPPENED INSTEAD
- The jargon was removed a different way. The obvious fix to a copy problem can be a disclosure problem.
docs/handoff-2026-08-25.md
2026-08-22
KILLED BY MEASUREMENT
“The 8th prestige clip makes the test worse.”
- WHAT KILLED IT
- An artifact of redrawing item parameters per length. Under a nested design it is 89.1% → 89.2% — flat.
- WHAT HAPPENED INSTEAD
- A finding that disappears when the design is fixed was never a finding.
docs/handoff-2026-08-22.md
2026-08-22
KILLED BY MEASUREMENT
“Per-person drift sets the prestige precision floor.”
- WHAT KILLED IT
- Drift on and drift off are identical to 2 decimal places. The headline measures shift toward the label, and the pool's up/down balance cancels drift out entirely.
- WHAT HAPPENED INSTEAD
- Kept as a regression test rather than deleted, so the cancellation stays true.
docs/handoff-2026-08-22.md
2026-08-22
KILLED BY ARGUMENT
“Information per minute is the right criterion for a fixed-form test.”
- WHAT KILLED IT
- It is constant by construction — every length scores identically.
- WHAT HAPPENED INSTEAD
- Length was derived from the CLAIM the test needs to support instead, which is what produced the shipped 14-clip pool.
docs/handoff-2026-08-22.md
2026-08-22
KILLED BY MEASUREMENT
“Fifteen delicacy trials can support a tiered verdict.”
- WHAT KILLED IT
- No non-degenerate band count clears the bar. Six tiers place a person in the right band 30.5% of the time; even the coarsest real split, two bands, reaches only 70.2% against the prestige verdict's 89.3%.
- WHAT HAPPENED INSTEAD
- No tier name is printed. The instrument reports a detection band and refuses the rank — the same ruling the staircase already carried.
docs/analytics/e6-delicacy-tiers.txt
2026-08-22
KILLED BY MEASUREMENT
“The /vs question renders at 1.11:1.”
- WHAT KILLED IT
- The 1.11:1 came from my own probe, which read the flat background colour alone — but the field behind that text is painted as a gradient, so the probe was measuring a colour that is never on screen. The page was fine all along.
- WHAT HAPPENED INSTEAD
- Contrast is measured from rendered pixels rather than from CSS. Measure the instrument before believing the measurement.
docs/handoff-2026-08-22.mddocs/analytics/e7-card-contrast.txt
2026-08-22
KILLED BY MEASUREMENT
“The bias card overflows.”
“The bias card overflows / +20% breaks the width model.”
- WHAT KILLED IT
- Measured: it does not, and neither does the delicacy card. Its hero is a fixed font size and never consults the width model at all. Only the threshold card overflowed, because its hero is 150px against their 76px.
- WHAT HAPPENED INSTEAD
- The fix went to the card that was actually broken.
docs/handoff-2026-08-26.md
2026-08-20
KILLED BY MEASUREMENT
“Pitch level 3.1 fails the measurability floor on 8 of 9 windows.”
“The 3-cent pitch floor applies to the measured p95.”
- WHAT KILLED IT
- My own gate's unit mismatch, caught by the real run. The floor is a parameter-domain quantity; a ramp peaks at 0.95 of its parameter, so level 3.1 predicts 2.94 cents — under a 3-cent measurement floor by construction. Eight of nine windows were flagged by arithmetic, not by anything in the audio.
- WHAT HAPPENED INSTEAD
- Floors are checked on the level rather than the measurement, and both families carry an evidence field read from the gate that interrogates the audio.
docs/handoff-2026-08-20.mddocs/handoff-2026-08-18b.md
2026-08-20
KILLED BY MEASUREMENT
“lossyStepCollapses is superseded by the monotonicity floor.”
- WHAT KILLED IT
- Monotone means increasing; the level ratio means increasing ENOUGH to be two levels. 4 of 174 adjacent steps rise by less than 1.15x, the worst by 1.053x.
- WHAT HAPPENED INSTEAD
- Wired into the measured limits and reported rather than gated.
docs/handoff-2026-08-20.md
2026-08-20
KILLED BY MEASUREMENT
“Lossy gets a third of the variety the other families do.”
- WHAT KILLED IT
- True only while the family was locked to one recording's 3 windows. Once every source got 9 of its own, the worst repeat fell to 2 — matching the pooled families exactly, with only one recording still worse at 3.
- WHAT HAPPENED INSTEAD
- The complaint was about a configuration, not about the family.
docs/handoff-2026-08-20.md
2026-08-20
KILLED BY MEASUREMENT
“pb4 is the best-behaved lossy source.”
- WHAT KILLED IT
- True of 1 of its curves and false of the source: across all 9 of its windows it is the WORST at the gentle end, not the best.
- WHAT HAPPENED INSTEAD
- One window's curve does not describe a recording. Sources are judged across windows.
docs/handoff-2026-08-20.md
2026-08-20
KILLED BY MEASUREMENT
“A width-based stopping rule is the principled version of a session budget.”
- WHAT KILLED IT
- Built, measured, deleted. One flat window fired spuriously — the estimate tightened while the session took LONGER — and two flat windows in a row never fired at all, running every session to the 80-trial ceiling.
- WHAT HAPPENED INSTEAD
- The reversal count is already an information criterion, and it beat interval width sampled every eight trials. The width rule was removed.
docs/handoff-2026-08-20b.md
2026-08-20
KILLED BY MEASUREMENT
“The inconclusive guard and the slope prior can be fixed to raise the answer rate.”
- WHAT KILLED IT
- It looked excellent — answer rates of 76–100% — and a pre-registered coverage assertion caught it: a genuinely shallow listener dropped to 80.8% coverage against a 90% floor. The interval had started lying.
- WHAT HAPPENED INSTEAD
- Both changes fully reverted. Coverage and answer rate trade off monotonically, and only the original setting clears the bar.
docs/handoff-2026-08-20b.md
2026-08-20
KILLED BY MEASUREMENT
“Reversing the ladder makes the staircase run away to the wrong end.”
- WHAT KILLED IT
- It does not. Reversing turns 2-down/1-up into an effective 2-up/1-down, which still converges — onto a different point on the curve.
- WHAT HAPPENED INSTEAD
- The sampler was fine and the damage was entirely at the report, where the two bounds swap and the sentence a person reads comes out exactly inverted. The bug was in the wrong place from the start.
docs/handoff-2026-08-20b.md
2026-08-20
KILLED BY MEASUREMENT
“clipFor only needs to be a file lookup.”
- WHAT KILLED IT
- 20 rendered clips on two deliberately excluded windows were freely reachable, silently undoing the exclusion.
- WHAT HAPPENED INSTEAD
- A lookup that can reach an excluded item is not a lookup, it is a hole.
docs/handoff-2026-08-20b.md
2026-08-18
KILLED BY MEASUREMENT
“A single per-window multiplier will absorb the timing offset.”
- WHAT KILLED IT
- One window would have calibrated cleanly (residual −8% to +4%); another would not (−15% to +16%). Checked before anything was built on it.
- WHAT HAPPENED INSTEAD
- No global correction. Each window is measured on its own terms.
docs/handoff-2026-08-18.md
2026-08-18
KILLED BY MEASUREMENT
“Per-level calibration converges.”
- WHAT KILLED IT
- It has no root to find. At one level the search oscillated 15 → 14 → 11 → 14 → 11 → 14 ms over six renders, and a dense sweep showed measured drift FALLING three times as the requested drift rose.
- WHAT HAPPENED INSTEAD
- Calibration is off by default; its precondition is false.
docs/handoff-2026-08-18.md
2026-08-18
KILLED BY MEASUREMENT
“rungs.mjs's timing ladder renders within 8%.”
- WHAT KILLED IT
- That was a property of one random seed, not of the ladder. Across five seeds on a single window the spread is 0.72–1.30x.
- WHAT HAPPENED INSTEAD
- A tolerance measured on one seed is not a tolerance. Every ladder claim is now checked across seeds.
docs/handoff-2026-08-18.md
2026-08-18
KILLED BY MEASUREMENT
“pb8@75s and pb6@75s may be fading out.”
- WHAT KILLED IT
- Both measure dead air 0.00s and quiet fraction 0.0%, across their reference and every clip rendered from them. One does end at 86% of its recording and is still clean; the other sits at 43% and was never near the end.
- WHAT HAPPENED INSTEAD
- The suspicion was wrong; the real fault was in the correlator.
docs/handoff-2026-08-18b.md
2026-08-15
KILLED BY ARGUMENT
“The bias tracks step-size-over-slope.”
- WHAT KILLED IT
- It was pattern-matching: two terms happened to move while a third held still. A fine ladder is still biased, so the ratio explains nothing.
- WHAT HAPPENED INSTEAD
- The bias was decomposed properly instead, which is what found the real term.
docs/handoff-2026-08-15b.md
2026-08-15
KILLED BY MEASUREMENT
“The N3 ladder-end guard's censoring caused the timing bias.”
- WHAT KILLED IT
- The guard is innocent — its contribution is at most 0.021. The cause is a different term worth +0.499: a listener sitting near the ladder's 12.5 ms floor, where truncation shoves the reversal mean up.
- WHAT HAPPENED INSTEAD
- The guard was kept. Blaming it would have removed a protection and left the bias in place.
docs/handoff-2026-08-15b.md