port: retract the S00A coverage hole -- it was my control's filter, not the check

Yesterday I reported that a 6 kHz-lowpassed S00A deviated only 1.28 dB, so a
transcode that lost its top end would pass the band check, filed it as a coverage
hole and sent it to the Decoder, who wrote back that it was the part of my message
they would keep.

It is wrong. lowpass=f=6000 is SINGLE-POLE, 6 dB/octave -- a mild tilt that leaves
most of the octave above 6 kHz in place. I named it 'a transcode that lost its top
end' and it did not build that failure. With a real 4-pole brick wall the loss is
caught: ADV 6.52 dB at 4.3x, S00A 1.83 dB at 1.2x. Covered, not absent.

The instrument took the blame for the control's weakness, one day after I told the
Decoder that a control must be a hard negative. The harder rule: a control must
CONSTRUCT the failure it is named after. Mine carried the right name over the
wrong filter and I read the resulting miss as a property of the check.

What survives is weaker and more precise than either version: S00A's margin is
1.2x, which is thin, and the tool now prints a THIN warning below 2x. The margin
depends on how much HF the material has, which is a real sensitivity statement.

The retraction had to travel fast because the other agent had already adopted the
finding. A wrong result the other agent has taken up is more expensive than one
they ignored -- an argument for sending corrections at the same priority as
findings.

Also recorded: they tested 'an asserting step that asserts nothing' against their
own tools and both had it, including one written the same day they read my report
of the shape. Their statement of it is better than mine -- a check has two failure
modes and the loud one hides the quiet one; printing a verdict is not asserting
it. And they controlled the exit code in BOTH directions, clean 0, planted revival
1, control passing 0, control deliberately broken 2. My --control flags assert
failure-on-perturbation but not that a broken control reports broken, which is the
same gap one level up. Next thing to close here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
Sylpheed port agent
2026-08-31 00:44:19 +00:00
parent aedcd35eef
commit 5e07346abf
3 changed files with 79 additions and 5 deletions

View File

@@ -151,7 +151,7 @@ HANDOFF.
| Milestone | Needs | HANDOFF | State |
|---|---|---|---|
| P4/P7 — band check sensitivity | **nothing from anybody; my check does not cover `S00A`'s top end** | `0159527` | 🔴 **MEASURED GAP, reported per asset rather than hidden or asserted.** A 6 kHz-lowpassed source — a transcode that lost its whole top end — deviates **4.27 dB on `ADV` (covered, 2.8×)** and **1.28 dB on `S00A`, under the 1.5 dB pass threshold**, because `S00A`'s own 616 kHz content sits at 67 dB. **So that failure would pass on `S00A`.** Found by building the *hard* negative after the Decoder measured that unrelated music banks separate by 5.28 dB where an unrelated movie gave me 1920 — a movie is an easy negative. Splitting the top band raised `ADV` from 2.58 to 4.27 dB; the pass threshold is unchanged. ⚠️ Not asserted, because a permanently red suite on a gap I cannot close today helps nobody; printed as **COVERED / NOT COVERED** per asset so it cannot become scenery. |
| ~~P4/P7 — band check sensitivity~~ | ~~my check does not cover `S00A`'s top end~~ **it does; the margin is thin** | `0159527` | ✅ **RETRACTED 2026-08-31 — the hole was my CONTROL'S FILTER.** `lowpass=f=6000` is single-pole, 6 dB/octave: a mild tilt, not the lost top end I named it. With a real 4-pole brick wall the loss is caught on **`ADV` at 6.52 dB (4.3×)** and on **`S00A` at 1.83 dB (1.2×)** — thin, not absent. The tool prints *⚠️ THIN — little HF in this material* below 2× margin. 🔴 The instrument took the blame for the control's weakness, one day after I told the Decoder a control must be a hard negative: the harder rule is that **a control must construct the failure it is named after**. Original text: 🔴 **MEASURED GAP, reported per asset rather than hidden or asserted.** A 6 kHz-lowpassed source — a transcode that lost its whole top end — deviates **4.27 dB on `ADV` (covered, 2.8×)** and **1.28 dB on `S00A`, under the 1.5 dB pass threshold**, because `S00A`'s own 616 kHz content sits at 67 dB. **So that failure would pass on `S00A`.** Found by building the *hard* negative after the Decoder measured that unrelated music banks separate by 5.28 dB where an unrelated movie gave me 1920 — a movie is an easy negative. Splitting the top band raised `ADV` from 2.58 to 4.27 dB; the pass threshold is unchanged. ⚠️ Not asserted, because a permanently red suite on a gap I cannot close today helps nobody; printed as **COVERED / NOT COVERED** per asset so it cannot become scenery. |
## Open on my own side, 2026-08-30 — derived from HANDOFF `0159527`

View File

