Path: none | 仪器:活性账本无顶层坐标 | 挡住 145 个键的理由记录
The prerequisite for the whole top-level direction
#19188 measured that the metadata-form ↔ zod reconciliation gate has no mechanical reader for 「the schema declares this key and the form has no row」 at the top level. Wiring one needs two changes first, and until they land no top-level direction can be recorded at all.
1. The ledger has no top-level coordinate — this is a hard blocker
Every LEDGER entry is keyed by a dotted path, and the gate's own 「every ledger entry still resolves on both sides」 test does lists.find(l => l.path === entry.path) against nestedLists(form), which only ever yields nested paths. ⇒ a root entry (path "" or a sentinel) makes that test fail.
Consequence: a top-level direction cannot record its FIRST deliberate omission. Every bucket in #19188's split that needs 「a recorded reason rather than an offer」 — 145 keys of the 274 — is unlandable until this exists. The change is small; it is just load-bearing.
2. Half the red lines would be overlay noise without a framework skip
132 of the 274 (48%) are the ADR-0010 provenance/lock overlay: 7 underscore keys on all 17 forms (119) plus protection on 13 of them. The liveness gate already skips exactly this set as auto-live framework fields (FRAMEWORK_FIELDS in scripts/liveness/check-liveness.mts); the reconciliation gate has no equivalent skip. ⇒ turning on top-level zodOnly as-is makes half its output overlay noise, and the alternative — 132 ledger rows — is the wrong shape for one overlay with one reason.
What is NOT wrong here
⛔ Not a retirement problem: zero of the 274 carry a dead verdict. Measured the other way too — 27 dead rows exist across these 17 types, 5 are offered by forms and 22 are not in the authorable top-level shape at all. ⇒ no part of this census is enforce-or-remove work.
⛔ Not a formOnly problem: formOnly = 0 and offered-but-retired = 0 on every one of the 17 types. The two directions the gate DOES assert are currently clean.
Dedup words
ledger top-level path · reconciliation root coordinate · FRAMEWORK_FIELDS skip · ADR-0010 provenance overlay · zodOnly top level
Origin: the #19188 census round, report comment 5749550902 (2026-09-20T11:37Z), base 596090efbe7. Its numbers were re-derived by the dev with the reconciliation gate's OWN helper block sliced verbatim (sha256 f6729dae2829…), ⛔ not by grepping source, with a lit control (name, offered by 17 of 17 forms) and a dark control (a fabricated key, 0) asserted inside the probe.
Filed-by: session_01LvwGppdonww4zGLWZo5rho (domain:spec execution seat 1), as the split triage asked for at 5747751499 — 「the claiming seat's first deliverable is the split, not the fix」. ⛔ Not graded and ⛔ not routed by this seat.
Generated by Claude Code
Path: none | 仪器:活性账本无顶层坐标 | 挡住 145 个键的理由记录
The prerequisite for the whole top-level direction
#19188 measured that the metadata-form ↔ zod reconciliation gate has no mechanical reader for 「the schema declares this key and the form has no row」 at the top level. Wiring one needs two changes first, and until they land no top-level direction can be recorded at all.
1. The ledger has no top-level coordinate — this is a hard blocker
Every
LEDGERentry is keyed by a dotted path, and the gate's own 「every ledger entry still resolves on both sides」 test doeslists.find(l => l.path === entry.path)againstnestedLists(form), which only ever yields nested paths. ⇒ a root entry (path""or a sentinel) makes that test fail.Consequence: a top-level direction cannot record its FIRST deliberate omission. Every bucket in #19188's split that needs 「a recorded reason rather than an offer」 — 145 keys of the 274 — is unlandable until this exists. The change is small; it is just load-bearing.
2. Half the red lines would be overlay noise without a framework skip
132 of the 274 (48%) are the ADR-0010 provenance/lock overlay: 7 underscore keys on all 17 forms (119) plus
protectionon 13 of them. The liveness gate already skips exactly this set as auto-live framework fields (FRAMEWORK_FIELDSinscripts/liveness/check-liveness.mts); the reconciliation gate has no equivalent skip. ⇒ turning on top-levelzodOnlyas-is makes half its output overlay noise, and the alternative — 132 ledger rows — is the wrong shape for one overlay with one reason.What is NOT wrong here
⛔ Not a retirement problem: zero of the 274 carry a
deadverdict. Measured the other way too — 27 dead rows exist across these 17 types, 5 are offered by forms and 22 are not in the authorable top-level shape at all. ⇒ no part of this census is enforce-or-remove work.⛔ Not a
formOnlyproblem:formOnly = 0and offered-but-retired = 0 on every one of the 17 types. The two directions the gate DOES assert are currently clean.Dedup words
ledger top-level path·reconciliation root coordinate·FRAMEWORK_FIELDS skip·ADR-0010 provenance overlay·zodOnly top levelOrigin: the #19188 census round, report comment 5749550902 (2026-09-20T11:37Z), base
596090efbe7. Its numbers were re-derived by the dev with the reconciliation gate's OWN helper block sliced verbatim (sha256f6729dae2829…), ⛔ not by grepping source, with a lit control (name, offered by 17 of 17 forms) and a dark control (a fabricated key, 0) asserted inside the probe.Filed-by:
session_01LvwGppdonww4zGLWZo5rho(domain:specexecution seat 1), as the split triage asked for at 5747751499 — 「the claiming seat's first deliverable is the split, not the fix」. ⛔ Not graded and ⛔ not routed by this seat.Generated by Claude Code