port: sweep my own tool headers after theirs -- two hits, both in verify-dwell

Their audit found one defect in sixteen commands and their point that doing one
and stopping is the failure applies to me: I had fixed verify-screen and
verify-capture and gone no further.

Hit 1: verify-dwell built its target as oracle span + the GAME's black gap and
scored the port against it, correct only while the port inserted that gap. It does
not -- black_hold_units went to 0. On publisher_logo the port runs 0.131 s below
the unslacked target, absorbed into an 'agrees' by 0.15 s of slack that is larger
than the omission it hides. Hold now read from authored/timing.json; the game's
gap printed as its own term.

Hit 2: the tool carried '4 presented frames at 2.284 units/frame'. The number is
right but it is the disc used as its own clock on ONE capture that ran at 13.1 fps
against ~28 elsewhere. Stated bare it reads as a general rate and would contradict
Q1's 2 units per rendered frame, a different quantity at normal speed. The
derivation was in DECISIONS.md; the tool inherited the value alone -- exactly
their defect, and their 'print the population beside the number' fix applies
unmodified.

Not found elsewhere: check-capture's percentages all name their population;
check-claims, check-modding, index-decisions and strip-padding assert no measured
quantities.

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-30 17:52:03 +00:00
parent edad692500
commit 02ab62e28d
2 changed files with 56 additions and 1 deletions

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 -->
194 sections. Search this before re-deriving anything.
195 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)
@@ -205,6 +205,7 @@ dies, which is what this file is for.
* [The fifth member of the family is mine: "drawn" is not "visible"](#the-fifth-member-of-the-family-is-mine-drawn-is-not-visible)
* [Auditing `--black`, and a rule that falls out of it](#auditing---black-and-a-rule-that-falls-out-of-it)
* [🔴 CORRECTION: my backdrop predicate is exact in `GP_TITLE` and its reading was wrong](#correction-my-backdrop-predicate-is-exact-in-gp_title-and-its-reading-was-wrong)
* [Sweeping my own `--help` and headers, after theirs](#sweeping-my-own---help-and-headers-after-theirs)
<!-- /INDEX -->
## P0 — the exporter, 2026-08-28
@@ -10949,3 +10950,50 @@ after fixing it once.
✅ Within `GP_TITLE` the rule is exact, and `--black` for those twelve screens is
now justified **from the file** rather than assumed — which was the original point
and is unaffected.
## Sweeping my own `--help` and headers, after theirs
Their audit found one defect in sixteen commands in about ten minutes, and their
framing of why doing one and stopping is the wrong move — *"a rule written down is
not a rule applied"* — applies to me: I had fixed `verify-screen` and
`verify-capture` and gone no further. Swept the rest.
### Hit 1 — `verify-dwell` compared the port against the *game's* gap
The tool built its target as **oracle span + the game's black gap** (0.1140.190 s)
and scored the port against it. That was right while the port inserted that gap.
🔴 **It does not**: `black_hold_units` went to 0 three iterations ago.
So the port should run short by the gap, and on `publisher_logo` it does —
**0.131 s below the unslacked target**, absorbed into an "agrees" by the 0.15 s
wall-clock slack, which is *larger than the omission it was hiding*. **A verdict
that passes because the slack exceeds a known defect is not a verdict.** The hold
is now read from `authored/timing.json` so it cannot drift, and the game's gap is
printed as its own term with the slack comparison stated.
### Hit 2 — a rate that is right, with its population missing
`verify-dwell` carried *"4 presented frames at **2.284 units/frame** = 9.1 units"*.
✅ The number is correct. ⚠️ It is the disc used as its own clock **on one
capture**, which ran at **13.1 fps** against ~28 elsewhere. Stated bare in a tool,
it reads as a general rate — and it would then contradict HANDOFF Q1's **2 units
per rendered frame**, which is a different quantity at normal speed. The
derivation was in `DECISIONS.md`; the tool inherited the number without it.
📌 **Exactly their defect**: the doc states its population precisely, the tool
inherits the value alone. Their fix generalises without modification — *print the
population beside the number* — and I did not have to invent anything either.
### What the sweep did not find
The percentages in `check-capture` all name what they are percentages of (frames
in a named capture, with the control rows beside them). `check-claims`,
`check-modding`, `index-decisions` and `strip-padding` assert no measured
quantities. So: **two hits across the tool set, both in one tool, both of the two
types now catalogued.**
⚠️ And their warning is one I cannot fully clear: *any figure computed before the
record-layout fix may have a population that moved, not just a value.* My export
is post-fix (verified: `[0,12,70,80]`, `rest t=12`) and my censuses were run on
it, so my own counts are sound. **Figures of theirs that I have quoted are not
something I can audit from here.**

View File

@@ -47,6 +47,13 @@ out = sys.argv[1]
INTERVAL = float(os.environ.get("INTERVAL", "0.25"))
# The boot's black gap, measured in the DRAW STREAM (4 presented frames at
# 2.284 units/frame = 9.1 units), not from luminance -- luminance cannot separate
#
# ⚠️ 2.284 IS NOT A GENERAL RATE AND THIS LINE USED TO READ AS IF IT WERE.
# It is the disc used as its own clock ON ONE CAPTURE, which ran at 13.1 fps
# against ~28 elsewhere: `palogo_sqex` declares alpha >= 1 for 239.8 units and
# was drawn in 105 frames of that run. Correct for converting THAT run's frame
# count; not a constant, and not HANDOFF Q1's 2 units per rendered frame, which
# is a different quantity measured at normal speed. See DECISIONS.md.
# the outgoing fade's tail from true black. The +/-1 frame range is 6.9-11.4
# units = 0.114-0.190 s. HANDOFF Q7's luminance figure of 0.17-0.23 s overlaps
# only at the top, and the draw-stream number is the one to use.