; data/of/expected-divergences-litcal.sexp -- of-litcal-layer task ; (2026-08-25)'s cited allow-list for the litcal external-validation layer ; (test/test_litcal_of.ml), fixture window 2023-12-03..2035-12-01 (twelve ; litcal liturgical years, 4382 civil days). ; ; ONE active entry. The Ordinary Time WEEK comparison (the actual risk this ; layer exists to validate, Normae n. 44's two-block resumption arithmetic) ; carries NO allow-list at all -- see test_litcal_of.ml's own ; [test_ordinary_time_week_matches] comment for why a witnessed week is ; zero-tolerance, not an "expected divergence" shape. ; L1 -- OPEN BY DESIGN, adjudicated "colitur" (a deliberate, cited design ; decision, not a defect on either side). Fires on every litcal row tagged ; EASTER_TRIDUUM: Holy Thursday's own evening Mass of the Lord's Supper, ; Good Friday, and Holy Saturday, across all twelve fixture years -- 3 ; dates x 12 years = 36 rows, exactly. ; ; litcal's own data model gives the Sacred Triduum a season value of its ; own (`liturgical_season: EASTER_TRIDUUM`), distinct from both LENT and ; EASTER. colitur's `Vocab_of.season` has no such value: it keeps the ; whole civil day of Holy Thursday, Good Friday and Holy Saturday inside ; `Lent`, per lib/rites/rite_of/temporal_of.ml's own top-of-module ; citation -- ; ; Normae n. 28 (PRIMARY): "Tempus Quadragesimae decurrit a feria IV ; Cinerum ad Missam in Cena Domini EXCLUSIVE" -- Lent runs from Ash ; Wednesday up to (excluding) the evening Mass of the Lord's Supper. At ; colitur's own civil-day granularity (one season per date, never a ; sub-day boundary), the excluded boundary is an EVENT within Holy ; Thursday's own civil day, not an earlier day -- so the whole day stays ; Lent. ; ; Normae n. 30 (PRIMARY, independent second anchor): "Dominicae huius ; temporis appellantur dominicae I, II, III, IV, V in Quadragesima. ; Dominica sexta, in qua initium sumit Hebdomada sancta, dicitur... ; 'Dominica in palmis de Passione Domini'" -- Holy Week (Palm Sunday ; through the Vigil) is Lent's OWN sixth week by the Missal's own prose, ; not a season outside Lent's numbering. ; ; Normae Titulus II's own six subsection headings (II-VI): FIVE are ; literally called a "tempus"; "Triduum paschale" is deliberately NOT -- ; a real textual signal that the document's own authors did not count ; the Triduum among the season vocabulary a day's season field needs to ; name, corroborated by the Missal's own Mass-propers structure printing ; "HEBDOMADA SANCTA" and "SACRUM TRIDUUM PASCHALE" as two separate ; headings, neither titled "tempus" either. ; ; So litcal's EASTER_TRIDUUM is a genuine, defensible IMPLEMENTATION ; choice (giving the Triduum its own practical season tag, useful for an ; API consumer), and colitur's `Lent` is an equally genuine, primary- ; source-argued READING of the same Normae text that declines to invent a ; sixth season value the text itself does not name. Neither side is wrong; ; this is a vocabulary question the two engines answer differently by ; design, not a computation either got wrong -- verdict "colitur" here ; means "colitur's own choice is deliberate and cited", not "litcal is in ; error". ; ; The ROW SELECTION that produces exactly 36, not 24 or 48, is explained ; in test/fixtures/litcal-temporal-2024-2035.sexp's own header and ; tools/extract_litcal_ordo.py's own top-of-file comment: Holy Thursday ; carries TWO non-vigil litcal rows on the same civil date (the Chrism ; Mass, LENT, and the evening Mass of the Lord's Supper, EASTER_TRIDUUM); ; the Chrism row is excluded upstream (in the fixture generator, not ; here) so the evening Mass -- the day's own actual public/parish liturgy ; -- represents the date, giving Holy Thursday the SAME season shape as ; Good Friday and Holy Saturday (each of which has only one non-vigil row, ; always EASTER_TRIDUUM) rather than an inconsistent 2-of-3 split. ((id L1) (citation "Normae nn. 28, 30; Normae Titulus II's own six subsection headings") (verdict colitur) (note "Holy Thursday (evening Mass)/Good Friday/Holy Saturday: litcal tags EASTER_TRIDUUM, colitur has no Triduum season value and keeps the whole day Lent -- a cited design decision, not a defect.") (expected_rows 36))