port: my triage under-counted, and three uncited measurements surfaced behind it

Their audit found 9 of 57 HANDOFF sections asserting measured or
undecodable-with-reach citing nothing openable, 84%, including one they had sent
me: '(B) from EXTRAS DOES go black', delivered as an inline frame table while
data/fade-four-transitions.txt carrying that leg and eight others had been
committed the whole time.

It had already landed here uncited. timing.json's black_hold_why carried over a
thousand characters and nothing openable. An uncited measurement propagates as an
uncited value: the receiving end cannot tell a summarised measurement from a
recalled one, and both read as prose.

And my triage had missed it along with seven others. Last iteration I reported 13
provenance claims among the 52 and labelled them; the count was wrong because my
sibling match was literal, so black_hold_why did not match black_hold_units, nor
loop_start_why to loop_start_s, dwell_why to dwell_seconds, loop_leaf_why to
loop_leaf_on_screens. Eight more, all hidden by a suffix. It was 21 and I stated
13 confidently. All eight now labelled from their own text; coverage 16 to 38.

Three uncited MEASURED fields in one file -- loop_why at 1400 chars, loop_start_why
at 1041, voice/presentation_why at 1402 and authored -- and all three were
detailed rather than sloppy. The detail is what made them look sourced: a why that
recounts a measurement carefully reads as well-evidenced because it is careful.
That is the quality-correlated blind spot one level down -- not 'well-evidenced
values never declared themselves' but 'well-argued prose never cited anything'.
The authored one now cites the open question it stands in for.

A false positive in my own extractor surfaced in the same pass: presentation_why
was reported DANGLING on 1118268 and 1171516, byte counts read as commit shas
because they are seven digits of valid hex characters. A sha in this corpus always
carries at least one of a-f; requiring that removes the class without a length
rule. A wrong verdict for a fabricated reason, the fourth of that family and this
time in the auditor.

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 03:38:57 +00:00
parent 6f8211a560
commit 98d02e7c24
6 changed files with 105 additions and 9 deletions

View File

@@ -130,8 +130,19 @@
"value was not guessable -- linear back-extrapolation said 9-13 s and linearity",
"is refuted by a 4.4 % rate variation within one stream. What made the wait",
"cheap was that the field EXISTED and the `-ss`/`-t` ordering had been proved",
"with a stand-in value, so arriving at 9.44 was a one-value edit."
"with a stand-in value, so arriving at 9.44 was a one-value edit.",
"",
"📌 CITATION ADDED 2026-09-01 -- found the moment this field got a `kind`. It",
"carried 1 041 characters describing two derivations and cited no file. The",
"numbers are in docs/re/data/menu-bgm-loop-start.txt, and the loop region's",
"wrap timing is in docs/re/data/menu-bgm-loop-measured.txt.",
"",
"⚠️ Second uncited MEASURED field in this one entry, after `loop_why`. Both",
"described their evidence carefully in prose and pointed at nothing. A why that",
"recounts a measurement reads as well-sourced precisely because it is detailed,",
"which is why neither looked wrong."
],
"loop_start_kind": "measured",
"loop_end_s": 61.87,
"loop_end_why": [
"MEASURED off the running game 2026-08-30, 240 s parked on the menu",
@@ -209,7 +220,8 @@
"because it is the one with the loop's own endpoints under it; the",
"autocorrelation never touched the wave and agreed to a tenth of a percent,",
"which is what makes both worth having."
]
],
"loop_end_kind": "measured"
}
},
"voice": {
@@ -303,8 +315,21 @@
"⚠️ THE FAILURE MODE HERE IS THAT IT SOUNDS FINE. A single stream decodes to",
"clean audible dialogue, so nothing in the output reveals that two streams",
"are missing. That is why the manifest says it in words on every voice entry",
"rather than leaving it to this file."
"rather than leaving it to this file.",
"",
"📌 WHERE THE OPEN QUESTION LIVES, added 2026-09-01 under this port's own rule:",
"an `authored` kind must cite the question it stands in for, or an invented",
"value and a placeholder for a measurement read identically. This one stands in",
"for the three-concurrent-streams problem, recorded in docs/port/BLOCKED.md and",
"delivered in docs/port/HANDOFF.md -- the game decodes all three at once, so",
"ANY single selection is missing two, and the export states that per movie",
"rather than choosing quietly.",
"",
"⚠️ 1 402 characters of careful reasoning and nothing openable until now. It is",
"the third uncited field in this file, and all three were detailed rather than",
"sloppy -- the detail is what made them look sourced."
],
"presentation_kind": "authored",
"stream_weights": {
"_": [
"Declared XMA `byte_size` -> the coefficient that stream's position takes in a",

View File

@@ -357,6 +357,7 @@
"SELECT DATA"
],
"skipped_chain_why": "THE PORT SKIPS TWO MEASURED SCREENS HERE, AND IT SAYS SO OUT LOUD RATHER THAN PRETENDING. The real chain is NEW GAME -> DIFFICULTY -> SELECT DATA -> (A) on a save slot -> ~4.5 s -> S00A. DIFFICULTY and SELECT DATA are MEASURED destinations (HANDOFF Q4) but neither is a GP_TITLE build, so there is no screen file to go to. The port jumps from NEW GAME to the one thing in that chain it has, and the runtime prints what it skipped on every run. This is a GAP, not a sequence: nobody may read the port's behaviour here as what the game does.",
"skipped_chain_kind": "measured",
"then_video": "S00A",
"then_video_why": "P7. HANDOFF Q9, DECODED from the movie manifest: MS00A -> S00A.wmv is the new-game intro, 93.9 s. Its POSITION is measured as well -- the movie starts ~4.5 s after (A) on the save slot, matched off the running game at 0.96-1.000 with a strictly monotone playhead over 25 consecutive 0.5 s samples.",
"then_video_kind": "decoded",

View File

@@ -67,6 +67,7 @@
"What deletes this list: a decode covering those cases, or an oracle capture",
"of title_jp."
],
"draw_leaf_kind": "decoded",
"loop_leaf_on_screens": [
"title"
],
@@ -100,5 +101,6 @@
"directions is a reason to scope, not to pick.",
"",
"What settles the menu: a direct capture of it, which the Decoder has offered."
]
],
"loop_leaf_kind": "measured"
}

View File

@@ -72,6 +72,7 @@
"goes in `dwell` it is an extra hold in UNITS, and only for a screen that is",
"measured to wait beyond its group."
],
"dwell_kind": "measured",
"looping_focus_records": {
"_": [
"WHICH focus records the port draws, unconditionally and on a loop, OVER the",
@@ -187,6 +188,18 @@
"DO NOT key this per outgoing screen yet. Three outgoing screens with one",
"value each restates the data rather than predicting it -- the same objection",
"I raised against my own 16/16/18. Key it when a screen has more than one",
"measured value, and key it on the screen being LEFT."
]
"measured value, and key it on the screen being LEFT.",
"",
"📌 CITATION ADDED 2026-09-01, and its absence propagated from the delivery.",
"This why carried over a thousand characters and NOTHING OPENABLE. The Decoder",
"sent the `(B)`-from-EXTRAS leg as an inline frame table with no file cited,",
"while docs/re/data/fade-four-transitions.txt -- which carries that leg and",
"eight others -- had been committed the whole time. They found it in their own",
"audit and cited it; it had already landed here uncited.",
"",
"⚠️ An uncited measurement propagates as an uncited value. The receiving end",
"cannot tell a summarised measurement from a recalled one, and both read as",
"prose."
],
"black_hold_kind": "measured"
}