You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] spec(liveness): book.json header says "15 of 17 live" and "the two dead entries" — the file holds one dead row, and no reading of it gives 15 of 17 #16136
Found by the os-dev seat while fixing #15775 (the same defect class, one ledger file over). Not fixed there on purpose — that card's scope is fixed to liveness/translation.json and explicitly forbids touching another liveness ledger. Filing rather than dropping it. Unassigned; nobody is working on it.
15 of 17 live; the two dead entries are both inline translations maps that LOOK like the doc-level mechanism that works (doc.translations, resolveDocLocale) but have no resolver anywhere.
Measured on main at 1f2a02ba, straight off the ledger's own rows, walked at every nesting level:
top-level props: 8
rows carrying a status, all levels: 14 (live 13, dead 1)
the one dead row: props.groups.children.translations
And the gate's own report, which is this ledger family's documented counting method (check-liveness.mts --json, types.book.byStatus), as published in the generated packages/spec/liveness/state-counts.md:
Three separate disagreements, and the prose loses each one:
The pair. 15 of 17 matches neither granularity — not the ledger's own rows (13 of 14) and not the gate (20 of 21).
"the two dead entries", plural. There is exactly one dead row in the file, and the gate agrees (dead 1). This is the verdict-shaped half, not arithmetic: a reader is told to look for a second dead translations map that the ledger does not record.
Same reason #15775 was filed rather than patched, and #15775's own resolution is the precedent: a fresh pair of integers is the next occurrence waiting to happen. book.json's sentence should name the boundary (which row is dead, and why) rather than restate a total that state-counts.md already publishes and that check:liveness proves fresh on every run. The prose is worth keeping — the doc.translations / resolveDocLocale contrast is real, hand-measured content; only the numbers around it are the problem.
Whoever takes it should also confirm whether the second dead entry ever existed or whether the plural was written across two rows that later merged — that is evidence review, not bookkeeping, and it decides whether a row is missing or only the sentence is.
Grading
Observation, not a defect an author can trip over: every per-prop status in book.json is accurate as far as the gate is concerned, check:liveness is green, and no authoring surface is affected. Deliberately low.
Same class as #15775 and the family registered on it (#15754, #15765, objectui#7702) — hand-maintained measurement numbers in prose — but a different carrier and a different file, so per that family's own ruling it is not merged into any of them.
packages/spec/liveness/book.json — the _note header only. Nothing in content/docs/ is implicated. #15775 is not addressed by this card, and neither blocks the other.
Dedup
Searched open and closed issues before filing (keyword sweep over the liveness-ledger prose family, control term verified to return #15775). #15775 owns translation.json; #15540 and #15568 own liveness/field.json notes; #15310 owns COMPOUND_ANCHOR_LEDGER's docblock; #13083 owns a free-text status typo mechanism. No issue names book.json's header.
Found by the
os-devseat while fixing #15775 (the same defect class, one ledger file over). Not fixed there on purpose — that card's scope is fixed toliveness/translation.jsonand explicitly forbids touching another liveness ledger. Filing rather than dropping it. Unassigned; nobody is working on it.The reading
packages/spec/liveness/book.json's_noteheader states:Measured on
mainat1f2a02ba, straight off the ledger's own rows, walked at every nesting level:And the gate's own report, which is this ledger family's documented counting method (
check-liveness.mts --json,types.book.byStatus), as published in the generatedpackages/spec/liveness/state-counts.md:Three separate disagreements, and the prose loses each one:
dead 1). This is the verdict-shaped half, not arithmetic: a reader is told to look for a second deadtranslationsmap that the ledger does not record.--jsonreport #7377 spent its argument on ("a row that saysdead 6next to a sentence enumerating four […] the prose is the part a reader believes"), and the exact shape the README's counting-method section now warns about in writing: "The Notes cell is not a place to restate a number."Why it is a card and not a
sedSame reason #15775 was filed rather than patched, and #15775's own resolution is the precedent: a fresh pair of integers is the next occurrence waiting to happen.
book.json's sentence should name the boundary (which row is dead, and why) rather than restate a total thatstate-counts.mdalready publishes and thatcheck:livenessproves fresh on every run. The prose is worth keeping — thedoc.translations/resolveDocLocalecontrast is real, hand-measured content; only the numbers around it are the problem.Whoever takes it should also confirm whether the second dead entry ever existed or whether the plural was written across two rows that later merged — that is evidence review, not bookkeeping, and it decides whether a row is missing or only the sentence is.
Grading
Observation, not a defect an author can trip over: every per-prop
statusinbook.jsonis accurate as far as the gate is concerned,check:livenessis green, and no authoring surface is affected. Deliberately low.Same class as #15775 and the family registered on it (#15754, #15765, objectui#7702) — hand-maintained measurement numbers in prose — but a different carrier and a different file, so per that family's own ruling it is not merged into any of them.
packages/spec/liveness/book.json— the_noteheader only. Nothing incontent/docs/is implicated. #15775 is not addressed by this card, and neither blocks the other.Dedup
Searched open and closed issues before filing (keyword sweep over the liveness-ledger prose family, control term verified to return #15775). #15775 owns
translation.json; #15540 and #15568 ownliveness/field.jsonnotes; #15310 ownsCOMPOUND_ANCHOR_LEDGER's docblock; #13083 owns a free-textstatustypo mechanism. No issue namesbook.json's header.