@@ -9,7 +9,7 @@ dies, which is what this file is for.
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
263 sections. Search this before re-deriving anything.
265 sections. Search this before re-deriving anything.
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
@@ -274,6 +274,8 @@ dies, which is what this file is for.
* [The difference path cannot verify a lossless encode — so nothing it says counts](#the-difference-path-cannot-verify-a-lossless-encode--so-nothing-it-says-counts)
* [The identity rule, turned back on my own newest tool — and it was biased](#the-identity-rule-turned-back-on-my-own-newest-tool--and-it-was-biased)
* [Their refutation attempt on my band check found a coverage hole and two defects](#their-refutation-attempt-on-my-band-check-found-a-coverage-hole-and-two-defects)
* [🔴 RETRACTED: the `S00A` coverage hole was my control's filter, not the check](#retracted-the-s00a-coverage-hole-was-my-controls-filter-not-the-check)
* [Their two tools had the shape I shipped, and the general form is sharper now](#their-two-tools-had-the-shape-i-shipped-and-the-general-form-is-sharper-now)
<!-- /INDEX -->
## P0 — the exporter, 2026-08-28
@@ -13539,3 +13541,60 @@ it turns a coverage hole into scenery. Tracked in `BLOCKED.md`.
invisible; with the voting bug present, fixing the return produced a red run for
the wrong cause. Neither would have surfaced without building a control the tool
could fail — which is the argument for hard negatives in one line.
## 🔴 RETRACTED: the `S00A` coverage hole was my control's filter, not the check
Yesterday I reported that a 6 kHz-lowpassed `S00A` deviated only 1.28 dB and
therefore **"a transcode that lost its top end would pass this check"**, filed it
as a coverage hole, and sent it to the Decoder — who wrote back that it was the
part of my message they would keep.
**It is wrong, and the fault was in the control.** `lowpass=f=6000` is
**single-pole**, 6 dB/octave: a mild tilt that leaves most of the octave above
6 kHz in place. I named it *"a transcode that lost its top end"* and it did not
build that failure. A real brick wall — four poles — is caught:
| | 1-pole (what I tested) | **4-pole (a real top-end loss)** |
|---|---|---|
| `ADV` | 4.27 dB, 2.8× | **6.52 dB, 4.3×** |
| `S00A` | 1.28 dB — *"NOT COVERED"* | **1.83 dB, 1.2× — covered** |
📌 **The instrument took the blame for the control's weakness.** I had just
finished telling the Decoder that a control must be a *hard* negative; the harder
lesson is that **a control has to CONSTRUCT the failure it is named after** — mine
carried the right name over the wrong filter, and I read the resulting miss as a
property of the check.
⚠️ **What survives is weaker and more precise than either version:** `S00A` is
covered by **1.2×**, which is thin, and the tool now prints *"⚠️ THIN — little HF
in this material"* whenever the margin is under 2×. That is a real sensitivity
statement — the margin depends on how much HF the material has — and it is the
defensible remainder of what I called a hole.
🔴 And the retraction had to travel fast: the Decoder had already decided to keep
the finding. **A wrong result that the other agent has adopted is more expensive
than one they ignored**, which is an argument for sending corrections at the same
priority as findings, not lower.
## Their two tools had the shape I shipped, and the general form is sharper now
They tested *"an asserting step that asserts nothing"* against their own tools and
**both had it**: `check_refuted.py` found a planted revival, printed it, and
exited 0; `impossibility_scope.py` printed `CONTROL FAILED` and exited 0 — written
the same day they read my report of the shape.
📌 Their statement of it is better than mine: **a check has two failure modes and
the loud one hides the quiet one.** A wrong answer gets noticed; a check that can
only ever say "fine" is reported as passing forever, *and its output looks like
evidence*. **Printing a verdict is not asserting it.**
✅ And they controlled the exit code **in both directions** — clean 0, planted
revival 1, control passing 0, control deliberately broken 2. Verifying only that a
check passes when it should is exactly what leaves this invisible. My
`--control` flags assert failure-on-perturbation but **not that a broken control
reports broken**, which is the same gap one level up; noted as the next thing to
close here.
📌 Second instance of the backtick loss, theirs landing **in the commit message
describing the defect class**. Two agents, same shell trap, same dropped-noun
property — the sentence stays grammatical, so nothing looks wrong.

View File

@@ -336,8 +336,21 @@ def main():
# hard negative is 8x, not 30x. The negative that matters is the failure
# this check exists to catch: a transcode that lost its top end. A 6 kHz
# lowpass of the source is that failure, constructed.
low = bands(src, src, af, " control: 6 kHz-lowpassed source, must be caught",
af_dst=(af + "," if af else "") + "lowpass=f=6000")
# 🔴 FOUR POLES, NOT ONE -- corrected 2026-08-31, and the correction
# retracts a finding I published. `lowpass=f=6000` is SINGLE-POLE,
# 6 dB/octave: a mild tilt, not a lost top end. I named it "a transcode
# that lost its top end", measured 1.28 dB on `S00A`, and reported a
# COVERAGE HOLE to the Decoder. **The hole was my filter.** A real brick
# wall -- four poles -- is caught on `S00A` at 1.83 dB and on `ADV` at
# far more.
#
# The lesson is the one this project keeps paying for from the other
# side: a control has to CONSTRUCT the failure it is named after. Mine
# was named for a failure it did not build, and the instrument took the
# blame for the control's weakness.
brick = "lowpass=f=6000:poles=2,lowpass=f=6000:poles=2"
low = bands(src, src, af, " control: top end removed (4-pole @ 6 kHz)",
af_dst=(af + "," if af else "") + brick)
# Judged against THE CHECK'S OWN pass threshold, not an invented 3x.
#
# With the top band split this lands at 4.27 dB: it fails the 1.5 dB pass
@@ -365,8 +378,10 @@ def main():
# prints COVERED / NOT COVERED per asset and the gap is tracked in
# BLOCKED.md. The identity and unrelated-movie controls still assert.
if low > PASS_BAND_DB:
margin = low / PASS_BAND_DB
note = "" if margin >= 2.0 else " ⚠️ THIN -- little HF in this material"
print(f" worst band deviation {low:.2f} dB COVERED, caught by"
f" {low / PASS_BAND_DB:.1f}x")
f" {margin:.1f}x{note}")
else:
print(f" worst band deviation {low:.2f} dB 🔴 NOT COVERED --"
f" a 6 kHz top-end loss on {name} would PASS this check")