ID

R909

Status

Backlog

Bucket

cleanup

Priority

3

Theme

model-cleanup

Created

2026-09-01

Updated

2026-09-01

Family ordinals are a dense position list or an unordered key, and nothing says which

Goal

meta_family.ordinal has one stated meaning and one gated meaning, and they disagree. The column comment calls it "the family’s position in the reference’s page order and index roster, 0-based", which reads as a dense sequence. The only gate over it, FactSchemaGateTest.theFamilyRosterIsWellFormed, asserts uniqueness and nothing more, so any increasing sequence passes. The sibling meta_family_headline.ordinal is gated dense within each family, which makes the silence here look deliberate without saying so.

The roster now has a gap at 7, where the walk_ family sat before it retired. That gap is what exposed the ambiguity: retiring a family left a choice nobody had to make before, and the answer was guessed once already, wrongly, by renumbering five rows on the belief that a density gate existed.

When this lands, one of the two readings is written down and enforced. Either the ordinals are a dense position list, in which case a gate closes them against 0..n-1 and family retirement carries a renumbering step; or they are an ordering key whose values do not matter, in which case the column comment stops calling them a position and says gaps are expected. What must not survive is the current state, where the comment implies one answer, the gate implies the other, and the next person to retire a family guesses.

Plan

Not planned. The decision comes first and the mechanism follows it in a sentence either way, so this stays a Backlog stub until someone takes the question.

Worth knowing for whoever does: dense ordinals cost a renumbering on every family retirement, which is rare, and buy a roster that reads as a list of positions. Sparse ordinals cost nothing and mean the reference’s page order is a sort rather than an index. The generated reference orders by this column either way, so no reader-visible behaviour turns on the choice.