aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-17 21:12:35 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-17 21:12:35 +0200
commitdcce3a5936c2232aaabbb2e8552be24ea7decdbf (patch)
tree98a55dd0fba8435ba4c832244b1b103f4f1c2be6 /tools
parentd8ce8c3806111e1d1ba54d2ef99a8ae550c7567b (diff)
downloadcolitur-dcce3a5936c2232aaabbb2e8552be24ea7decdbf.tar.gz
colitur-dcce3a5936c2232aaabbb2e8552be24ea7decdbf.zip
fix(lectionary): the week after Trinity says its own assigned Mass
RG 299 located (scan1:1096-1098), which does two things at once. First it closes a standing gap: the ferial-Mass selection rule was recorded in the register as unconfirmed against the primary source, and step 3 said so in its own comment -- "lectio's own observed behaviour, not a confirmed Missal citation". It is confirmed now. "In reliquis feriis dicitur Missa dominicae praecedentis, nisi a rubricis aliter provisum sit", restated in the propers as "...nisi propria Missa assignetur". Second, that escape clause splits M26 shape 2 in half, which is why the shape was never resolvable as one thing. Shape 2(a), the week after Trinity, is fixed. Trinity is the temporal identity of its own Sunday, so a plain walkback lands on Trinity's Mass -- but the Missal prints a named formula for the following week, "Missa dominicae I post Pentecosten" (scan1:21758), precisely because the feast has taken that Sunday's own. Those ferias now resolve at step 2 from it and never reach the walkback. Shape 2(b), Christ the King's week, turns out not to be a bug at all. No proper Mass is assigned there -- checked directly, no rubric precedes that Mass heading (scan1:39163ff) -- so RG 299's default governs and "the Mass of the preceding Sunday" genuinely is Christ the King's own, which is what colitur emits and missalemeum does not. Kept open only because no rubric specific to that week was located either way; the verdict is now argued from the primary text rather than resting on oracle disagreement. No Thursday in the slug list: Corpus Christi is Easter+60, which IS that week's Thursday every year, so the ferial slug never exists. Found by the bootstrap's own reachability guard refusing to emit a key no Temporal_ef slug can match, not reasoned out in advance. Allow-lists: C35 opened (69 rows, verdict colitur -- lectio still walks back); C17 narrowed 406 to 397, nine Saturdays moving to C35 because they carry both a citation and a colour difference, with C35 gated to require the citation so a colour-only Saturday still falls to C17; M26 narrowed 30 to 27; M18 widened 352 to 355, the same three days keeping only their observed-identity difference. Register: section 6.11.
Diffstat (limited to 'tools')
-rw-r--r--tools/bootstrap_lectionary.ml40
1 files changed, 39 insertions, 1 deletions
diff --git a/tools/bootstrap_lectionary.ml b/tools/bootstrap_lectionary.ml
index 7fb186d..7df290b 100644
--- a/tools/bootstrap_lectionary.ml
+++ b/tools/bootstrap_lectionary.ml
@@ -599,6 +599,44 @@ let epiphanytide_weekday_citations =
(`TimeAfterEpiphany1, non_saturday_weekdays, pair ~first:"Rom 12:1-5" ~gospel:"Luke 2:42-52")
]
+(* RG 299's own escape clause, exercised (movable-date-specs follow-up,
+ 2026-08-17). The general ferial rule is "In reliquis feriis dicitur Missa
+ dominicae praecedentis, NISI A RUBRICIS ALITER PROVISUM SIT" (RG 299,
+ scan1.txt:1096-1098), restated in the propers as "Per totum annum, si
+ dicenda sit infra hebdomadam Missa de feria, adhibetur Missa dominicae
+ praecedentis, NISI PROPRIA MISSA ASSIGNETUR" (scan1.txt:4933-4935).
+
+ The week after Trinity Sunday is the clearest case of that exception in the
+ whole year. Trinity is the temporal identity of its own Sunday, so step 3's
+ walkback lands on Trinity's Mass -- but the Missal prints a NAMED formula
+ for the week immediately after it, "Missa dominicae I post Pentecosten"
+ (heading, scan1.txt:21758), precisely because the Sunday's own Mass has
+ been taken by the feast. Its readings are "Lectio Epistolae beati Ioannis
+ Apostoli. 1 Ioann. 4, 8-21" (scan1.txt:21801-21802) and "Sequentia sancti
+ Evangelii secundum Lucam. Luc. 6, 36-42" (scan1.txt:21813-21814).
+
+ Given directly here so these ferias resolve at STEP 2 and never reach step
+ 3's walkback at all -- which is both correct and the honest shape: the
+ Missal assigns them a Mass, so they have one, rather than inheriting one.
+
+ This is test_oracle.ml's own M26 shape 2(a). Shape 2(b), Christ the King's
+ week, is NOT the same case and is deliberately not given entries here: no
+ proper Mass is assigned there (checked, scan1.txt:39163 ff, no rubric
+ precedes that Mass heading), so RG 299's DEFAULT governs and the preceding
+ Sunday's Mass genuinely is Christ the King's own. *)
+let trinity_week_citations = pair ~first:"1 John 4:8-21" ~gospel:"Luke 6:36-42"
+
+let trinity_week_entries =
+ List.map
+ (fun wd -> (slug_or_die ("ef-time-after-pentecost-1-" ^ wd), trinity_week_citations))
+ (* NO Thursday: Corpus Christi is Easter+60, which IS the Thursday of this
+ week every year without exception, so the ferial slug never exists.
+ Found by the generator's own reachability guard rather than reasoned
+ out in advance -- the guard refuses to emit a key no Temporal_ef slug
+ can ever match, which is precisely the silent-lookup-miss this
+ lectionary has been bitten by before. *)
+ [ "monday"; "tuesday"; "wednesday"; "friday"; "saturday" ]
+
let epiphanytide_opening_entries =
List.concat_map
(fun (family, wds, cs) ->
@@ -750,7 +788,7 @@ let () =
let entries =
translated @ vigil_entries @ holy_week_entries @ passion_tuesday_entry
@ ember_saturday_corrections @ nativity_octave_entries @ holy_name_entries
- @ epiphanytide_opening_entries @ movable_feast_entries
+ @ epiphanytide_opening_entries @ trinity_week_entries @ movable_feast_entries
in
assert_reachable entries;
let lect =