aboutsummaryrefslogtreecommitdiff
path: root/data/of
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-26 13:57:14 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-26 13:57:14 +0200
commit03d3c00ccdde318207c8b4fdc456e5e64d6b4abf (patch)
treeeaa8b77b549f6751594b2868798c7ca2d1b3ca70 /data/of
parent9b8821f7b914c94f5b2c8eeda05407ee921b3d5a (diff)
downloadcolitur-03d3c00ccdde318207c8b4fdc456e5e64d6b4abf.tar.gz
colitur-03d3c00ccdde318207c8b4fdc456e5e64d6b4abf.zip
feat(of-lectionary): hand-author the Christmas Day Mass, close the gap
colitur readings --rite of printed "- | -" on 25 December every year -- lectio's own 988 keys never included the Christmas DAY Mass at all, only the Vigil (already correctly noted, but left unfilled, in tools/bootstrap_lectionary_of.ml's own named_overrides comment). Sourced, not guessed: docs/research/of/olm-1981-ocr.txt:4513-4520, "16 Ad Missam in die", the same primary authority this module already cites for the cycle rules. First reading and Gospel only, matching this file's own scope everywhere else (First/Gospel is the kernel's own boundary, I7, a separate deferred task) -- Isaiah 52:7-10 / John 1:1-18 (OLM's own LONGER form; the file's LINEAGE section already discloses that short/long-form choices are not modelled anywhere in this data, so this is an application of an existing limitation, not a new one). Injected via a new hand_authored table in the generator, merged into entries before assert_reachable/Lectionary.of_entries -- there is no ini section to derive this from. One new lookup_any call (readings' own existing temporal-slug fallback, unmodified) now resolves BOTH the formulary and the citations for 25 December from the same entry, so both halves of the "citations-unresolved"/"formulary" gap close together, not just the citation half. Verified across the WHOLE domain, not assumed: test_validate_of.ml's exhaustive sweep (COLITUR_EXHAUSTIVE_SWEEP=1, all 8 416 years) now asserts the Nativity gap fires on NONE of them, down from all 8 416 before this fix -- and is kept as a live, dedicated "must never recur" counter rather than deleted. test_rite_of.ml's landmark-year check and test_lectionary_of.ml's 2026 coverage pins are updated the same way (the unresolved-day set that used to be pinned as {25 December} is now pinned as empty, not merely a count going to zero). A concrete golden pin (test_golden_of.ml) locks the exact citations through the full resolved pipeline. data/of/lectionary.sexp regenerated (771 entries, was 770); its own SHA-256 re-pinned. make check (COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force, unpiped, foreground): exit 0, 895 tests, ~536s.
Diffstat (limited to 'data/of')
-rw-r--r--data/of/lectionary.sexp14
1 files changed, 8 insertions, 6 deletions
diff --git a/data/of/lectionary.sexp b/data/of/lectionary.sexp
index 8cc1d63..437cada 100644
--- a/data/of/lectionary.sexp
+++ b/data/of/lectionary.sexp
@@ -52,11 +52,11 @@
; SHA-256: f0b527aef58b93e6ccdfbeafe52b340ed2a9d7d72805bf5083e3da04b080123c
; 988 ini sections (988 expected) -> 438 resolved (base, cycle-shape) pairs -> 435 colitur slugs mapped, 3 ini bases genuinely excluded (structurally
; unreachable -- see [excluded_bases]), 0 ini bases genuinely unmapped
-; (no pattern, no override, no matching sanctoral slug) -> 770 emitted
+; (no pattern, no override, no matching sanctoral slug) -> 771 emitted
; lectionary entries.
;
; COVERAGE, BOTH DIRECTIONS (Step 1 of this task's own brief):
-; (1) Temporal-day gap: of the 365 days of civil year 2026, 1 produce a
+; (1) Temporal-day gap: of the 365 days of civil year 2026, 0 produce a
; Rite_of.Temporal_of slug with NO entry in this file (tried the
; date-keyed route first, then flat, then both the Sunday- and
; weekday-cycle letter suffixes -- the same order
@@ -76,8 +76,8 @@
; OLM norms working as designed for a saint with no proper of
; their own, not a gap in this data.
; (4) Citation-siglum conversion (fix wave I2, 2026-08-26 review): of
-; 1540 emitted (First, Gospel) citation fields, 41 distinct
-; references (out of the full 1540) do not parse -- every one a
+; 1542 emitted (First, Gospel) citation fields, 41 distinct
+; references (out of the full 1542) do not parse -- every one a
; hyphen range that crosses a chapter boundary ("2:29-3:6"), a
; {!Colitur_citation.Parse.t} shape this parser's [part]/
; [verse_range] types do not represent, deliberately not built
@@ -134,9 +134,8 @@
; Wisdom 11:22-12:2
; Wisdom 2:23-3:9
; Wisdom 7:22b-8:1
-; Temporal_of slugs (2004-2051) with no lectionary entry (1, informational --
+; Temporal_of slugs (2004-2051) with no lectionary entry (0, informational --
; most are the Christmas-season/late-Advent date-vs-weekday gap named above):
-; of-nativity
((all-saints
(((part First) (reference "Revelation 7:2-4,9-14"))
((part Gospel) (reference "Mat 5:1-12"))))
@@ -857,6 +856,9 @@
(of-mary-mother-of-god
(((part First) (reference "Numbers 6:22-27"))
((part Gospel) (reference "Luke 2:16-21"))))
+ (of-nativity
+ (((part First) (reference "Isaiah 52:7-10"))
+ ((part Gospel) (reference "John 1:1-18"))))
(of-nativity-vigil
(((part First) (reference "Isaiah 62:1-5"))
((part Gospel) (reference "Mat 1:18-25"))))