aboutsummaryrefslogtreecommitdiff
path: root/tools/bootstrap_lectionary_of.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bootstrap_lectionary_of.ml')
-rw-r--r--tools/bootstrap_lectionary_of.ml43
1 files changed, 39 insertions, 4 deletions
diff --git a/tools/bootstrap_lectionary_of.ml b/tools/bootstrap_lectionary_of.ml
index a679b01..f94a7db 100644
--- a/tools/bootstrap_lectionary_of.ml
+++ b/tools/bootstrap_lectionary_of.ml
@@ -376,9 +376,12 @@ let named_overrides =
[ (* Content-verified against the real reading (Isa 62:1-5/Matt 1:18-25,
the genealogy/annunciation-to-Joseph narrative): this is the VIGIL
Mass, not "Christmas Day" despite the bare name -- the real Christmas
- DAY Mass (Isa 52:7-10/John 1:1-14) is ABSENT from lectio's own 988
- keys entirely, a genuine, notable gap (see the generator's own
- coverage report). *)
+ DAY Mass is ABSENT from lectio's own 988 keys entirely (a genuine
+ gap, not a mapping bug here). CLOSED, fix wave I8: [hand_authored]
+ below now injects it directly (Isa 52:7-10/John 1:1-18, OLM 1981's
+ own "16 Ad Missam in die") -- see that table's own citation for the
+ full argument, including why it is not routed through THIS table
+ (there is no ini section to override). *)
("christmas", [ "of-nativity-vigil" ]);
(* Content-verified (Sirach 24 Wisdom-personified / Eph 1 / John 1:1-18):
this is the SECOND SUNDAY AFTER THE NATIVITY (Normae n.36), not a
@@ -621,6 +624,38 @@ let weekday_letter = function `I -> "i" | `II -> "ii"
let slug_or_die name = match Slug.of_string name with Ok s -> s | Error e -> die "%s" e
+(* Fix wave I8 (final-review.md, 2026-08-25-colitur-of-phases-3-5): the
+ Christmas DAY Mass ("of-nativity") is genuinely absent from lectio's own
+ 988 ini keys -- niedziela.pl's own harvest never covered it at all, not
+ a mapping bug in this generator (already noted, correctly, in
+ [named_overrides]'s own comment on the "christmas" base above, which is
+ the VIGIL, not the Day). Confirmed sourceable, not merely "cannot
+ convert": docs/research/of/olm-1981-ocr.txt:4513-4520 ("16 Ad Missam in
+ die"), the same primary authority this whole module already cites for
+ the cycle rules (lectionary_of.mli). First reading and Gospel only,
+ matching this file's own scope everywhere else (data/of/lectionary.sexp
+ :2's own header, and {!Colitur_kernel.Validate}'s [First; Gospel]
+ assertion) -- OLM's own Second Reading (Heb 1:1-6) and Psalm (Ps 97) are
+ out of scope for the identical reason every other day's Second Reading
+ and Psalm are (I7, a kernel-level limitation, not this file's own).
+
+ The Gospel (Io 1, 1-18) carries OLM's own "longior/brevior" choice
+ ("1-18 (longior) vel 1-5.9-14 (brevior)") -- the LONGER form is used,
+ the same already-disclosed limitation this file's own LINEAGE section
+ states for every other short/long-form pair in this data ("Nor can it
+ show OLM's short/long-form reading alternatives, which niedziela.pl does
+ not distinguish"), not a new one introduced here.
+
+ Injected directly as a Lectionary entry, not through the ini-derived
+ [mapped]/[entries_of] pipeline above -- there is no ini section to
+ derive it FROM. Merged into [entries] before {!assert_reachable} (so it
+ is checked exactly like every other emitted key: "of-nativity" is a
+ real Rite_of.Temporal_of slug) and before {!Lectionary.of_entries}. *)
+let hand_authored =
+ [ ( slug_or_die "of-nativity",
+ [ { Citation.part = Citation.First; reference = "Isaiah 52:7-10" };
+ { Citation.part = Citation.Gospel; reference = "John 1:1-18" } ] ) ]
+
let entries_of (slug, r) =
match r with
| Flat cs -> [ (slug_or_die slug, cs) ]
@@ -866,7 +901,7 @@ let () =
let resolved = resolve_sections secs in
let sanctoral_slugs = reachable_sanctoral_slugs () in
let mapped, report = map_bases resolved ~sanctoral_slugs in
- let entries = List.concat_map entries_of mapped in
+ let entries = List.concat_map entries_of mapped @ hand_authored in
let temporal_slugs = reachable_temporal_slugs () in
let date_keyed_slugs = reachable_date_keyed_slugs () in
let uncovered_temporal = assert_reachable entries ~temporal_slugs ~sanctoral_slugs ~date_keyed_slugs in