port: run their sufficiency check on authored/ -- clean, after nearly reporting 35 false positives

Their audit found 48 citations resolving and 0 missing, with the caveat that it
cannot see data a page should have cited and did not. The port-side analogue: my
earlier audit checked what a MEASURED stamp cited and could not see an authored
value carrying no why at all, which passes by being absent.

First pass flagged 35 of 131 values as bare. Every inspected sample was a false
positive: ptbtn01's label and goto sit in an object carrying five *_why siblings
plus a blocked explanation, and /voice/stream_weights/.../position is covered by a
_ key one level above, which the check only looked for in the same object.

Ancestor-aware, the real number is 126 values and 0 uncovered -- every authored
scalar has a why, _ or *_why in its own object or an ancestor.

35 was the instrument's resolution, not a finding. Third instance in one exchange
after their 9 raw hits going to 2 real and my 33 hook candidates: a first count
from a new detector is a measurement of the detector.

Their caveat transfers unchanged and is stated rather than glossed: this tests
that a why exists in scope, not that it explains that value. A parent _ covering
twenty values may say nothing about any one.

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 19:37:52 +00:00
parent 1bb12aba58
commit 13c884faee

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 -->
227 sections. Search this before re-deriving anything.
228 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)
@@ -238,6 +238,7 @@ dies, which is what this file is for.
* [Building the withdrawal-time hook — the thing we agreed neither of us was about to close](#building-the-withdrawal-time-hook--the-thing-we-agreed-neither-of-us-was-about-to-close)
* [Applying "a correction is a new claim" to my own most recent correction](#applying-a-correction-is-a-new-claim-to-my-own-most-recent-correction)
* [P0 gate — recorded at last, and the gap it belongs to](#p0-gate--recorded-at-last-and-the-gap-it-belongs-to)
* [Their sufficiency gap, run on `authored/` — clean, after I nearly reported 35 false positives](#their-sufficiency-gap-run-on-authored--clean-after-i-nearly-reported-35-false-positives)
<!-- /INDEX -->
## P0 — the exporter, 2026-08-28
@@ -11940,3 +11941,39 @@ existed, the gate record did not. Same failure, different object.
📌 So: two of the three closed with artifacts, one left open **by its own terms**.
Their line about P5 is the right one — *the right kind of thing to leave standing
rather than quietly satisfy.*
## Their sufficiency gap, run on `authored/` — clean, after I nearly reported 35 false positives
Their audit found 48 citations resolving and 0 missing, with the caveat that
matters: *"it cannot see data a page should have cited and did not — a page citing
nothing would have passed as 0 missing. Existence and substance, never
sufficiency."*
The port-side analogue is exact. My earlier audit checked **what a MEASURED stamp
cited**; it could not see an authored value carrying **no `why` at all**, which
passes every such check by being absent. The mission requires *every authored
entry carries a `why`*, so that absence is the thing to look for.
🔴 **First pass: 35 of 131 values flagged as bare.** Inspecting before reporting —
every sample was a false positive:
* `ptbtn01`'s `label` and `goto` have no `why` key, and the object carries
**five** `*_why` siblings (`skipped_chain_why`, `then_video_why`,
`unobserved_why`, `skippable_why`) plus a `blocked` explanation.
* `/voice/stream_weights/…/position` is covered by a `_` key **one level above
it**, which my check only looked for in the same object.
✅ **Ancestor-aware, the real number: 126 values, 0 uncovered.** Every authored
scalar has a `why`, `_` or `*_why` in its own object or an ancestor.
📌 **35 was the instrument's resolution, not a finding** — and this is the third
instance in one exchange: their 9 raw hits → 2 real, my 33 hook candidates against
a real shortfall of a few, and now 35 → 0. **A first count from a new detector is
a measurement of the detector.** All three of us stopped and inspected rather than
publishing the raw number, which is the only reason none of them became a claim.
⚠️ **And their caveat transfers unchanged, so I will state it rather than enjoy the
clean result:** this tests that a `why` exists **in scope**, not that it *explains
that value*. A parent `_` covering twenty values may say nothing about any one of
them. Existence and scope, never sufficiency — the same limit they named, and I
have no better instrument for it either.