Files
Sylpheed/docs/port/f5-f6-ready-for-human-check.md
Sylpheed port agent 50be9578c5 recover: the F5/F6 port work from the deleted auto/port-p6-audio
A snapshot of the non-game files as of 0148cb8 ("port: F5/F6 hand-off --
one-minute human checks, and a refutation attempt that survived",
2026-09-04), the tip of auto/port-p6-audio. The branch was deleted from the
server on 2026-09-17 during the consolidation cleanup; issue #7 asks for
this work as a reviewable PR, so it is recovered here before the commits
are garbage collected.

Contents: the 84 files the branch changed relative to its fork point
b305aa4, which is this commit's parent. The tree is therefore 0148cb8's
tree with the 854 exported game assets left out -- export-probe/,
export-probe2/, three .wav renders of game audio and adv-v2-screenlog.tsv.
Game data stays out of git; the exporter regenerates those from the disc.
docs/port/DECISIONS.md still refers to them by name.

Not recovered: the branch's own 366 commits. Keeping them would make those
assets reachable again, so this is one snapshot instead. The original
commits stay unreferenced in the server's object store, and in this clone
under the local branch archive/port-p6-audio, until either is garbage
collected.

Refs #7. The OPTIONS work that issue #6 asks for is a subset of this
branch, also recovered as recover/options-menu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 20:48:47 +02:00

4.3 KiB
Raw Blame History

F5 and F6 — ready for a human check

Why this file exists. PROTOCOL's "work in units a human can check in a minute" asks for the question, what to look at, and what pass/fail mean, written down in one place. The investigation for F5 and F6 is long and lives in f6-what-starts-the-sweep.md, plate-arrives-on-time-but-never-blinks.md and the commit history (ac1371c, af10a2e, 2b802e0, 94d761e, 1628f0e, edf8979). Nobody should have to read that to know what to watch.

Both are implemented, verified on film (not stills), and out-of-sample tested — a fresh boot the predictions had no hand in producing matched on every figure the port actually relies on (edf8979, docs/re/f6-out-of-sample-RESULT.md). Neither is signed off by a person yet. That is the ask.

F6 — the glow no longer starts before the plate

One sentence: watch a boot; the traveling glow along the blue lines should be invisible until the PRESS Ⓐ plate is on its way in, not visible from the first logo frame.

What changed: the renderer was discarding the parent element's own alpha ramp (0:0 70:0 100:255 238:255 250:0) when drawing the glow's nested leaf. The glow now only draws once the parent has faded in — invisible to t=70, full by t=100 — instead of being visible from t=0.

Pass: on a fresh boot, the sweeping glow is not visible during the two publisher/developer splash-adjacent early frames of the title build-in; it fades in alongside (not before) the rest of the plate's approach. Fail: the glow is visible streaking across the screen before anything else on the title has appeared.

Not covered by this unit:

  • The glow's speed, path, or whether it should be one streak or several — Unit e in f6-what-starts-the-sweep.md flags that the port draws exactly two full-height streaks and the human's original report described something that could be a population of smaller lights on individual PCB traces. That is unresolved and is a different question from when it starts.
  • Any fixed "lead time" between the glow and the plate — that number turned out not to be reproducible (0.09960.141 across three captures) and nothing is authored against it. F6 as originally reported ("starts too early") does not depend on that number; the fix is the alpha gate above.

F5 — Ⓐ during the build-in snaps, it does not speed up

One sentence: during the title build-in (after the boot logos, before the PRESS Ⓐ plate normally appears), press Ⓐ once and watch the wordmark — it should cut straight to its finished pose in one frame, not animate faster toward it.

What changed: nothing new to watch for — this is a confirmation ask. The port's existing behavior (an instant cut, both light-sweep leaves restarting at their own declared opening pose in the same frame) was verified by frame-by-frame reading of submitted alpha values, which is the only instrument that can actually tell a one-frame cut from a several-frame acceleration — the human said themselves they could not tell by eye.

Pass: the artwork looks the same as the port's current behavior — an instant jump, not a visible speed-up. Fail: the artwork clearly animates faster (rather than cutting) toward the finished pose, which would mean the July measurement should be revisited.

Not covered: the exact frame Ⓐ targets, which is established as undecodable-with-no-observable-consequence (docs/re/f5-snap-target-undecodable-with-reach.md / the boot.gd comment above settle_time()) — there is a window [160, 238) where any value in it renders identically forever, so nothing is riding on the literal.

What the port did this iteration

Nothing changed in code. This iteration re-read the state left by prior iterations, ran tools/port/check-all to confirm nothing regressed, and attempted to refute the F6 census claim ("the port renders exactly two moving lights, nothing else on the title declares positional travel") by re-deriving it independently from export/screens/title/title.json — every top-level element and every nested .rat leaf. It survived: only ptloop01pteff03 and ptloop02pteff03a declare any positional travel at all; no other element or leaf has a pos keyframe that moves.