; data/ef/expected-divergences.sexp -- Task 15's Layer C: the CITED allow-list ; for colitur's differential harness against lectio (test/test_differential.ml), ; 2005-2050. This is the only layer that may cover a difference in rank, ; colour, or which celebration is observed -- Layers A (vocabulary) and B ; (numbering) live in test_differential.ml's code because they normalise ; NAMES and INDICES only and never touch this file's territory. ; ; Each entry is a genuine liturgical disagreement between the two engines. ; [verdict] names which engine the register/Missal backs; every entry here ; is "colitur" -- an entry saying otherwise would mean "fix colitur", not ; "allow-list it" (task ruling). [expected_rows] is the exact row count this ; entry accounts for over the fixture's 2005-2050 span: a REGRESSION PIN, not ; documentation -- test_differential.ml asserts actual counts equal these ; exactly, so an unnoticed behaviour change here fails loudly instead of ; silently changing what the harness accepts. ; ; DEPARTURE, task 8 (branch ef-lectionary, citation comparison): this file ; carries [verdict open] entries -- C6 and C25 as of fix round 2 -- for ; genuine, precisely-diagnosed colitur DEFECTS the task that found them ; explained fully but did not fix, because doing so safely needs a ; behaviour change to a shared, multi-round-reviewed kernel-adjacent ; function (Rite_ef.Temporal_ef, RG 69's own gap -- see C6's own note for ; the full account) out of that task's own scope. Not a silent pass: ; `expected-divergences-missalemeum.sexp` already established [verdict ; open]/[verdict unresolvable] as this project's own mechanism for ; "genuinely unresolved, honestly counted, not swept under the rug, and ; re-adjudicable by name" (see that file's own M11/M13/M15 entries) -- ; this task extends the SAME mechanism to this file rather than inventing ; a new one, on the judgment that a permanently-red `dune test` would ; serve this project's own stated goals (loud, tracked, NON-silent ; flagging) worse than a counted, cited, clearly-labelled-as-open entry ; does. Flagged here for explicit review, the same as every other ; deviation this project's own task reports record rather than hide. ; ; CORRECTED, fix round 2 (coordinator review, Important): this paragraph ; previously named a since-retired id (C21) and restated its own retired ; diagnosis verbatim, becoming stale the moment C21 itself was replaced by ; C6 (widened) and C25 (new) -- rewritten in full rather than layering a ; correction on top, the same discipline C6's own note below applies to ; itself for the identical reason. ; ; Regenerate expected_rows only after re-adjudicating the change against the ; Missal/register -- never by re-running the comparator and copying its ; output back here (that would launder a regression into a new baseline). ; ; REFRESHED 2026-08-12 (task 2026-08-12-colitur-rg16a, branch ef-rebootstrap): ; the fixture was regenerated from lectio's current HEAD (3b32c00), which has ; independently fixed the seven EF calendar defects this file's own C2, C3, ; C4, C5, C7, C9 (in part), C10 and C11 used to allow-list, plus lectio's ; sanctoral generator fix that resolved C12. NINE entries -- C2, C3, C4, C5, ; C7, C10, C11, C12, C13 -- are CLOSED (removed below, not re-adjudicated to ; a different verdict): each stopped occurring entirely (0 of 16801 rows), ; the same "REMOVED, not re-adjudicated" shape M17/M4/M6/M7/M9/M14 already ; used in data/ef/expected-divergences-missalemeum.sexp. Every closed ; citation is preserved in docs/research/rules-register.md's own closure ; record (search "ef-rebootstrap fixture refresh" there), not deleted -- ; each was a real divergence, correctly adjudicated in colitur's favour at ; the time, closed because the OTHER engine was fixed to agree, not because ; colitur changed. C9's OLD shape ("Joseph observed on a Lent Sunday") is ; part of that same closure; a DIFFERENT, narrower divergence involving the ; same saint (Joseph's transfer colliding with the Annunciation's own fixed ; "sedes propria") survived the refresh and is re-cited below as C14, a new ; id, not folded back into C9 -- the two are different rules and conflating ; them is exactly the "count proving cardinality where identity was ; required" failure mode this project's own review process has caught ; before. Three entries survive with their original citation, unchanged in ; kind: C1 (368 rows, up from 361 -- see C1's own note), C6 (138 rows, ; unchanged count, narrower shape -- see C6's own note) and C8 (31 rows, ; wholly unchanged). ((id C1) (citation "RG 72-73 (Nativity/Epiphany season boundary, Jan 1-13) + RG 119a (white through \"expletum tempus Epiphaniae\"); register §3c item 1") (verdict colitur) (note "6-13 January is Christmastide in colitur, matching RG 72-73's explicit boundary at 13 January (corroborated independently by RG 119a's colour rule, §3b). lectio's efSeason switches to time-after-epiphany on 6 January. The season disagreement cascades into colour (green vs white) and, on 7-12 January specifically, into the ferial slug family name (colitur's ef-christmas-2- vs lectio's ef-time-after-epiphany-1- for those days). REFRESHED (ef-rebootstrap fixture refresh, 2026-08-12): expected_rows moved 361 -> 368. NOT a new divergence -- the closed C13's own 7 rows (13 January in the 7 years it falls on a Sunday) fold back in here: lectio's fix wave independently fixed its own equivalent of the RG16(a) defect C13 used to allow-list, so on all 7 of those Sunday years lectio's slug now matches colitur's `commemoration-of-the-baptism-of-the-lord` too (not just rank/colour), leaving season as the ONLY residual difference on those rows -- squarely inside C1's own existing shape (diffs subset of [Season;Colour;Slug] with the Slug-diff escape clause unused). REFRESHED AGAIN (ef-rg112-rg110 task, branch ef-rg112-rg110): expected_rows moved 368 -> 361, back to its PRE-ef-rebootstrap value, but for a THIRD, different reason -- SPLIT OUT to its own new entry, C15, not silently re-absorbed: colitur now BUILDS Holy Family (RG 17(b)) and, on these same 7 dates, correctly observes it in the fixed Baptism's place (RG 91 entry 14, RG 112(a)), so colitur's own slug there changes from `commemoration-of-the-baptism-of-the-lord` (which happened to already match lectio's own slug) to `ef-time-after-epiphany-sunday-1` (Holy Family's own, lectio has no equivalent) -- a genuine SLUG divergence now, no longer inside C1's own [Season]-only shape. See C15's own entry for the full account. PROVENANCE, fix round 1 (coordinator finding 6, restoring the discipline this entry's own prior refresh recorded and this round's rewrite had dropped): 361 read directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations's `Received` array, run against the widened C15 predicate/allow-list together, not before it existed) -- not hand-counted first and cross-checked after, and not 368 minus 7 taken on faith: the arithmetic matches C15's own independently-derived 7, which is corroboration, not the derivation itself. REFRESHED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 361 -> 173. NOT a data change -- this entry's OWN diff-set guard (`subset diffs [Season;Colour_f;Slug_f]`) never accepted a citation diff, and this task gave the `ef-christmas-2-` and `ef-time-after-epiphany-1-` families their OWN direct citations for the first time (the Missal's own Mass-propers \"diebus ferialibus\" rubrics -- NOT RG 17(a) itself, which states only the day-identity privilege; see C30/C31's own citations for the corrected attribution -- tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) -- every row in this window that ALSO now carries a real First_f/Gospel_f divergence escapes this entry's own subset guard and moves to the new C31/C32 instead (not silently re-absorbed: C31/C32's own [subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]] guard is what actually catches them, checked BEFORE this entry no longer applies, not assumed). What remains here is every 6-13 January row this task's own fix did NOT touch: Epiphany itself, the fixed Baptism commemoration, and any day a competing saint or the BVM Saturday Office already wins outright (unaffected by a lectionary citation either way). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 173. REFRESHED (BVM Saturday Mass, 2026-08-17): 173 -> 159. Fourteen of these days are Saturdays carrying the RG 78 office, which now also says its own RG 309(a) Mass, so they gained a citation difference and moved to C17 -- whose single cause covers both. Not a new divergence and not a fix here: the same days, filed against the entry that actually explains them. CORRECTED 2026-08-18: 159 -> 35. lectio adopted RG 72 and reads 6-13 January as Christmas Time, so the SEASON now agrees on every day of that window and 124 rows left this entry. What remains is residue on other axes, not the season boundary this entry was written for. CORRECTED 2026-08-18: 35 -> 75. GREW, and the reason is worth stating rather than hiding: C17 closed, and the January Saturdays it used to absorb now differ only on the slug vocabulary this entry already covers, so they land here instead. No new disagreement -- rows moved between entries as the larger cause was removed. CORRECTED 2026-08-18: 75 -> 40, as the surrounding classes closed and their rows stopped overlapping this one. CORRECTED 2026-08-18: 40 -> 138, and the entry has changed character entirely. It is now SLUG VOCABULARY ONLY. Season, rank, colour and both citations agree with colitur on every day of the January window; what differs is the identifier -- colitur's ef-christmas-2-thursday against lectio's ef-time-after-epiphany-1-thursday for the same day, with the same Mass. C31's rows joined it when their readings stopped differing, which is why it grew. Aligning the two vocabularies would mean renaming lectio's slugs, and those are keys: its own lectionary, clectio's generated tables and any user overlay are all built on them. This is recorded as vocabulary rather than closed, because the rows do still differ -- just not in anything a reader of either engine's output would see.") (expected_rows 138)) ((id C6) (citation "RG 91 entry 17 (\"days within the Octave of the Nativity\") for the slug/rank divergence; RG 69, scan1.txt:625-631 word for word, for the QUESTIONED citation component (Important 3(b), coordinator review, task 8 fix round 1): \"De dominica infra octavam Nativitatis Domini, quae scilicet a die 26 ad 31 decembris occurrit, semper fit Officium cum commemoratione festi forte occurrentis, iuxta rubricas, nisi dominica incidat in festum I classis: quo in casu, fit de festo cum commemoratione dominicae\" -- the Sunday's OWN Office (not the fixed weekday placeholder) is kept, WITH a commemoration of whatever feast falls that day, whenever a Sunday lands anywhere 26-31 December (unless that feast is itself I class, in which case the feast wins with the Sunday commemorated instead)") (verdict colitur) (note "REWRITTEN IN FULL, task 8 fix round 1 (coordinator review, Important 4: a prior version of this note left three successive NARROWED/CORRECTED paragraphs standing on top of each other in a file whose whole purpose is a top-down audit trail -- this replaces all of them with one current account, history preserved in git, not layered here again. 29-31 December (RG 91 entry 17, II class) are colitur's own fixed `ef-nativity-octave-day-{5,6,7}` slugs regardless of weekday -- including on the years one of them IS itself a Sunday, which is the root of everything below. lectio keeps its own generic `ef-christmas-0-` (or, on a Sunday, `ef-christmas-sunday-0`) naming instead: a genuine, historically stable SLUG divergence (this part of the entry is unchanged since the fixture refresh that first measured 138). CITATION component, new this task: Important 3(a) (tools/bootstrap_lectionary.ml's own `nativity_octave_entries`) gave these three slugs a real, twice-Missal-verified citation for the first time (\"Diebus infra octavam Nativitatis Domini, II classis\": Tit. 3,4-7 / Luc. 2,15-20, docs/research/scan1.txt:6281-6329 and scan2.txt:6900-6960, each date's own rubric -- \"Missa Puer natus est nobis, ut supra [28]\" -- pointing straight at it). It does NOT converge with lectio's own answer, on ANY of the 138 rows, because lectio's own resolution never reaches this direct formulary either -- empirically, it always falls back to whichever true civil Sunday precedes the date (Christmas Day's own Mass, Advent IV's, or the genuinely different \"Dominica infra octavam\" Mass, Gal. 4,1-7/Luc. 2,33-40, depending on the year's own alignment) -- so all 138 rows, not merely a subset, now carry a citation diff alongside the pre-existing slug one. VERDICT, split by the SAME 138-row population, not two entries: on the 119 rows where 29-31 December is an ordinary WEEKDAY that year, colitur's `Tit. 3,4-7` citation is CONFIRMED CORRECT against the Missal (verdict colitur would be accurate for this subset alone). On the 19 rows where 29-31 December IS ITSELF a Sunday that year (2006-12-31, 2007-12-30, 2012-12-30, 2013-12-29, 2017-12-31, 2018-12-30, 2019-12-29, 2023-12-31, 2024-12-29, 2028-12-31, 2029-12-30, 2030-12-29, 2034-12-31, 2035-12-30, 2040-12-30, 2041-12-29, 2045-12-31, 2046-12-30, 2047-12-29 -- independently re-derived against `date -d +%u` for every one of the 138 dates, not estimated), RG 69's own unconditional rule means the SUNDAY'S distinct Office should be observed instead -- colitur's `Temporal_ef` does not distinguish the two cases at the slug level at all, so it emits the weekday formulary there too, which is WRONG by this reading. This is a genuine [Temporal_ef] defect (not a lectionary/bootstrap issue, and not something this generator can fix on its own), out of this task's own safe scope -- a behaviour change to a shared, multi-round-reviewed kernel-adjacent function, the same discipline C25 below explains for its own one-hop-removed consequence of this identical gap. [verdict] is [open], not [colitur], because a single per-entry verdict cannot honestly claim BOTH sub-populations at once, and the coordinator's own instruction was explicit: mark it questioned, not leave a verdict the evidence contradicts. Gated on the literal date window (month=12, day in {29,30,31}) AND colitur's own slug family (`nativity_octave_day_slugs`) AND `subset diffs [ Slug_f; First_f; Gospel_f ]` (widened this task from the exact-match `diffs = [ Slug_f ]` the pre-citation-comparison entry used -- narrowing back to exact-match would have silently re-excluded the very citation divergence this task exists to surface). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 138. NARROWED (Nativity-Octave fix, 2026-08-18): 138 -> 119. Nineteen of these days are 26-28 December, which colitur now builds as days WITHIN the Octave of the Nativity (RG 67) rather than generic Christmastide ferias, so their temporal identity -- and with it their divergence shape -- changed. Not a re-adjudication: the same RG 69 disagreement on the days that remain. VERDICT CLOSED 2026-08-18, open -> colitur, because the defect this entry named was FIXED rather than re-argued. The note above splits the old 138 rows into 119 weekday rows, where it already recorded colitur's citation as CONFIRMED CORRECT and said verdict colitur would be accurate for that subset alone, and 19 Sunday rows where colitur emitted the weekday formulary in defiance of RG 69 and was plainly wrong -- a genuine Temporal_ef defect it deliberately left out of scope. Temporal_ef now excludes Sundays from the octave-day branch (register 6.17, confirmed against the oracle: missalemeum shows Sunday in the Octave of Christmas on 2035-12-30 where colitur showed a feria), so those 19 rows no longer occur at all and the count fell 138 -> 119 -- exactly the population this note had already enumerated by date. What remains is only the subset this entry itself certified correct: colitur says the Missal's own Diebus infra octavam formulary, lectio falls back to whichever civil Sunday precedes the date. Verdict colitur, on the reasoning already written here rather than on anything new. NARROWED, not closed, 2026-08-18: still 119 rows, but the CAUSE has halved. lectio now serves the Missal's own 'Diebus infra octavam Nativitatis Domini' Mass on 29-31 December (Titus 3:4-7 / Luke 2:15-20) instead of falling back to the Sunday's, so First_f and Gospel_f no longer differ on any of these days -- what remains is Slug_f alone, colitur's ef-nativity-octave-day-N against lectio's ordinary ef-christmas-N-weekday. That is naming, not disagreement: the two engines now read the same Mass on the same day. This entry's own gate already admits a Slug_f-only subset, which is why the count did not move even though the substantive half of the divergence did.") (expected_rows 119)) ((id C39) (citation "RG 33, primary text, docs/research/LT.txt: \"Vigilia II aut III classis penitus omittitur, si occurrat in dominica quavis, aut in festo I classis, vel si festum cui praemittitur in alium diem transferri aut ad commemorationem reduci contingat\" -- \"A vigil of the II or III class is entirely omitted if it occurs on any Sunday whatsoever, or on a feast of the I class, OR IF THE FEAST IT PRECEDES happens to be transferred to another day or reduced to a commemoration.\" The third clause is the one at issue; RG 34 places the feast on the day after its vigil, which is how the rule is evaluated. Register §6.31.") (verdict colitur) (note "colitur implements all three of RG 33's omission triggers; lectio implements the first two only. On these 10 days the vigil's own weekday is unremarkable -- it is the FEAST that fails to keep its day, either transferred away under RG 96 or reduced to a commemoration under RG 94 -- so lectio still emits the vigil and colitur omits it entirely. Two shapes, both in the rubric's own words. SIX rows are 'ad commemorationem reduci': 10 August falls on a Sunday, the II-class Sunday outranks St Lawrence's II-class feast (RG 15), the feast is commemorated rather than celebrated, and the vigil of 9 August goes (2008, 2014, 2025, 2031, 2036, 2042). FOUR are 'in alium diem transferri': the Sacred Heart takes 24 June, the Nativity of St John the Baptist transfers under RG 96, and its vigil of 23 June goes (2022, 2033, 2038, 2044). 6 + 4 = 10, each date checked against the comparator's own output rather than apportioned by hand. Domain-wide this clause fires on 1 744 of the 3 074 246 days in 1583-9999 -- 1 199 St Lawrence, 347 St John the Baptist, 198 Sts Peter and Paul -- measured by diffing a pre-change binary against HEAD over the whole domain and classifying every changed day: three shapes, zero unexplained, and every one independently re-checked to confirm the feast really is absent from its own day. CORRECTED 2026-08-21, BEFORE THIS ENTRY WAS EVER REVIEWED: an earlier version of this note claimed the published Ordo -- the project's one witness outside the Divinum Officium -> missalemeum -> lectio lineage -- INDEPENDENTLY CONFIRMS colitur here, because it omits St Lawrence's vigil on 2025-08-09 where both software engines keep it. That claim does not survive its own check and is withdrawn. The Ordo covers 2024-2027 and omits that vigil on BOTH 2025-08-09 (where this clause says omit) and 2027-08-09 (where it says keep, 10 August being a Tuesday); 2026-08-09 is a Sunday, omitted by the rule's FIRST trigger anyway, and the fixture has no row for 2024-08-09. So the Ordo never shows St Lawrence's vigil on any date it covers, and its agreement on 2025-08-09 is a coincidence of a blanket gap, not evidence of the third trigger. The Ordo has nothing to say here in either direction. Recorded rather than quietly deleted because the withdrawn claim was the reason this entry was first written up as unusually well corroborated, and a reader who saw that framing should be able to see it retracted. WHAT THIS ENTRY ACTUALLY RESTS ON, then. Two things, neither of them a second witness. FIRST, the primary text, which admits no interpretive latitude: RG 33 joins three triggers with 'vel'/'aut' and the third is a plain conditional on the feast's own fate. SECOND -- and this is the substantive point -- lectio does not DISAGREE with the clause, it never evaluates it. 'RG 33' appears nowhere in lectio's production code, only in one test file's comments; its Sunday behaviour is emergent from ordinary rank comparison (a II-class Sunday outranks a III-class vigil), not from a transcribed rule. The third trigger cannot emerge that way at all, because it turns on what is observed the day AFTER, and a per-day precedence contest has no access to it. That is exactly why implementing it in colitur required a whole-year pass and a new field on Precedence.rules rather than a branch in disposition. So the divergence is architectural, not exegetical: on these 10 days lectio is not asserting that the vigil survives, it is producing the only answer its shape can produce. missalemeum and Divinum Officium inherit the same limit by lineage. Gated on lectio's own slug being one of the three vigils this clause can reach and colitur's not being a vigil -- identity on both sides, not a diff-set shape. The Assumption's and the Ascension's vigils are absent from that list because their I-class feasts always keep their own day: 0 occurrences across the whole domain, measured rather than assumed.") (expected_rows 10)) ; C8 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 26. lectio builds ; Rogation Monday and Tuesday now (RG 87, Easter+36/+37, violet under ; RG 128(d)). The Wednesday is NOT built there and deliberately so: Easter+38 ; is the Ascension's Vigil, which wins the day, and the rubric asks for a ; commemoration -- a channel lectio's one-office-per-day temporal function ; does not have. That is the same reason this entry never covered the ; Wednesday either. Citation preserved in the register. ; C14 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 3. lectio has ; adopted RG 96(a)/97/98. Its transferIfImpededEF resolved each impeded ; I-class feast independently, so in 2008, 2035 and 2046 St Joseph and the ; Annunciation both walked onto the Monday after Low Sunday and Joseph, losing ; there, was observed on no day of those years at all. lectio now resolves the ; year's transfers as a set (its new efTransferPlan): the Annunciation takes ; the Monday as its sedes propria under RG 96(a) and Joseph takes the Tuesday. ; colitur's reading was right and is unchanged; the citation above is the one ; lectio adopted. Preserved in the register. ; C15 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 7. lectio has ; adopted the Holy Family Mass propers' own 13-January rubric -- "Si festum ; S. Familiae occurrerit die 13 ianuarii, Missa dicitur de festo S. Familiae, ; SINE COMMEMORATIONE Baptismatis D.N.I.C." -- so on 2008, 2013, 2019, 2030, ; 2036, 2041 and 2047 it now observes the Holy Family and omits the Baptism ; outright, as colitur already did. lectio already had the Holy Family Mass on ; every other Sunday after Epiphany; 13 January was the one date it could not ; reach. colitur unchanged. Preserved in the register. ; C16 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 20. lectio builds RG 17(a)'s own 2-January fallback now, so the years with no Sunday in the 2-5 January window have the Holy Name office instead of none. ; Citation preserved in docs/research/rules-register.md. ; C17 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 439 -- the ; LARGEST divergence class between the two engines. lectio now builds the ; votive Office of Our Lady on Saturday (RG 78) and says RG 309(a)'s own Mass ; for it, in both halves this entry covered: the colour, and the citations. ; It took two commits there because they are two rubrics -- RG 78 keeps the ; office, RG 309(a) chooses among the Missal's five seasonal formularies -- ; and fixing only the first would have left the day announcing Our Lady and ; reading the feria's Mass, which is the bug colitur itself shipped briefly ; and fixed in its v0.3.0. Citation preserved in the register. ; C18 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 450. lectio ; adopted the RG 124 colour corrections -- red is for Apostles, Evangelists ; and Martyrs, and missalemeum had ten confessors and virgins red with two ; actual martyrs white, the rule applied backwards in both directions. The ; largest single divergence class in this file, closed because the other ; engine now follows the same rubric. Citation preserved in the register. ; C19 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 7 (and 35 before the Epiphany week anchor was fixed). The residue this entry named -- the Holy Family interaction in seven specific years -- no longer differs once Passiontide's own weeks are numbered apart, because the week-index offset it rested on is gone. ; Citation preserved in docs/research/rules-register.md. ; C20 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 14. lectio carries the readings of the Common-routed saints now, and of the three with proper Masses that simply had none. Every day of 2005-2050 resolves a reading there. ; Citation preserved in docs/research/rules-register.md. ; C21 -- CLOSED, task 8 fix round 1 (coordinator review), REMOVED not ; re-adjudicated to a different verdict: its own diagnosis ("colitur's ; step 3 cannot reach a correct answer for the fixed Christmastide ; slugs") was SUPERSEDED, not merely fixed around, by Important 3(a)'s ; direct Missal formulary for ef-nativity-octave-day-{5,6,7} (which ; resolves at step 2 now, not step 3 at all) and the Critical-1/2 fixes ; elsewhere in this same fix round. What C21 used to cover has split ; cleanly into C6 above (widened, re-opened) and C25 below (a newly, ; more precisely diagnosed one-hop-removed consequence of the SAME RG 69 ; gap) -- test_differential.ml's own layer_c_reason carries no C21 ; predicate any more, the same discipline this file's own C2-C5/C7/ ; C9-C13 closures already established. ; C22 -- CLOSED, Task 9 (branch ef-lectionary, 2026-08-17), REMOVED not ; re-adjudicated to a different verdict: it stopped occurring entirely ; (0 of 16801 rows), the same shape this file's own C2-C5/C7/C9-C13/C21 ; closures already established, and for the same reason -- the OTHER ; engine was fixed to agree, not colitur changed. The entry's own note ; called this out explicitly at the time ("A genuine LECTIO bug, reported ; here for upstream, NOT patched in this task"): lectio's own lectionary ; keyed the three Lenten Ember days under the generic "ef-lent-1-" ; family while its calendar computed "ef-lent-ember-{wed,fri,sat}", so its ; own [caldata.Readings] never reached them and it fell back to Lent I ; Sunday's Mass. That is now fixed upstream (lectio v0.46.1, keys renamed, ; plus a test there that fails the build on any unreachable lectionary key ; rather than silently serving a plausible wrong Mass), and the fixture was ; regenerated from it -- so both engines now show the Ember day's own ; proper and there is nothing left to allow-list. The citation is preserved ; in docs/research/rules-register.md's own closure record, not deleted: it ; was a real divergence, correctly adjudicated in colitur's favour at the ; time. test_differential.ml's own layer_c_reason carries no C22 predicate ; any more. ; C23 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 230 -- the second largest class in this file. lectio numbers Passion week and Holy Week apart now, so Holy Week has its own six Masses instead of borrowing Passion week's. Good Friday was reading Passion Friday's Mass. ; Citation preserved in docs/research/rules-register.md. ; C36 -- Good Friday's colour, split out of C23 (ef-oconnell-rubrics branch). ; C23's own note says "identity already agrees on all six -- season/slug/rank/ ; colour were never the problem". That is no longer true of ONE of its six ; days, so the row moves rather than C23's gate being loosened for all six. ; 184 + 46 = 230, C23's own former count, no residue -- both numbers derived ; from the comparator's own output, not hand-counted. ; C36 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 46. lectio ; adopted RG 128(b)/RG 132 and colours Good Friday black, so the colour no ; longer differs and the day's rows FOLD BACK into C23, whose citation ; divergence (lectio conflates Holy Week with Passion week) is unchanged. ; C23 returns to 230 accordingly -- this entry existed only to hold Good ; Friday apart while its diff set had a third member. ; C25 -- CLOSED, BVM Saturday Mass (2026-08-17), REMOVED not re-adjudicated: ; 0 of 16801 rows. It covered `ef-christmas-1-saturday`, a Holy-Name-week ; Saturday with no proper of its own, which resumed the preceding Sunday's ; identity through step 3. Every one of those days is an unoccupied IV-class ; Saturday, so it carries RG 78's office -- and now RG 309(a)'s Mass for it, ; which answers before step 3 is ever reached. The days did not stop ; differing from lectio; they moved to C17, whose cause (colitur builds the ; office and its Mass, lectio builds neither) now explains them completely. ; Same "closed because the shape it named no longer occurs" discipline as ; C2-C5/C7/C9-C13/C21/C22, and the citation is preserved in the register. ; C26 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 43. Passion Tuesday has its own Mass (Dan 14:27, 28-42 / John 7:1-13). lectio's ef-passiontide-0-tuesday had carried HOLY Tuesday's, which this entry diagnosed; separating the two weeks fixed the cause rather than the symptom. ; Citation preserved in docs/research/rules-register.md. ; C27 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows. lectio adopted the ; correction. Its ini carried St Thomas the Apostle's Mass under ; `ef-advent-ember-sat`; it now carries the Advent Ember Saturday's own, ; 2 Thess 2:1-8 / Luke 3:1-6. The two engines agree because both now follow ; the Missal, not because both inherited the same wrong value. Citation ; preserved in docs/research/rules-register.md; same discipline as C2-C5, ; C7, C9-C13, C21, C22, C25. ; C28 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, same cause as C27 ; above. lectio's ini carried St Matthew's Mass under ; `ef-september-ember-sat`; it now carries Heb 9:2-12 / Luke 13:6-17. ; C29 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 26. lectio builds the Holy Name on the Sunday falling 2-5 January and gives it Acts 4:8-12 / Luke 2:21. ; Citation preserved in docs/research/rules-register.md. ; C30 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 91. The ferial days of 2-5 January take the Circumcision's Mass, per the Missal's own rubric at the feast ("Diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut die 1 ianuarii"), instead of falling back to the Sunday within the octave. ; Citation preserved in docs/research/rules-register.md. ; C31 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 98. The ferias ; between Epiphany and the first Sunday after it repeat Epiphany's own Mass ; in lectio now (Isa 60:1-6 / Matt 2:1-12); they had been taking the Mass of ; the Sunday that follows them. Its rows moved to C1, which is why that entry ; grew rather than shrank. Citation preserved in the register. ; C32 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 99. Closed by the same Passiontide split and the twelve lectionary entries that came with it. ; Citation preserved in docs/research/rules-register.md. ; C33 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 46. Corpus Christi has its own formulary in lectio now; it had been reading the preceding Sunday's Mass through the walk-back. ; Citation preserved in docs/research/rules-register.md. ; C34 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 46. The Sacred Heart, same cause and same fix as C33. ; Citation preserved in docs/research/rules-register.md. ; C35 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 60. The ferias of the first weeks after Epiphany and after Pentecost have their proper Masses (RG 299) instead of the preceding Sunday's. ; Citation preserved in docs/research/rules-register.md. ; C37 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows. lectio recoloured ; both August vigils violet under RG 128. This is the entry whose own note ; called the shared lineage "the sharpest demonstration in the project" -- ; colitur, lectio and missalemeum all carrying the same two wrong colours. ; Two of the three now carry the right one, and for the stated reason. ; C38 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 70. ubaldus and didacus take their Masses from a Common (Missa Statuit and Missa Iustus), which lectio now carries -- this entry's own note said it could not close without lectio gaining a Commons concept, and the readings arrived instead of the abstraction, which was enough. ; Citation preserved in docs/research/rules-register.md.