Filed unassigned, no labels — triage owns grading and routing. Recorded while taking the measurement #6058 asked for; the count was needed as the denominator and did not survive checking.
The measurement
packages/types/src/__tests__/zod-mirror-parity.test.ts states its population in prose in three places — the header ("163 registered pairs" / "Non-vacuity for all 163 entries at once"), and the KNOWN_DRIFT section ("13 of the 163 pairs carry drift TODAY (measured, not assumed)").
Counted off the registry itself:
| read | count |
|---|
MIRRORS entries | 158 |
interface Declared members | 158 |
interface KnownDrift entries | 12 |
assertionRegistryHalvesAgree already pins the first two equal, so 158 is not in doubt. The same section's other number is right: it says "never for the 146 pairs with no entry", and 158 − 12 = 146. So the file is internally inconsistent, and the two stale numbers are the two that get quoted.
Why this is worth a card rather than a silent fix
⚠️ These numbers are not decoration — they get cited as the size of the drift problem. #5927/PR #6032 is described in terms of "17 → 13", and #6058's own dispatch asks "how many of the 163 pairs turn red". A measurement-first card that inherits a wrong denominator reports a wrong fraction, and nothing in the file fails when the prose drifts from the registry: assertionRegistryHalvesAgree compares the two halves to each other, never to a written-down count.
⛔ Not claimed here: that any drift measurement is wrong. The ledger's 12 entries are each pinned to an exact key set and the ratchet works; only the written population and ledger sizes are stale.
Shape of a fix
Two routes, and the choice is the interesting part:
- Correct the prose — cheapest, and it rots again the next time an entry lands.
- Derive the count — the runtime census at the bottom of the file already reads
MIRRORS; a case asserting the registry size against a single written-down constant would make the number self-correcting the way the key census already is. That is the same "no hand-maintained artefact the drift keeps producing" principle the file's own header argues for.
Pointers
Filed unassigned, no labels — triage owns grading and routing. Recorded while taking the measurement #6058 asked for; the count was needed as the denominator and did not survive checking.
The measurement
packages/types/src/__tests__/zod-mirror-parity.test.tsstates its population in prose in three places — the header ("163 registered pairs" / "Non-vacuity for all 163 entries at once"), and theKNOWN_DRIFTsection ("13 of the 163 pairs carry drift TODAY (measured, not assumed)").Counted off the registry itself:
MIRRORSentriesinterface Declaredmembersinterface KnownDriftentriesassertionRegistryHalvesAgreealready pins the first two equal, so 158 is not in doubt. The same section's other number is right: it says "neverfor the 146 pairs with no entry", and 158 − 12 = 146. So the file is internally inconsistent, and the two stale numbers are the two that get quoted.Why this is worth a card rather than a silent fix
assertionRegistryHalvesAgreecompares the two halves to each other, never to a written-down count.⛔ Not claimed here: that any drift measurement is wrong. The ledger's 12 entries are each pinned to an exact key set and the ratchet works; only the written population and ledger sizes are stale.
Shape of a fix
Two routes, and the choice is the interesting part:
MIRRORS; a case asserting the registry size against a single written-down constant would make the number self-correcting the way the key census already is. That is the same "no hand-maintained artefact the drift keeps producing" principle the file's own header argues for.Pointers
packages/types/src/__tests__/zod-mirror-parity.test.ts— the three prose sites and the two interfaces.BaseSchemaonly — the ~17 sibling zod mirrors have nothing equivalent, and the class already has two confirmed instances #5684 — the guard; 17 zod mirrors refuse spellings their TypeScript declarations declare — each needs a widen-the-mirror / narrow-the-declaration ruling #5927 / PR fix(types): widen seven zod mirrors the renderer already implements (#5927 group A) #6032 — the 17 → 13 shrink whose framing quotes the stale denominator.