Skip to content

the metadata-form reconciliation ledger has no top-level coordinate, and no framework-field skip — both are prerequisites for the zod-only direction (#19188 split) #19329

Description

@os-litant

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions