; data/ef/expected-divergences-lms.sexp -- Task 6 (2026-08-21-colitur- ; celebrant-rubrics-phase1)'s cited allow-list for the LMS Ordo comparison ; (test/test_lms_ordo.ml). Extended by the Witnesses task (2026-08-22, ; same phase) from the single 2024-2025 window (2024-11-27..2025-12-31) ; to three: 2023-2024 (2023-12-01..2024-12-31) and 2025-2026 ; (2025-11-28..2026-12-31) joined it. L3/L4 below fired only in the ; 2023-2024 window -- neither recurs in the other two, a fact worth ; keeping visible rather than merging away (see [expected_rows] on each). ; ; A SEPARATE file from data/ef/expected-divergences.sexp (the lectio ; allow-list) and data/ef/expected-divergences-missalemeum.sexp (the ; missalemeum/Divinum-Officium-lineage allow-list): this Ordo is a THIRD, ; independent lineage (a printed England & Wales diocesan book, ISBN ; 9781739209636, compiled directly from the 1962 Missal/1960 rubrics -- ; never passed through Divinum Officium, missalemeum or lectio), so its ; own divergences are kept apart rather than tangled into either existing ; file's own provenance. ; ; [verdict] names which side this task's own primary-source research ; backs, the SAME convention the missalemeum file's own header states: ; not always "colitur". ; ; L1 -- CLOSED, FIXED (whole-branch review finding 1, 2026-08-22): was ; 2025-11-03 (All Souls' Day, transferred from 2 November, a Sunday that ; year). colitur used to say the Creed IS said (true) on rank alone ; (475(b), Class1) where the Ordo, correctly, says it is not: "Mon 3 ALL ; SOULS' DAY I Cl B / No Gl Sequence No Cr Pr of the Dead No Blessing". ; ; This entry's own PREVIOUS text argued the divergence could not be fixed ; without a signature change, because [creed]'s inputs (temporal/observed/ ; date) have no notion of "this Mass is a Requiem". That argument was ; wrong: {!Colour.Black} is used by exactly TWO celebrations in the whole ; engine (verified by grepping every [colour Black]/[Colour.Black] site in ; lib/ and data/) -- [commemoration-of-all-souls] (data/ef/sanctoral.sexp) ; and Good Friday (temporal_ef.ml, already [false] via the RG 23(b) feria ; exclusion regardless of colour, and has no Mass at all in the ; 1955-restored Holy Week) -- so on every day this engine can construct, ; [colour = Black] if and only if the Mass is a Requiem: a citable ; implication (RG 117 assigns black to Masses of the dead) on THIS DATA, ; not a heuristic guess. [Rite_ef.Rubrics_ef.creed] now reads ; [observed.colour] as RG 476(f)'s own guard, positioned ahead of 475(b)'s ; rank branch; see rubrics_ef.ml's own header and the guard's own comment ; for the full account, and test_rubrics_ef.ml's ; [test_colour_black_population_is_exactly_two] for the test that fails ; loudly the day a third [Colour.Black] celebration is ever added, so this ; proxy cannot silently rot. ; ; BLAST RADIUS, measured (full 1583-9999 sweep of {!Colitur_kernel. ; Calendar.year}, grouped by [observed]'s own slug): 8 416 days changed ; from [true] to [false], every one [commemoration-of-all-souls] (missing ; from exactly 1 of the 8 417 domain years -- a boundary-year transfer ; effect at 1583/9999, not a third population member: see the "know what ; each layer cannot see"-style caveats elsewhere in this project for other ; instances of the same edge). A further 8 416 [Colour.Black] days are ; Good Friday ([ef-passiontide-2-friday]), unchanged by this fix (already ; [false] before it, via the earlier feria exclusion) -- confirmed ; [creed_true_among_black = 0] after the fix, over the WHOLE domain, not ; merely the fixture's own 2024-2025 window. ; ; `colitur day`/`colitur readings` are unaffected (neither prints [creed]); ; `colitur rubrics` output changes on exactly the 8 416 days above. ; L2 -- OPEN, colitur's own gap, found while building L1's fix (whole- ; branch review finding 2, 2026-08-22). NOT an active entry in this ; file's own machine-checked sense (no code loads or cross-checks an ; "L2" id anywhere -- this file's own [allow_entry] machinery is scoped ; to the CREED axis, {!test_lms_ordo.test_creed_matches_or_is_explained} ; alone; a second, unrelated axis reusing the same id-lookup mechanism ; would let one test's "declared but never fired" check spuriously trip ; on the other axis's own entry). Recorded here as prose only, the same ; discipline this file's own closed L1 note above and ; expected-divergences.sexp's own closed C-entries already use for a ; citation worth preserving without a live parser hook -- the REAL ; enforcement is test_lms_ordo.ml's own [test_formulary_override_matches], ; which asserts this population is exactly 3 days directly. ; ; Strengthening test_lms_ordo.ml's formulary-override check from PRESENCE ; to the actual STRING (this same finding 2) surfaced a real, separate ; defect in step 3 of the reading chain ({!Rite_ef.Lectionary_ef. ; readings}), independent of the Creed axis above. Three real days in the ; fixture window -- 2025-05-30 (Friday), 2025-06-02 (Monday), 2025-06-03 ; (Tuesday), all between Ascension Thursday and the following Sunday -- ; have no proper of their own and fall to {!Colitur_kernel. ; Mass_formulary.Preceding_sunday}. colitur resumes the nearest CALENDAR ; Sunday (the "5th"/"6th Sunday after Easter", Paschaltide's own week ; 6/7), but the Missal, and the Ordo, keep saying ASCENSION'S OWN Mass ; through this stretch instead: "Mass of the Ascension" on all three ; days, never a numbered-Sunday title. Step 3 has no notion of "inside ; Ascension's own after-feast period" -- it always resumes the nearest ; preceding Sunday, numbered or not. ; ; STRUCTURAL, not a fixture artefact: the Ascension is a fixed Easter+39 ; (a Thursday inside Paschaltide week 6), so every feria whose own ; Preceding_sunday fallback would otherwise resolve to week 6 or 7 falls ; in this same stretch, every year -- this is not a coincidence of ; 2024-2025 alone, though only this fixture's own window has been checked ; against a real Ordo. ; ; NOT FIXED in this task: fixing it means teaching step 3, or the ; lectionary data, about Ascension's own after-feast period -- the same ; shape as the Christmastide "infra octavam Nativitatis" entries ; data/ef/lectionary.sexp already carries directly rather than resolving ; through this fallback -- a lectionary-data change out of a fix round's ; own scope. test/test_lms_ordo.ml's own [is_after_ascension] excludes ; this population from the general mapping (bounded ABOVE by Pentecost, ; not merely "later than Ascension" -- see its own citation, corrected ; during the Witnesses task after a first version manufactured 8 false ; failures by matching any later date in the same civil year), and ; [test_formulary_override_matches] asserts its exact size per window. ; ; CORRECTED (Witnesses task, 2026-08-22): this note previously said "exactly ; 3 real days" as though that were a universal count. Extending the ; comparison to 2023-2024 and 2025-2026 showed it is not -- the population ; depends on which OTHER days that particular year's Ascension-adjacent ; week happen to have their own competing propers (a saint, a vigil), so ; it varies year to year: 3 in 2024-2025, 1 in 2023-2024 (only 30 May 2024 ; -- Rogation Monday, 6 May 2024, is BEFORE Ascension and correctly resumes ; the ordinary "5th Sunday after Easter" instead, once the exclusion's own ; date comparison was corrected to test "after Ascension AND before ; Pentecost" rather than "week 6 or 7"), 2 in 2025-2026. All three counts ; measured directly, all showing "Mass of the Ascension", none unexplained. ; ; Domain-wide count: unmeasured -- "which feria is inside Ascension's own ; after-feast period" is not a distinct predicate anywhere in this ; codebase to sweep on. Structurally recurs every year, though the exact ; per-year count is now known to vary (1-3 in the three years measured), ; not a flat "3 days/year". ; L3 -- OPEN, colitur's OWN genuine gap, found extending this suite to the ; 2023-2024 window (Witnesses task, 2026-08-22). Fired once: 2024-02-24. ((id L3) (citation "The Missale Romanum's own CALENDARIUM table, February, footnote (docs/research/LT.txt:5011-5013, the Missal's printed calendar pages, not the numbered Rubricae Generales chapters): \"In anno bissextili mensis februarius est dierum 29, et festum S. Matthiae celebratur die 25 februarii, ac festum S. Gabrielis a Virgine perdolente 28 februarii, et bis dicitur sexto calendas, id est die 24 et die 25\" -- in a leap year February has 29 days, and the feast of St Matthias is kept on 25 February (not 24), with 24 and 25 February BOTH called \"the 6th kalends\"; St Gabriel of Our Lady of Sorrows (ordinarily 27 February) shifts to 28 February by the same rule. This bissextile shift is not RG-numbered (it is a calendarium footnote, not a Rubricae Generales paragraph) and is NOT scan-verified in this session -- only the LT.txt transcription was checked; scan1.txt/scan2.txt were searched for \"bissext\"/\"Matth\" and turned up only the unrelated Golden-Number/dominical-letter passage, not this specific calendarium footnote, so this citation rests on the transcription alone.") (verdict ordo) (note "colitur has NO bissextile-shift rule anywhere (grepped lib/rites/rite_ef/*.ml and data/ef/*.sexp for \"bissext\"/\"leap\": zero hits outside a code comment naming the saint, and the rules-register.md itself is silent on it too) -- St Matthias stays fixed at 24 February every year, leap or not. 2024 is a leap year: colitur's own [matthias] entry (Class2, an Apostle, RG91 entry 16 -- verified from the table itself to genuinely OUTRANK entry 18's privileged Ember-Saturday-of-Lent feria, so colitur's RANKING logic is not at fault here) WINS 24 February 2024 outright in colitur's output, correctly saying the Creed per RG475(e)'s Apostle clause. The Ordo shows no St Matthias anywhere near this date at all: 24 February 2024 is titled plainly \"EMBER SATURDAY of LENT\" (No Cr) and 25 February 2024 (a Sunday, 2nd Sunday in Lent, I class) is titled plainly \"2nd SUNDAY in LENT\" (Cr, but via RG475(a)'s own Sunday clause, not RG475(e)) -- consistent with Matthias having correctly MOVED to the 25th and then lost outright to the I-class Sunday there (RG91 entry 6 over entry 16), never even surviving as a commemoration (an I-class Sunday's own admission cap, RG111, is tight enough to exclude an ordinary II-class saint entirely -- the same shape already established for RG16(a)-adjacent cases elsewhere in this project). Both the 24th and 25th sides of the Ordo's silence are explained by ONE root cause (the missing shift), not two independent gaps -- a coherent, single-cause account, not a coincidence. BLAST RADIUS, roughly measured (a throwaway domain sweep, tools/probe_matthias.ml, run once for this task and not committed): of 2 041 leap years in 1583-9999, colitur observes [matthias] on 24 February in 1 650 of them -- an UPPER BOUND on how many years this gap could affect (some of those 1 650 years may see IDENTICAL final output either way, e.g. if Matthias would also win on the 25th against whatever competes there that year; a precise count needs the shift actually implemented, which is out of this task's own no-lib-changes scope). The Gabriel/27-28 February sibling shift is not witnessed by this fixture at all (no divergence on either date in this window) but is the same root cause and would need the same fix.") (expected_rows 1)) ; L4 -- OPEN, adjudicated FOR colitur (a defensible primary-source reading, ; not a fix confirmed against the Ordo -- the Ordo's own contrary reading is ; also textually arguable, see below). Fired once: 2023-12-24. ((id L4) (citation "RG 30(a) (Caput V, De Vigiliis, docs/research/LT.txt:959-961): \"vigilia Nativitatis Domini quae, IN OCCURRENTIA, locum tenet dominicae IV Adventus, de qua, proinde, NULLA FIT COMMEMORATIO\" -- the Vigil of the Nativity, when it occurs [on a Sunday], TAKES THE PLACE of the 4th Sunday of Advent, of which, accordingly, no commemoration is made -- the identical \"locum tenet ... nulla fit commemoratio\" shape RG16(a) uses for a Feast of the Lord occurring on a II-class Sunday, which colitur already implements and which RG475(a) explicitly extends the Creed to (\"in qualibet dominica, etsi eius Officium alicui festo locum cedat\").") (verdict open) (note "2023-12-24 (the 4th Sunday of Advent AND Christmas Eve, a genuinely rare coincidence -- roughly 1 year in 7 -- absent from both the 2024-2025 and 2025-2026 windows, where Christmas Eve falls on a Tuesday and a Wednesday respectively). colitur says the Creed IS said (true), reading [temporal]'s own weekday (Sunday) per RG475(a)'s clause, positioned ahead of the vigil-exclusion check in {!Rite_ef.Rubrics_ef.creed} -- unconditionally, the same way it already does for RG16(a)'s Feast-of-the-Lord case. The Ordo says \"No Gl No Cr\" for this date. ADJUDICATED FOR COLITUR, not merely left open by default: RG30(a)'s own \"locum tenet ... nulla fit commemoratio\" language is textually closer to RG16(a) (which colitur already treats as Creed-preserving) than to an ordinary vigil superseding a Sunday -- the Vigil does not merely WIN THE DAY, it takes the SUNDAY'S OWN IDENTITY, the same shape RG475(a) was written to reach. The COUNTER-reading is real and not dismissed here: RG475(a)'s own text says \"locum cedat ... festo\" (gives way to a FEAST), and RG35 (Caput VI) classifies feria/vigilia/festum as three distinct liturgical-day categories -- a strict textual reading could confine 475(a)'s override to FEAST-displacement only, leaving a VIGIL-displaced Sunday to fall through to the general vigil exclusion (476, via RG33's own \"a vigil is a distinct category\" reasoning already coded elsewhere in {!Rite_ef.Rubrics_ef.creed}). Left OPEN rather than closed on this task's own authority: adjudicating scripture-grade primary-source questions is out of scope for a witness-wiring task, and the two readings are both defensible. Not fixable inside this task's own no-lib-changes constraint regardless of which reading eventually wins.") (expected_rows 1))