port: a standing check that authored numbers still match the disc

The Decoder reported that three of their corrections were a LABEL being wrong
rather than a measurement -- the right number pointed at the wrong element -- and
asked me to re-check any figure of theirs that names an element.

Audited all five the port carries. All clean: ptloop01's 30-unit ramp,
pteff03's 600-unit loop, ptbtn00f's 120-unit pulse and peak alpha 80,
looping_focus_records' period and record_element, and F6's parent gate.

📌 And the reason is worth naming: the port was protected NOT by discipline but
because every element-named figure it carries is ALSO declared on the disc, so
each was independently checkable. That protection is now structural rather than
a one-off audit, because it fails silently in both directions -- a relayed number
pointed at the wrong element drifts from the declared one, and a re-export that
re-times a keyframe moves the declared one underneath an authored value that was
right when written. audit-kinds cannot see either: it checks that a why CITES
something, not that the number still agrees.

⚠️ Scope is deliberately narrow: only values with a declared counterpart are
checkable. A measured constant with no disc equivalent -- the leaf rate itself --
cannot be verified this way and is not pretended to be.

Selftest in both directions; in check-all.
This commit is contained in:
Sylpheed port agent
2026-09-03 20:25:33 +00:00
parent 2bf93916bb
commit e9a57e2167
2 changed files with 99 additions and 0 deletions

View File

@@ -156,6 +156,8 @@ step decisions-index must-pass tools/port/index-decisions --check
# is merely on a peer's unmerged branch is reported, because the fix is a merge
# and nobody in this container can make it.
step trajectory-fit must-pass tools/port/fit-trajectory --selftest
step authored-declared must-pass tools/port/check-authored-vs-declared
step authored-decl-ctl must-pass tools/port/check-authored-vs-declared --selftest
step doc-citations must-pass tools/port/check-citations
step citations-control must-pass tools/port/check-citations --selftest
# A refuted claim asserted outside its correction is a lie the corpus tells a

View File

@@ -0,0 +1,97 @@
#!/usr/bin/env python3
"""Do the authored numbers that MIRROR declared data still match it?
tools/port/check-authored-vs-declared [--selftest]
🔴 WHY. The other agent reported that three of their corrections were a LABEL
being wrong rather than a measurement -- the right number pointed at the wrong
element -- and warned: *"if you are carrying any figure of mine that names an
element, that is the class to re-check first, not the arithmetic."*
An audit answered it once. This answers it every run.
📌 The port turned out to be protected, and NOT by discipline: every element-named
figure it carries is also declared on the disc, so each was independently
checkable and each checked out. That protection is worth making structural,
because it fails silently in both directions:
* a RELAYED number pointed at the wrong element drifts from the declared one;
* a RE-EXPORT that re-times a keyframe moves the declared one underneath an
authored value that was correct when written.
Both look like nothing. Neither is caught by `audit-kinds`, which checks that a
`why` cites something, not that the number still agrees with the disc.
⚠️ SCOPE, deliberately narrow. Only values with a declared counterpart are
checkable here. A measured constant with no disc equivalent -- the leaf rate
itself, for instance -- cannot be verified this way and is not pretended to be.
"""
import json
import sys
EXPORT, AUTHORED = "export", "authored"
def screen(group, name):
return json.load(open(f"{EXPORT}/screens/{group}/{name}.json"))
def element(d, eid):
return next((e for e in d["elements"] if e["id"] == eid), None)
def checks():
"""(label, authored value, declared value) triples."""
out = []
timing = json.load(open(f"{AUTHORED}/timing.json"))
for key, cfg in timing.get("looping_focus_records", {}).items():
if key == "_":
continue
scr, parent = key.split("/", 1)
d = screen("title", scr)
el = element(d, parent)
if el is None:
out.append((f"looping_focus_records {key}: parent exists", parent, None))
continue
focus = el.get("focus", {})
got = [f["id"] for f in focus.get("elements", [])]
out.append((f"{key} record_element", cfg.get("record_element"),
got[0] if got else None))
out.append((f"{key} period_units", float(cfg.get("period_units", -1)),
float(focus.get("loop_length_units", -1))))
return out
def main():
if "--selftest" in sys.argv:
# 🔴 A CHECK THAT CANNOT FAIL IS NOT A CHECK. Compare a value against a
# deliberately wrong counterpart and require the mismatch to be seen.
ok_pass = _verdict([("x", 120.0, 120.0)]) == 0
ok_fail = _verdict([("x", 120.0, 244.0)]) == 1
print("selftest: match accepted=%s, mismatch rejected=%s -> %s"
% (ok_pass, ok_fail, "ok" if ok_pass and ok_fail else "🔴 BROKEN"))
return 0 if (ok_pass and ok_fail) else 2
rows = checks()
print("authored values with a DECLARED counterpart: %d" % len(rows))
return _verdict(rows, show=True)
def _verdict(rows, show=False):
bad = 0
for label, authored, declared in rows:
same = authored == declared
if show:
print(" %-46s authored %-12s declared %-12s %s"
% (label, authored, declared, "ok" if same else "🔴 DIFFERS"))
if not same:
bad += 1
if bad:
if show:
print("\n🔴 an authored number no longer matches the disc. Either it was "
"pointed at the wrong element, or a re-export re-timed it.")
return 1
return 0
if __name__ == "__main__":
raise SystemExit(main())