@@ -139,20 +139,34 @@ uv run sphinx-build -b html docs dist/docs
139139# so a copy spelled some other way is not undeclared but unseen. What
140140# covers those is _CORPUS_CLAIMS, which records what every rule claims
141141# -- its regex's corpus reach, its roles, and which names -- and so
142- # needs no notion of how a copy is spelled. Enrol the new ledger in
143- # _CORPUS_CLAIMS always, and in the others where they apply:
142+ # needs no notion of how a copy is spelled.
143+ # THREE rosters are keyed by FILENAME and checked by EQUALITY, so a new
144+ # ledger must be enrolled in every one of them on the day it lands, even
145+ # empty -- each fails loudly and names itself, but that is three separate
146+ # red runs if you add them one at a time. Two more are keyed by rule
147+ # CONTENT and apply only where such a rule exists.
148+ # Required, by filename:
144149# - _SPAN_BEARING_RULES: add the filename, mapped to the set of issue
145150# tags whose rules carry a script-span class (empty set if none).
151+ # - _CORPUS_CLAIMS: a ledger with no entry hard-fails. Add the
152+ # filename mapped to {} while the ledger is empty, then one _Claim
153+ # per rule as rules land. The test prints the values to record. A
154+ # _Claim's digest moves whenever the corpus text does, so a pure
155+ # RENAME of a corpus name lands here as names-unchanged,
156+ # roles-unchanged, digest-moved; a count that GREW means the rule
157+ # absorbed something.
158+ # - _CROSS_RULE_WINNERS: add the filename mapped to {} while the
159+ # ledger has no contested name. Equality since #452, which found
160+ # that a ledger with no rows had been indistinguishable from one
161+ # needing none -- the two 2.x ledgers whose shapes #452 moved
162+ # between rules had no section at all.
163+ # Conditional, by rule content:
146164# - _HONORIFIC_SOURCES: if the ledger has a CJK honorific rule, add a
147165# substring of its issue (keyed that way, not by tag) mapped to the
148166# constant it copies -- but only if no existing key already matches
149167# that issue. A retroactive ledger can repeat an older one's rule
150168# verbatim (fix(#271/#272/#298) is in both today), and every rule
151169# must match exactly one key.
152- # - _CORPUS_CLAIMS: REQUIRED, not conditional -- a ledger with no
153- # entry hard-fails. Add the filename mapped to {} while the ledger
154- # is empty, then one _Claim per rule as rules land. The test prints
155- # the values to record.
156170# - _LATIN_ALTERNATION_SOURCES: same, for a rule copying a Latin
157171# vocabulary (maiden markers, ambiguous acronyms). An alternation
158172# matching no key fails as undeclared -- add it, or record it in
0 commit comments