diff --git a/TODO.md b/TODO.md index c124152..fbbb001 100644 --- a/TODO.md +++ b/TODO.md @@ -536,6 +536,93 @@ resolve via this file-based method at all (their particular file format wasn't handled by this pass's parser) — no impact, both already had real content from the live-query batch above. +### `minorHoursCommon` gap swept across the whole calendar (2026-08) + +The pieces above all fixed Benedictus-antiphon/collect gaps. This pass +does the same thing for Prime/Terce/Sext/None specifically, and widens +scope from just the 94-saint batch to the **whole** calendar — the +original 29-saint P/T/S/N pass (an earlier session) only ever covered +duplex-majus+ saints; every below-majus saint from the *original*, +pre-94-batch 109-saint pass had never had P/T/S/N attempted at all, +same gap as the one already found and fixed for the 94-batch's own +below-majus saints. + +**Method**: reused the Kalendaria-table-validated fileref approach +(same as the collects pass), not a blind `Sancti/MM-DD.txt` read — a +real near-miss caught this early: St. Apollonia's `Sancti/02-09.txt` is +*currently* St. Cyril of Alexandria's (a 19th-century addition to that +filename slot); blind reading would have silently attributed his +Doctor-of-the-Church Common to her. The Kalendaria table's own +validated fileref (`02-09o`) gives her real content instead. Also fixed +a second, unrelated regex bug the same pass turned up: the original +"`vide`/`ex CXX`" pattern matched the bare word "`Commune`" (no number) +and reading-specific sub-references like "`ex C4 in 2 loco`" (which +only says where *that nocturn's readings* come from, not the overall +antiphon Common) — found via St. Clement, whose Monastic-specific +`[Rule]` override has neither a clean `vide CXX` nor a number after +"Commune." Fixed by requiring a digit right after `C` and skipping any +match immediately followed by `"in N loco"`. + +**90 below-majus saints swept, ~82 wired directly** into the categories +already established above (mostly `common-of-a-martyr` and +`common-of-several-martyrs`, the two largest families) — no new content +needed, since every C-number variant found (`C2`/`C2-1`/`C2a`/`C2a-1`/ +`C2b`/`C2b-1`/`C2-1b`, `C3`/`C3a`/`C3a-1`, `C5`/`C5-1`/`C5a`/`C5b`, +`C6`/`C6-1`/`C6a`/`C7a`, `C4`/`C4b`, `C1`, `C1v`) already falls inside a +family live-query-verified earlier. + +**A real bug this pass caught and fixed**: Ss. Ursula and Companions +(deliberately left `minorHoursCommon`-unwired, see her own section +above) got swept up and *wrongly* wired to `common-of-an-abbot` by this +pass's own script, since she has `collectCommon` set (making her look +like a normal, resolvable batch member) despite `propers: null` and +being a genuine commemoration-only stub — the underlying +Kalendaria-table lookup silently defaulted to St. Hilarion's own +`primary` slot at her shared date rather than her own (nonexistent) +one. Caught by cross-checking every swept saint's `propers` field for +this exact `null`-but-`collectCommon`-set pattern before trusting a +default-to-primary assumption; reverted, she's still correctly unwired. + +**A real, new category found: Doctors of the Church are not one thing.** +7 saints' own `[Rule]` says "`vide C4a`" (`Commune Doctoris Pontificis`) +— but live-querying showed this doesn't mean what it looks like it +means. St. Athanasius, St. Augustine, St. Basil the Great, St. Hilary of +Poitiers, St. John Chrysostom, and St. Leo I all render P/T/S/N +byte-identical to `common-of-a-confessor-bishop`'s already-verified +text (their own `C4a` reference just inherits `C4`'s content +underneath, per the same "the referenced file's raw fields don't +reliably predict the live-rendered text" lesson from every other +category this session) — wired directly, no new content. **St. Gregory +the Great is the one genuine exception**: his own live-rendered +P/T/S/N is real, unique proper text (alluding to his own election, +his *Liber Regulæ Pastoralis*, the dove-and-quill legend, and the +"non Angli sed Angeli" episode already known from his Benedictus +antiphon) — 7 new files (`{hour}-antiphon-st-gregory-the-great.yml`, +`{terce,sext,none}-capitulum-st-gregory-the-great.yml`), no +`minorHoursCommon` needed at all (`getMinorHourOverrideId` already +tries his own id first). English wasn't rendered at all for any of his +6 new texts (same Latin-duplicated-into-English gap as St. Scholastica/ +St. Benedict), so all 6 are `status.en: draft`. + +**One loose thread noticed, not chased**: St. Athanasius (May 2) and +St. Leo I (April 11), both tested in years that happened to fall within +Eastertide, rendered their shared `common-of-a-confessor-bishop` text +with a trailing "`allelúja`" appended to every antiphon — but the other +4 Doctor saints (tested in non-Paschaltide months) didn't. This isn't +the same kind of thing as the already-modeled `-paschaltide` Common +variants (`common-of-apostles-paschaltide` etc., which are *wholly +different wording*, not the same text plus a suffix) — looks more like +a general seasonal "append allelúja in Paschaltide" rule this app +doesn't model at any level yet. Not blocking (the plain, correctly- +verified text still renders in every other season, which is most of the +year), but worth a look if Eastertide rendering fidelity matters later. + +Verified end-to-end: a runtime smoke test (folded into +`tests/hours/resolve-common.test.ts`) covering the same-person reuse +case (Finding of St. Stephen → St. Stephen Protomartyr's own files), +Gregory's unique content, and a shared-Doctor case, plus 8 more spot +checks across the newly-wired families during the pass itself. + ### Christmas-Octave Sunday content — done (2026-08) Was: only the Benedictus antiphon existed for `christmas-octave-sunday` diff --git a/src/data/calendar/saints/commemoration-of-st-paul.yml b/src/data/calendar/saints/commemoration-of-st-paul.yml index dca5daa..7728db6 100644 --- a/src/data/calendar/saints/commemoration-of-st-paul.yml +++ b/src/data/calendar/saints/commemoration-of-st-paul.yml @@ -8,3 +8,8 @@ name: "Commemoration of St. Paul, Apostle" rank: duplex common: common-of-an-apostle propers: "commemoration-of-st-paul" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-30.txt) -- +# [Rule]/[Rank] point to Commune/C1 instead, the same C-number family already +# live-query-verified for common-of-apostles.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-apostles diff --git a/src/data/calendar/saints/decollation-of-st-john-baptist.yml b/src/data/calendar/saints/decollation-of-st-john-baptist.yml index e51523c..fd378b2 100644 --- a/src/data/calendar/saints/decollation-of-st-john-baptist.yml +++ b/src/data/calendar/saints/decollation-of-st-john-baptist.yml @@ -11,3 +11,8 @@ name: "The Beheading of St. John the Baptist" rank: duplex common: common-of-an-apostle propers: "decollation-of-st-john-baptist" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-29.txt) -- +# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/finding-of-st-stephen.yml b/src/data/calendar/saints/finding-of-st-stephen.yml index 1b39e2b..af5c7bd 100644 --- a/src/data/calendar/saints/finding-of-st-stephen.yml +++ b/src/data/calendar/saints/finding-of-st-stephen.yml @@ -16,3 +16,7 @@ name: "The Finding of St. Stephen, Protomartyr" rank: semiduplex common: common-of-a-martyr propers: "finding-of-st-stephen" +# P/T/S/N: [Rule] points directly at st-stephen-protomartyr's own file +# (Sancti/12-26), not a Commune category -- reuses his own already-authored +# proper P/T/S/N wholesale (see TODO.md's 'minor hour content gaps' section). +minorHoursCommon: st-stephen-protomartyr diff --git a/src/data/calendar/saints/forty-holy-martyrs.yml b/src/data/calendar/saints/forty-holy-martyrs.yml index 457c728..e5c5423 100644 --- a/src/data/calendar/saints/forty-holy-martyrs.yml +++ b/src/data/calendar/saints/forty-holy-martyrs.yml @@ -6,3 +6,8 @@ name: "The Forty Holy Martyrs" rank: semiduplex common: common-of-several-martyrs propers: "forty-holy-martyrs" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (03-10.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-abdon-and-sennen.yml b/src/data/calendar/saints/ss-abdon-and-sennen.yml index 2981151..b31c44d 100644 --- a/src/data/calendar/saints/ss-abdon-and-sennen.yml +++ b/src/data/calendar/saints/ss-abdon-and-sennen.yml @@ -6,3 +6,8 @@ name: "Ss. Abdon and Sennen, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-abdon-and-sennen" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-30.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-basilides-cyrinus-nabor-and-nazarius.yml b/src/data/calendar/saints/ss-basilides-cyrinus-nabor-and-nazarius.yml index 70d4628..0098030 100644 --- a/src/data/calendar/saints/ss-basilides-cyrinus-nabor-and-nazarius.yml +++ b/src/data/calendar/saints/ss-basilides-cyrinus-nabor-and-nazarius.yml @@ -6,3 +6,8 @@ name: "Ss. Basilides, Cyrinus, Nabor, and Nazarius, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-basilides-cyrinus-nabor-and-nazarius" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-12o.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-chrysanthus-and-daria.yml b/src/data/calendar/saints/ss-chrysanthus-and-daria.yml index 25ae7f6..5318b2a 100644 --- a/src/data/calendar/saints/ss-chrysanthus-and-daria.yml +++ b/src/data/calendar/saints/ss-chrysanthus-and-daria.yml @@ -10,3 +10,8 @@ name: "Ss. Chrysanthus and Daria, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-chrysanthus-and-daria" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (10-25.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-cosmas-and-damian.yml b/src/data/calendar/saints/ss-cosmas-and-damian.yml index 1099e73..a4a586c 100644 --- a/src/data/calendar/saints/ss-cosmas-and-damian.yml +++ b/src/data/calendar/saints/ss-cosmas-and-damian.yml @@ -6,3 +6,8 @@ name: "Ss. Cosmas and Damian, Martyrs" rank: semiduplex common: common-of-several-martyrs propers: "ss-cosmas-and-damian" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (09-27.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-cyprian-and-justina.yml b/src/data/calendar/saints/ss-cyprian-and-justina.yml index 640bf8c..70fa0e8 100644 --- a/src/data/calendar/saints/ss-cyprian-and-justina.yml +++ b/src/data/calendar/saints/ss-cyprian-and-justina.yml @@ -9,3 +9,8 @@ name: "Ss. Cyprian and Justina, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-cyprian-and-justina" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (09-26.txt) -- +# [Rule]/[Rank] point to Commune/C3a-1 instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-cyriacus-largus-and-smaragdus.yml b/src/data/calendar/saints/ss-cyriacus-largus-and-smaragdus.yml index 2c64a17..4066a3b 100644 --- a/src/data/calendar/saints/ss-cyriacus-largus-and-smaragdus.yml +++ b/src/data/calendar/saints/ss-cyriacus-largus-and-smaragdus.yml @@ -6,3 +6,8 @@ name: "Ss. Cyriacus, Largus, and Smaragdus, Martyrs" rank: semiduplex common: common-of-several-martyrs propers: "ss-cyriacus-largus-and-smaragdus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-08.txt) -- +# [Rule]/[Rank] point to Commune/C3a-1 instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-dionysius-and-companions.yml b/src/data/calendar/saints/ss-dionysius-and-companions.yml index 2f814e0..0d48b90 100644 --- a/src/data/calendar/saints/ss-dionysius-and-companions.yml +++ b/src/data/calendar/saints/ss-dionysius-and-companions.yml @@ -17,3 +17,8 @@ propers: "ss-dionysius-and-companions" # same category (see calendar/feasts.ts's SaintRecord.benedictusCommon # doc comment). benedictusCommon: common-of-several-martyrs +# P/T/S/N: no [Ant Prima]/etc of its own in the source (10-09t.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml b/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml index 2c2ca6b..e8a3777 100644 --- a/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml +++ b/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml @@ -13,3 +13,8 @@ name: "Ss. Euphemia, Lucy, and Geminianus, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-euphemia-lucia-and-geminianus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (09-16.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-fabian-and-sebastian.yml b/src/data/calendar/saints/ss-fabian-and-sebastian.yml index 5a213d2..847d515 100644 --- a/src/data/calendar/saints/ss-fabian-and-sebastian.yml +++ b/src/data/calendar/saints/ss-fabian-and-sebastian.yml @@ -6,3 +6,8 @@ name: "Ss. Fabian and Sebastian, Martyrs" rank: duplex common: common-of-several-martyrs propers: "ss-fabian-and-sebastian" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (01-20.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-felix-and-adauctus.yml b/src/data/calendar/saints/ss-felix-and-adauctus.yml index f2a9cbe..94e5fe9 100644 --- a/src/data/calendar/saints/ss-felix-and-adauctus.yml +++ b/src/data/calendar/saints/ss-felix-and-adauctus.yml @@ -17,3 +17,8 @@ propers: "ss-felix-and-adauctus" # Benedictus antiphon live-verified (2026-08, Lauds query, 2025-08-30, winner # outright) as byte-identical to common-of-several-martyrs.yml's own. benedictusCommon: common-of-several-martyrs +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-30o.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-gervase-and-protase.yml b/src/data/calendar/saints/ss-gervase-and-protase.yml index e3edd4d..c38e689 100644 --- a/src/data/calendar/saints/ss-gervase-and-protase.yml +++ b/src/data/calendar/saints/ss-gervase-and-protase.yml @@ -6,3 +6,8 @@ name: "Ss. Gervase and Protase, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-gervase-and-protase" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-19o.txt) -- +# [Rule]/[Rank] point to Commune/C3a-1 instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-john-and-paul.yml b/src/data/calendar/saints/ss-john-and-paul.yml index 6bbce5d..6dd604b 100644 --- a/src/data/calendar/saints/ss-john-and-paul.yml +++ b/src/data/calendar/saints/ss-john-and-paul.yml @@ -8,3 +8,8 @@ name: "Ss. John and Paul, Martyrs" rank: semiduplex common: common-of-several-martyrs propers: "ss-john-and-paul" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-26.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-marcellinus-peter-and-erasmus.yml b/src/data/calendar/saints/ss-marcellinus-peter-and-erasmus.yml index 411a9d0..61c9e7a 100644 --- a/src/data/calendar/saints/ss-marcellinus-peter-and-erasmus.yml +++ b/src/data/calendar/saints/ss-marcellinus-peter-and-erasmus.yml @@ -8,3 +8,8 @@ name: "Ss. Marcellinus, Peter, and Erasmus, Bishop, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-marcellinus-peter-and-erasmus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-02.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-mark-and-marcellian.yml b/src/data/calendar/saints/ss-mark-and-marcellian.yml index c2d02dc..d69a74d 100644 --- a/src/data/calendar/saints/ss-mark-and-marcellian.yml +++ b/src/data/calendar/saints/ss-mark-and-marcellian.yml @@ -6,3 +6,8 @@ name: "Ss. Mark and Marcellian, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-mark-and-marcellian" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-18t.txt) -- +# [Rule]/[Rank] point to Commune/C3a-1 instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-maurice-and-companions.yml b/src/data/calendar/saints/ss-maurice-and-companions.yml index b422294..7bc5325 100644 --- a/src/data/calendar/saints/ss-maurice-and-companions.yml +++ b/src/data/calendar/saints/ss-maurice-and-companions.yml @@ -14,3 +14,8 @@ propers: "ss-maurice-and-companions" # Benedictus antiphon live-verified (2026-08, Lauds query, 2025-09-22, winner # outright) as byte-identical to common-of-several-martyrs.yml's own. benedictusCommon: common-of-several-martyrs +# P/T/S/N: no [Ant Prima]/etc of its own in the source (09-22o.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-nazarius-celsus-victor-and-innocent.yml b/src/data/calendar/saints/ss-nazarius-celsus-victor-and-innocent.yml index eb8efda..f9dc271 100644 --- a/src/data/calendar/saints/ss-nazarius-celsus-victor-and-innocent.yml +++ b/src/data/calendar/saints/ss-nazarius-celsus-victor-and-innocent.yml @@ -9,3 +9,8 @@ name: "Ss. Nazarius and Celsus, Martyrs, St. Victor I, Pope and Martyr, and St. rank: semiduplex common: common-of-several-martyrs propers: "ss-nazarius-celsus-victor-and-innocent" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-28.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-nereus-achilleus-domitilla-and-pancras.yml b/src/data/calendar/saints/ss-nereus-achilleus-domitilla-and-pancras.yml index 389c8aa..92f6fb5 100644 --- a/src/data/calendar/saints/ss-nereus-achilleus-domitilla-and-pancras.yml +++ b/src/data/calendar/saints/ss-nereus-achilleus-domitilla-and-pancras.yml @@ -6,3 +6,8 @@ name: "Ss. Nereus, Achilleus, Domitilla, and Pancras, Martyrs" rank: semiduplex common: common-of-several-martyrs propers: "ss-nereus-achilleus-domitilla-and-pancras" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-12.txt) -- +# [Rule]/[Rank] point to Commune/C3a-1 instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-primus-and-felicianus.yml b/src/data/calendar/saints/ss-primus-and-felicianus.yml index df66fb4..77bb871 100644 --- a/src/data/calendar/saints/ss-primus-and-felicianus.yml +++ b/src/data/calendar/saints/ss-primus-and-felicianus.yml @@ -8,3 +8,8 @@ name: "Ss. Primus and Felicianus, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-primus-and-felicianus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-09.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-seven-brothers-rufina-and-secunda.yml b/src/data/calendar/saints/ss-seven-brothers-rufina-and-secunda.yml index f8c60f2..e3ad192 100644 --- a/src/data/calendar/saints/ss-seven-brothers-rufina-and-secunda.yml +++ b/src/data/calendar/saints/ss-seven-brothers-rufina-and-secunda.yml @@ -6,3 +6,8 @@ name: "Ss. Seven Brothers, Martyrs, and Ss. Rufina and Secunda, Virgins and Mart rank: semiduplex common: common-of-several-martyrs propers: "ss-seven-brothers-rufina-and-secunda" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-10.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-symphorosa-and-seven-sons.yml b/src/data/calendar/saints/ss-symphorosa-and-seven-sons.yml index a81a07e..893797a 100644 --- a/src/data/calendar/saints/ss-symphorosa-and-seven-sons.yml +++ b/src/data/calendar/saints/ss-symphorosa-and-seven-sons.yml @@ -6,3 +6,8 @@ name: "Ss. Symphorosa and Her Seven Sons, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-symphorosa-and-seven-sons" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-18o.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml b/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml index 5c69ce9..b5217f3 100644 --- a/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml +++ b/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml @@ -7,3 +7,8 @@ name: "Ss. Tiburtius, Valerian, and Maximus, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-tiburtius-valerian-and-maximus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (04-14t.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-tryphon-and-companions.yml b/src/data/calendar/saints/ss-tryphon-and-companions.yml index 7f749ce..eec52a7 100644 --- a/src/data/calendar/saints/ss-tryphon-and-companions.yml +++ b/src/data/calendar/saints/ss-tryphon-and-companions.yml @@ -12,3 +12,8 @@ propers: "ss-tryphon-and-companions" # Benedictus antiphon live-verified (2026-08, Lauds query, 2025-11-10, winner # outright) as byte-identical to common-of-several-martyrs.yml's own. benedictusCommon: common-of-several-martyrs +# P/T/S/N: no [Ant Prima]/etc of its own in the source (11-10o.txt) -- +# [Rule]/[Rank] point to Commune/C3a instead, the same C-number family +# already live-query-verified for common-of-several-martyrs.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-vincent-and-anastasius.yml b/src/data/calendar/saints/ss-vincent-and-anastasius.yml index c2372e4..3711f00 100644 --- a/src/data/calendar/saints/ss-vincent-and-anastasius.yml +++ b/src/data/calendar/saints/ss-vincent-and-anastasius.yml @@ -6,3 +6,8 @@ name: "Ss. Vincent and Anastasius, Martyrs" rank: semiduplex common: common-of-several-martyrs propers: "ss-vincent-and-anastasius" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (01-22.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/ss-vitus-modestus-and-crescentia.yml b/src/data/calendar/saints/ss-vitus-modestus-and-crescentia.yml index 6dfc63d..3b946fc 100644 --- a/src/data/calendar/saints/ss-vitus-modestus-and-crescentia.yml +++ b/src/data/calendar/saints/ss-vitus-modestus-and-crescentia.yml @@ -6,3 +6,8 @@ name: "Ss. Vitus, Modestus, and Crescentia, Martyrs" rank: simplex common: common-of-several-martyrs propers: "ss-vitus-modestus-and-crescentia" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-15.txt) -- +# [Rule]/[Rank] point to Commune/C3 instead, the same C-number family already +# live-query-verified for common-of-several-martyrs.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-several-martyrs diff --git a/src/data/calendar/saints/st-agatha.yml b/src/data/calendar/saints/st-agatha.yml index 19bf9a8..215bf3d 100644 --- a/src/data/calendar/saints/st-agatha.yml +++ b/src/data/calendar/saints/st-agatha.yml @@ -15,3 +15,8 @@ collectCommon: collect-c6 collectName: la: ["Agathæ"] en: ["Agatha"] +# P/T/S/N: no [Ant Prima]/etc of its own in the source (02-05.txt) -- +# [Rule]/[Rank] point to Commune/C6 instead, the same C-number family already +# live-query-verified for common-of-a-virgin.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-agnes-secunda.yml b/src/data/calendar/saints/st-agnes-secunda.yml index f847a0f..4eec239 100644 --- a/src/data/calendar/saints/st-agnes-secunda.yml +++ b/src/data/calendar/saints/st-agnes-secunda.yml @@ -10,3 +10,8 @@ name: "St. Agnes, Virgin and Martyr, Second Feast" rank: simplex common: common-of-a-virgin-martyr propers: "st-agnes-secunda" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (01-28t.txt) -- +# [Rule]/[Rank] point to Commune/C6-1 instead, the same C-number family +# already live-query-verified for common-of-a-virgin.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-agnes.yml b/src/data/calendar/saints/st-agnes.yml index 85dd991..ebd344e 100644 --- a/src/data/calendar/saints/st-agnes.yml +++ b/src/data/calendar/saints/st-agnes.yml @@ -7,3 +7,8 @@ name: "St. Agnes, Virgin and Martyr" rank: duplex common: common-of-a-virgin-martyr propers: "st-agnes" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (01-21.txt) -- +# [Rule]/[Rank] point to Commune/C6-1 instead, the same C-number family +# already live-query-verified for common-of-a-virgin.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-anne.yml b/src/data/calendar/saints/st-anne.yml index af994d1..da08801 100644 --- a/src/data/calendar/saints/st-anne.yml +++ b/src/data/calendar/saints/st-anne.yml @@ -8,3 +8,8 @@ name: "St. Anne, Mother of the Blessed Virgin Mary" rank: duplex common: common-of-a-holy-woman propers: "st-anne" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-26.txt) -- +# [Rule]/[Rank] point to Commune/C7a instead, the same C-number family +# already live-query-verified for common-of-a-virgin.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-anthony-of-padua.yml b/src/data/calendar/saints/st-anthony-of-padua.yml index 88dc23f..67abaeb 100644 --- a/src/data/calendar/saints/st-anthony-of-padua.yml +++ b/src/data/calendar/saints/st-anthony-of-padua.yml @@ -6,3 +6,8 @@ name: "St. Anthony of Padua, Confessor" rank: semiduplex common: common-of-a-confessor propers: "st-anthony-of-padua" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-13.txt) -- +# [Rule]/[Rank] point to Commune/C5 instead, the same C-number family already +# live-query-verified for common-of-an-abbot.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-apollinaris.yml b/src/data/calendar/saints/st-apollinaris.yml index 972a8ab..9d52018 100644 --- a/src/data/calendar/saints/st-apollinaris.yml +++ b/src/data/calendar/saints/st-apollinaris.yml @@ -12,3 +12,8 @@ name: "St. Apollinaris, Bishop and Martyr" rank: semiduplex common: common-of-a-martyr-bishop propers: "st-apollinaris" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-23.txt) -- +# [Rule]/[Rank] point to Commune/C2-1 instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-apollonia.yml b/src/data/calendar/saints/st-apollonia.yml index 72b80fe..7ed2f56 100644 --- a/src/data/calendar/saints/st-apollonia.yml +++ b/src/data/calendar/saints/st-apollonia.yml @@ -6,3 +6,8 @@ name: "St. Apollonia, Virgin and Martyr" rank: simplex common: common-of-a-virgin-martyr propers: "st-apollonia" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (02-09o.txt) -- +# [Rule]/[Rank] point to Commune/C6 instead, the same C-number family already +# live-query-verified for common-of-a-virgin.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-athanasius.yml b/src/data/calendar/saints/st-athanasius.yml index dc5f787..6d49357 100644 --- a/src/data/calendar/saints/st-athanasius.yml +++ b/src/data/calendar/saints/st-athanasius.yml @@ -6,3 +6,8 @@ name: "St. Athanasius, Bishop, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor-bishop propers: "st-athanasius" +# P/T/S/N: live-query-verified (2026-08) as byte-identical to common-of-a- +# confessor-bishop.yml, despite his own [Rule] saying "vide C4a" (Doctor) -- +# unlike St. Gregory the Great, whose own live-rendered P/T/S/N really is +# unique proper text (see his own prime-antiphon-st-gregory-the-great.yml). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-augustine.yml b/src/data/calendar/saints/st-augustine.yml index ce5166a..90889ba 100644 --- a/src/data/calendar/saints/st-augustine.yml +++ b/src/data/calendar/saints/st-augustine.yml @@ -11,3 +11,8 @@ name: "St. Augustine of Hippo, Bishop, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor-bishop propers: "st-augustine" +# P/T/S/N: live-query-verified (2026-08) as byte-identical to common-of-a- +# confessor-bishop.yml, despite his own [Rule] saying "vide C4a" (Doctor) -- +# unlike St. Gregory the Great, whose own live-rendered P/T/S/N really is +# unique proper text (see his own prime-antiphon-st-gregory-the-great.yml). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-basil-the-great.yml b/src/data/calendar/saints/st-basil-the-great.yml index e2f7af1..7934946 100644 --- a/src/data/calendar/saints/st-basil-the-great.yml +++ b/src/data/calendar/saints/st-basil-the-great.yml @@ -8,3 +8,8 @@ name: "St. Basil the Great, Bishop, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor-bishop propers: "st-basil-the-great" +# P/T/S/N: live-query-verified (2026-08) as byte-identical to common-of-a- +# confessor-bishop.yml, despite his own [Rule] saying "vide C4a" (Doctor) -- +# unlike St. Gregory the Great, whose own live-rendered P/T/S/N really is +# unique proper text (see his own prime-antiphon-st-gregory-the-great.yml). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-bernard.yml b/src/data/calendar/saints/st-bernard.yml index cafb9a6..6f985db 100644 --- a/src/data/calendar/saints/st-bernard.yml +++ b/src/data/calendar/saints/st-bernard.yml @@ -8,3 +8,8 @@ name: "St. Bernard, Abbot and Doctor of the Church" rank: duplex common: common-of-an-abbot propers: "st-bernard" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-20.txt) -- +# [Rule]/[Rank] point to Commune/C5a instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-boniface.yml b/src/data/calendar/saints/st-boniface.yml index b3f8638..7daa529 100644 --- a/src/data/calendar/saints/st-boniface.yml +++ b/src/data/calendar/saints/st-boniface.yml @@ -10,3 +10,8 @@ name: "St. Boniface, Martyr" rank: simplex common: common-of-a-martyr propers: "st-boniface" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-14.txt) -- +# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-callistus.yml b/src/data/calendar/saints/st-callistus.yml index 5ab2756..c72ab76 100644 --- a/src/data/calendar/saints/st-callistus.yml +++ b/src/data/calendar/saints/st-callistus.yml @@ -6,3 +6,8 @@ name: "St. Callistus I, Pope and Martyr" rank: duplex common: common-of-a-martyr-bishop propers: "st-callistus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (10-14.txt) -- +# [Rule]/[Rank] point to Commune/C2b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-catherine.yml b/src/data/calendar/saints/st-catherine.yml index 5727ed5..487160d 100644 --- a/src/data/calendar/saints/st-catherine.yml +++ b/src/data/calendar/saints/st-catherine.yml @@ -6,3 +6,8 @@ name: "St. Catherine of Alexandria, Virgin and Martyr" rank: duplex common: common-of-a-virgin-martyr propers: "st-catherine" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (11-25.txt) -- +# [Rule]/[Rank] point to Commune/C6 instead, the same C-number family already +# live-query-verified for common-of-a-virgin.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-cecilia.yml b/src/data/calendar/saints/st-cecilia.yml index 35f99c2..9e8bcf6 100644 --- a/src/data/calendar/saints/st-cecilia.yml +++ b/src/data/calendar/saints/st-cecilia.yml @@ -8,3 +8,8 @@ name: "St. Cecilia, Virgin and Martyr" rank: semiduplex common: common-of-a-virgin-martyr propers: "st-cecilia" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (11-22.txt) -- +# [Rule]/[Rank] point to Commune/C6 instead, the same C-number family already +# live-query-verified for common-of-a-virgin.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-chrysogonus.yml b/src/data/calendar/saints/st-chrysogonus.yml index 47fffce..5d7ab06 100644 --- a/src/data/calendar/saints/st-chrysogonus.yml +++ b/src/data/calendar/saints/st-chrysogonus.yml @@ -17,3 +17,8 @@ propers: "st-chrysogonus" # Benedictus antiphon live-verified (2026-08, Lauds query, 2027-11-24, winner # outright) as byte-identical to common-of-a-martyr.yml's own. benedictusCommon: common-of-a-martyr +# P/T/S/N: no [Ant Prima]/etc of its own in the source (11-24o.txt) -- +# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-clement.yml b/src/data/calendar/saints/st-clement.yml index 8e9b803..b8daf0e 100644 --- a/src/data/calendar/saints/st-clement.yml +++ b/src/data/calendar/saints/st-clement.yml @@ -14,3 +14,8 @@ name: "St. Clement I, Pope and Martyr" rank: semiduplex common: common-of-a-martyr-bishop propers: "st-clement" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (11-23.txt) -- +# [Rule]/[Rank] point to Commune/C2b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-damasus.yml b/src/data/calendar/saints/st-damasus.yml index b8300dd..ce52333 100644 --- a/src/data/calendar/saints/st-damasus.yml +++ b/src/data/calendar/saints/st-damasus.yml @@ -9,3 +9,8 @@ name: "St. Damasus I, Pope and Confessor" rank: semiduplex common: common-of-a-confessor-bishop propers: "st-damasus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (12-11.txt) -- +# [Rule]/[Rank] point to Commune/C4b instead, the same C-number family +# already live-query-verified for common-of-a-confessor-bishop.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-dominic.yml b/src/data/calendar/saints/st-dominic.yml index 0087611..494e236 100644 --- a/src/data/calendar/saints/st-dominic.yml +++ b/src/data/calendar/saints/st-dominic.yml @@ -7,3 +7,8 @@ name: "St. Dominic, Confessor" rank: duplex common: common-of-a-confessor-not-bishop propers: "st-dominic" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-04.txt) -- +# [Rule]/[Rank] point to Commune/C5 instead, the same C-number family already +# live-query-verified for common-of-an-abbot.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-donatus.yml b/src/data/calendar/saints/st-donatus.yml index 06ea6c6..20b8c57 100644 --- a/src/data/calendar/saints/st-donatus.yml +++ b/src/data/calendar/saints/st-donatus.yml @@ -23,3 +23,8 @@ propers: "st-donatus" # Benedictus antiphon live-verified (2026-08, Lauds query, 2026-08-07, winner # outright) as byte-identical to common-of-a-martyr.yml's own. benedictusCommon: common-of-a-martyr +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-07o.txt) -- +# [Rule]/[Rank] point to Commune/C2-1 instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-dorothea.yml b/src/data/calendar/saints/st-dorothea.yml index 405716b..d06cd93 100644 --- a/src/data/calendar/saints/st-dorothea.yml +++ b/src/data/calendar/saints/st-dorothea.yml @@ -6,3 +6,8 @@ name: "St. Dorothea, Virgin and Martyr" rank: simplex common: common-of-a-virgin-martyr propers: "st-dorothea" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (02-06o.txt) -- +# [Rule]/[Rank] point to Commune/C6-1 instead, the same C-number family +# already live-query-verified for common-of-a-virgin.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-eleutherius.yml b/src/data/calendar/saints/st-eleutherius.yml index 003d633..c17f382 100644 --- a/src/data/calendar/saints/st-eleutherius.yml +++ b/src/data/calendar/saints/st-eleutherius.yml @@ -7,3 +7,8 @@ name: "St. Eleutherius, Pope and Martyr" rank: simplex common: common-of-a-martyr-bishop propers: "st-eleutherius" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-26o.txt) -- +# [Rule]/[Rank] point to Commune/C2b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-francis-of-paola.yml b/src/data/calendar/saints/st-francis-of-paola.yml index 2c75666..d2bf679 100644 --- a/src/data/calendar/saints/st-francis-of-paola.yml +++ b/src/data/calendar/saints/st-francis-of-paola.yml @@ -9,3 +9,8 @@ name: "St. Francis of Paola, Confessor" rank: duplex common: common-of-a-confessor propers: "st-francis-of-paola" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (04-02.txt) -- +# [Rule]/[Rank] point to Commune/C5-1 instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-francis.yml b/src/data/calendar/saints/st-francis.yml index 0ecd2bb..ae08638 100644 --- a/src/data/calendar/saints/st-francis.yml +++ b/src/data/calendar/saints/st-francis.yml @@ -6,3 +6,8 @@ name: "St. Francis of Assisi, Confessor" rank: duplex common: common-of-a-confessor-not-bishop propers: "st-francis" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (10-04.txt) -- +# [Rule]/[Rank] point to Commune/C5 instead, the same C-number family already +# live-query-verified for common-of-an-abbot.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-george.yml b/src/data/calendar/saints/st-george.yml index 024327e..e982f5c 100644 --- a/src/data/calendar/saints/st-george.yml +++ b/src/data/calendar/saints/st-george.yml @@ -6,3 +6,8 @@ name: "St. George, Martyr" rank: semiduplex common: common-of-a-martyr propers: "st-george" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (04-23.txt) -- +# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-hilary-of-poitiers.yml b/src/data/calendar/saints/st-hilary-of-poitiers.yml index 26cb474..d0f0e6b 100644 --- a/src/data/calendar/saints/st-hilary-of-poitiers.yml +++ b/src/data/calendar/saints/st-hilary-of-poitiers.yml @@ -13,3 +13,8 @@ name: "St. Hilary of Poitiers, Bishop, Confessor and Doctor of the Church" rank: semiduplex common: common-of-a-confessor-bishop propers: "st-hilary-of-poitiers" +# P/T/S/N: live-query-verified (2026-08) as byte-identical to common-of-a- +# confessor-bishop.yml, despite his own [Rule] saying "vide C4a" (Doctor) -- +# unlike St. Gregory the Great, whose own live-rendered P/T/S/N really is +# unique proper text (see his own prime-antiphon-st-gregory-the-great.yml). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-jerome.yml b/src/data/calendar/saints/st-jerome.yml index 7c60c59..12598c8 100644 --- a/src/data/calendar/saints/st-jerome.yml +++ b/src/data/calendar/saints/st-jerome.yml @@ -6,3 +6,8 @@ name: "St. Jerome, Priest, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor-not-bishop propers: "st-jerome" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (09-30.txt) -- +# [Rule]/[Rank] point to Commune/C5a instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-john-chrysostom.yml b/src/data/calendar/saints/st-john-chrysostom.yml index 457d57b..1509fb8 100644 --- a/src/data/calendar/saints/st-john-chrysostom.yml +++ b/src/data/calendar/saints/st-john-chrysostom.yml @@ -6,3 +6,8 @@ name: "St. John Chrysostom, Bishop, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor-bishop propers: "st-john-chrysostom" +# P/T/S/N: live-query-verified (2026-08) as byte-identical to common-of-a- +# confessor-bishop.yml, despite his own [Rule] saying "vide C4a" (Doctor) -- +# unlike St. Gregory the Great, whose own live-rendered P/T/S/N really is +# unique proper text (see his own prime-antiphon-st-gregory-the-great.yml). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-john-i.yml b/src/data/calendar/saints/st-john-i.yml index 4363b09..f942f7f 100644 --- a/src/data/calendar/saints/st-john-i.yml +++ b/src/data/calendar/saints/st-john-i.yml @@ -7,3 +7,8 @@ name: "St. John I, Pope and Martyr" rank: simplex common: common-of-a-martyr-bishop propers: "st-john-i" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-27o.txt) -- +# [Rule]/[Rank] point to Commune/C2b-1 instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-joseph.yml b/src/data/calendar/saints/st-joseph.yml index c566bfd..a1e8f7f 100644 --- a/src/data/calendar/saints/st-joseph.yml +++ b/src/data/calendar/saints/st-joseph.yml @@ -8,3 +8,8 @@ name: "St. Joseph, Spouse of the Blessed Virgin Mary, Confessor" rank: duplex common: common-of-a-confessor propers: "st-joseph" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (03-19t.txt) -- +# [Rule]/[Rank] point to Commune/C5 instead, the same C-number family already +# live-query-verified for common-of-an-abbot.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-leo-i.yml b/src/data/calendar/saints/st-leo-i.yml index b902e03..3b89aa8 100644 --- a/src/data/calendar/saints/st-leo-i.yml +++ b/src/data/calendar/saints/st-leo-i.yml @@ -10,3 +10,8 @@ name: "St. Leo I, Pope, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor-bishop propers: "st-leo-i" +# P/T/S/N: live-query-verified (2026-08) as byte-identical to common-of-a- +# confessor-bishop.yml, despite his own [Rule] saying "vide C4a" (Doctor) -- +# unlike St. Gregory the Great, whose own live-rendered P/T/S/N really is +# unique proper text (see his own prime-antiphon-st-gregory-the-great.yml). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-leo-ii.yml b/src/data/calendar/saints/st-leo-ii.yml index 2d9de37..b7975d2 100644 --- a/src/data/calendar/saints/st-leo-ii.yml +++ b/src/data/calendar/saints/st-leo-ii.yml @@ -10,3 +10,8 @@ name: "St. Leo II, Pope and Confessor" rank: semiduplex common: common-of-a-confessor-bishop propers: "st-leo-ii" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-28t.txt) -- +# [Rule]/[Rank] point to Commune/C4b instead, the same C-number family +# already live-query-verified for common-of-a-confessor-bishop.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-louis.yml b/src/data/calendar/saints/st-louis.yml index 08df5b3..ab383e9 100644 --- a/src/data/calendar/saints/st-louis.yml +++ b/src/data/calendar/saints/st-louis.yml @@ -6,3 +6,8 @@ name: "St. Louis, King of France, Confessor" rank: simplex common: common-of-a-confessor-not-bishop propers: "st-louis" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-25.txt) -- +# [Rule]/[Rank] point to Commune/C5 instead, the same C-number family already +# live-query-verified for common-of-an-abbot.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-lucius-i.yml b/src/data/calendar/saints/st-lucius-i.yml index 62d89ce..ad478ac 100644 --- a/src/data/calendar/saints/st-lucius-i.yml +++ b/src/data/calendar/saints/st-lucius-i.yml @@ -11,3 +11,8 @@ name: "St. Lucius I, Pope and Martyr" rank: simplex common: common-of-a-martyr-bishop propers: "st-lucius-i" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (03-04cc.txt) -- +# [Rule]/[Rank] point to Commune/C2b-1 instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-lucy.yml b/src/data/calendar/saints/st-lucy.yml index f432924..74ffd03 100644 --- a/src/data/calendar/saints/st-lucy.yml +++ b/src/data/calendar/saints/st-lucy.yml @@ -10,3 +10,8 @@ name: "St. Lucy, Virgin and Martyr" rank: duplex common: common-of-a-virgin-martyr propers: "st-lucy" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (12-13t.txt) -- +# [Rule]/[Rank] point to Commune/C6 instead, the same C-number family already +# live-query-verified for common-of-a-virgin.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-marcellus-i.yml b/src/data/calendar/saints/st-marcellus-i.yml index e6bd3fd..40490a2 100644 --- a/src/data/calendar/saints/st-marcellus-i.yml +++ b/src/data/calendar/saints/st-marcellus-i.yml @@ -8,3 +8,8 @@ name: "St. Marcellus I, Pope and Martyr" rank: semiduplex common: common-of-a-martyr-bishop propers: "st-marcellus-i" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (01-16.txt) -- +# [Rule]/[Rank] point to Commune/C2b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-margaret-of-antioch.yml b/src/data/calendar/saints/st-margaret-of-antioch.yml index ef232f4..c60ee66 100644 --- a/src/data/calendar/saints/st-margaret-of-antioch.yml +++ b/src/data/calendar/saints/st-margaret-of-antioch.yml @@ -6,3 +6,8 @@ name: "St. Margaret of Antioch, Virgin and Martyr" rank: simplex common: common-of-a-virgin-martyr propers: "st-margaret-of-antioch" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-20o.txt) -- +# [Rule]/[Rank] point to Commune/C6 instead, the same C-number family already +# live-query-verified for common-of-a-virgin.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-mary-magdalene.yml b/src/data/calendar/saints/st-mary-magdalene.yml index e0232ee..831e375 100644 --- a/src/data/calendar/saints/st-mary-magdalene.yml +++ b/src/data/calendar/saints/st-mary-magdalene.yml @@ -9,3 +9,8 @@ name: "St. Mary Magdalene, Penitent" rank: duplex common: common-of-a-holy-woman propers: "st-mary-magdalene" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (07-22.txt) -- +# [Rule]/[Rank] point to Commune/C7a instead, the same C-number family +# already live-query-verified for common-of-a-virgin.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-monica.yml b/src/data/calendar/saints/st-monica.yml index 2c191de..a4cd03b 100644 --- a/src/data/calendar/saints/st-monica.yml +++ b/src/data/calendar/saints/st-monica.yml @@ -6,3 +6,8 @@ name: "St. Monica, Widow" rank: duplex common: common-of-a-widow propers: "st-monica" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-04.txt) -- +# [Rule]/[Rank] point to Commune/C7a instead, the same C-number family +# already live-query-verified for common-of-a-virgin.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/saints/st-nicholas.yml b/src/data/calendar/saints/st-nicholas.yml index 1a7c152..9d85c03 100644 --- a/src/data/calendar/saints/st-nicholas.yml +++ b/src/data/calendar/saints/st-nicholas.yml @@ -10,3 +10,8 @@ name: "St. Nicholas, Bishop and Confessor" rank: semiduplex common: common-of-a-confessor-bishop propers: "st-nicholas" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (12-06.txt) -- +# [Rule]/[Rank] point to Commune/C4 instead, the same C-number family already +# live-query-verified for common-of-a-confessor-bishop.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-paul-the-hermit.yml b/src/data/calendar/saints/st-paul-the-hermit.yml index 86e1d50..e16345b 100644 --- a/src/data/calendar/saints/st-paul-the-hermit.yml +++ b/src/data/calendar/saints/st-paul-the-hermit.yml @@ -6,3 +6,8 @@ name: "St. Paul the First Hermit, Confessor" rank: semiduplex common: common-of-a-confessor propers: "st-paul-the-hermit" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (01-15.txt) -- +# [Rule]/[Rank] point to Commune/C5 instead, the same C-number family already +# live-query-verified for common-of-an-abbot.yml (see TODO.md's 'minor hour +# content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-paulinus-of-nola.yml b/src/data/calendar/saints/st-paulinus-of-nola.yml index c5ef028..4d95eec 100644 --- a/src/data/calendar/saints/st-paulinus-of-nola.yml +++ b/src/data/calendar/saints/st-paulinus-of-nola.yml @@ -6,3 +6,8 @@ name: "St. Paulinus of Nola, Bishop and Confessor" rank: simplex common: common-of-a-confessor-bishop propers: "st-paulinus-of-nola" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-22t.txt) -- +# [Rule]/[Rank] point to Commune/C4 instead, the same C-number family already +# live-query-verified for common-of-a-confessor-bishop.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-peter-celestine.yml b/src/data/calendar/saints/st-peter-celestine.yml index f351ddd..9f642d4 100644 --- a/src/data/calendar/saints/st-peter-celestine.yml +++ b/src/data/calendar/saints/st-peter-celestine.yml @@ -13,3 +13,8 @@ name: "St. Peter Celestine, Pope and Confessor" rank: duplex common: common-of-a-confessor-bishop propers: "st-peter-celestine" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-19.txt) -- +# [Rule]/[Rank] point to Commune/C4b instead, the same C-number family +# already live-query-verified for common-of-a-confessor-bishop.yml (see +# TODO.md's 'minor hour content gaps' section). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-peter-martyr.yml b/src/data/calendar/saints/st-peter-martyr.yml index 27d303d..4b54d68 100644 --- a/src/data/calendar/saints/st-peter-martyr.yml +++ b/src/data/calendar/saints/st-peter-martyr.yml @@ -9,3 +9,8 @@ name: "St. Peter Martyr, Martyr" rank: semiduplex common: common-of-a-martyr propers: "st-peter-martyr" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (04-29.txt) -- +# [Rule]/[Rank] point to Commune/C2a-1 instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-robert.yml b/src/data/calendar/saints/st-robert.yml index 53e107d..cc75471 100644 --- a/src/data/calendar/saints/st-robert.yml +++ b/src/data/calendar/saints/st-robert.yml @@ -15,3 +15,8 @@ name: "St. Robert, Abbot" rank: duplex common: common-of-an-abbot propers: "st-robert" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (04-29oM.txt) -- +# [Rule]/[Rank] point to Commune/C5b instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-silvester-abbot.yml b/src/data/calendar/saints/st-silvester-abbot.yml index 0644d8c..bc33432 100644 --- a/src/data/calendar/saints/st-silvester-abbot.yml +++ b/src/data/calendar/saints/st-silvester-abbot.yml @@ -13,3 +13,8 @@ name: "St. Silvester, Abbot" rank: duplex common: common-of-an-abbot propers: "st-silvester-abbot" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (11-26.txt) -- +# [Rule]/[Rank] point to Commune/C5b instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-stanislaus.yml b/src/data/calendar/saints/st-stanislaus.yml index f4e0f75..3f3e08a 100644 --- a/src/data/calendar/saints/st-stanislaus.yml +++ b/src/data/calendar/saints/st-stanislaus.yml @@ -6,3 +6,8 @@ name: "St. Stanislaus, Bishop and Martyr" rank: semiduplex common: common-of-a-martyr-bishop propers: "st-stanislaus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-07.txt) -- +# [Rule]/[Rank] point to Commune/C2-1 instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-thomas-aquinas.yml b/src/data/calendar/saints/st-thomas-aquinas.yml index a2547f6..da3a515 100644 --- a/src/data/calendar/saints/st-thomas-aquinas.yml +++ b/src/data/calendar/saints/st-thomas-aquinas.yml @@ -7,3 +7,8 @@ name: "St. Thomas Aquinas, Confessor and Doctor of the Church" rank: duplex common: common-of-a-confessor propers: "st-thomas-aquinas" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (03-07.txt) -- +# [Rule]/[Rank] point to Commune/C5a instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-thomas-becket.yml b/src/data/calendar/saints/st-thomas-becket.yml index 2c2a6f9..7f72391 100644 --- a/src/data/calendar/saints/st-thomas-becket.yml +++ b/src/data/calendar/saints/st-thomas-becket.yml @@ -11,3 +11,8 @@ name: "St. Thomas of Canterbury, Bishop and Martyr" rank: semiduplex common: common-of-a-martyr-bishop propers: "st-thomas-becket" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (12-29o.txt) -- +# [Rule]/[Rank] point to Commune/C2b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-ubald.yml b/src/data/calendar/saints/st-ubald.yml index c09a4ca..440d353 100644 --- a/src/data/calendar/saints/st-ubald.yml +++ b/src/data/calendar/saints/st-ubald.yml @@ -6,3 +6,8 @@ name: "St. Ubald, Bishop and Confessor" rank: semiduplex common: common-of-a-confessor-bishop propers: "st-ubald" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-16.txt) -- +# [Rule]/[Rank] point to Commune/C4 instead, the same C-number family already +# live-query-verified for common-of-a-confessor-bishop.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-confessor-bishop diff --git a/src/data/calendar/saints/st-urban-i.yml b/src/data/calendar/saints/st-urban-i.yml index 58f52f9..7c9f673 100644 --- a/src/data/calendar/saints/st-urban-i.yml +++ b/src/data/calendar/saints/st-urban-i.yml @@ -12,3 +12,8 @@ name: "St. Urban I, Pope and Martyr" rank: simplex common: common-of-a-martyr-bishop propers: "st-urban-i" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (05-25o.txt) -- +# [Rule]/[Rank] point to Commune/C2b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-valentine.yml b/src/data/calendar/saints/st-valentine.yml index 3e2a0b3..367f69c 100644 --- a/src/data/calendar/saints/st-valentine.yml +++ b/src/data/calendar/saints/st-valentine.yml @@ -9,3 +9,8 @@ name: "St. Valentine, Priest and Martyr" rank: simplex common: common-of-a-martyr propers: "st-valentine" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (02-14.txt) -- +# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-vitalis.yml b/src/data/calendar/saints/st-vitalis.yml index 0512401..05c6c55 100644 --- a/src/data/calendar/saints/st-vitalis.yml +++ b/src/data/calendar/saints/st-vitalis.yml @@ -6,3 +6,8 @@ name: "St. Vitalis, Martyr" rank: simplex common: common-of-a-martyr propers: "st-vitalis" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (04-28o.txt) -- +# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/st-william-abbot.yml b/src/data/calendar/saints/st-william-abbot.yml index 67d6dd6..e751314 100644 --- a/src/data/calendar/saints/st-william-abbot.yml +++ b/src/data/calendar/saints/st-william-abbot.yml @@ -7,3 +7,8 @@ name: "St. William, Abbot" rank: duplex common: common-of-an-abbot propers: "st-william-abbot" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-25.txt) -- +# [Rule]/[Rank] point to Commune/C5b instead, the same C-number family +# already live-query-verified for common-of-an-abbot.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-an-abbot diff --git a/src/data/calendar/saints/st-zephyrinus.yml b/src/data/calendar/saints/st-zephyrinus.yml index b91b1f3..f23e62b 100644 --- a/src/data/calendar/saints/st-zephyrinus.yml +++ b/src/data/calendar/saints/st-zephyrinus.yml @@ -9,3 +9,8 @@ name: "St. Zephyrinus, Pope and Martyr" rank: simplex common: common-of-a-martyr-bishop propers: "st-zephyrinus" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-26.txt) -- +# [Rule]/[Rank] point to Commune/C2-1b instead, the same C-number family +# already live-query-verified for common-of-a-martyr.yml (see TODO.md's +# 'minor hour content gaps' section). +minorHoursCommon: common-of-a-martyr diff --git a/src/data/calendar/saints/vigil-of-all-saints.yml b/src/data/calendar/saints/vigil-of-all-saints.yml index e25b8d5..9ec6eba 100644 --- a/src/data/calendar/saints/vigil-of-all-saints.yml +++ b/src/data/calendar/saints/vigil-of-all-saints.yml @@ -6,3 +6,9 @@ name: "Vigil of All Saints" rank: vigil common: common-of-a-vigil propers: "vigil-of-all-saints" +# P/T/S/N: not confirmed via this pass's own file parser (this vigil's +# particular file format wasn't handled by it), but every other vigil on +# this calendar shares common-of-a-vigil (live-query-verified via the +# Vigil of St. Andrew/St. Bartholomew, see that section of TODO.md) -- +# wired directly on that overwhelming precedent. +minorHoursCommon: common-of-a-vigil diff --git a/src/data/calendar/saints/vigil-of-ss-simon-and-jude.yml b/src/data/calendar/saints/vigil-of-ss-simon-and-jude.yml index c1e6ecf..cf59b8d 100644 --- a/src/data/calendar/saints/vigil-of-ss-simon-and-jude.yml +++ b/src/data/calendar/saints/vigil-of-ss-simon-and-jude.yml @@ -5,3 +5,8 @@ name: "Vigil of Ss. Simon and Jude" rank: vigil common: common-of-a-vigil propers: "vigil-of-ss-simon-and-jude" +# P/T/S/N: no [Ant Prima]/etc of its own in the source (10-27.txt) -- +# [Rule]/[Rank] point to Commune/C1v instead, the same C-number family +# already live-query-verified for common-of-a-vigil.yml (see TODO.md's 'minor +# hour content gaps' section). +minorHoursCommon: common-of-a-vigil diff --git a/src/data/calendar/saints/vigil-of-st-john-the-baptist.yml b/src/data/calendar/saints/vigil-of-st-john-the-baptist.yml index 10ca41d..a7ed77f 100644 --- a/src/data/calendar/saints/vigil-of-st-john-the-baptist.yml +++ b/src/data/calendar/saints/vigil-of-st-john-the-baptist.yml @@ -8,3 +8,9 @@ name: "Vigil of St. John the Baptist" rank: vigil common: common-of-a-vigil propers: "vigil-of-st-john-the-baptist" +# P/T/S/N: not confirmed via this pass's own file parser (this vigil's +# particular file format wasn't handled by it), but every other vigil on +# this calendar shares common-of-a-vigil (live-query-verified via the +# Vigil of St. Andrew/St. Bartholomew, see that section of TODO.md) -- +# wired directly on that overwhelming precedent. +minorHoursCommon: common-of-a-vigil diff --git a/src/data/calendar/saints/vigil-of-st-lawrence.yml b/src/data/calendar/saints/vigil-of-st-lawrence.yml index 898a900..ff212dd 100644 --- a/src/data/calendar/saints/vigil-of-st-lawrence.yml +++ b/src/data/calendar/saints/vigil-of-st-lawrence.yml @@ -11,3 +11,9 @@ propers: "vigil-of-st-lawrence" # Benedictus antiphon live-verified (2026-08, Lauds query, 2025-08-09, winner # outright) as byte-identical to common-of-a-vigil.yml's own. benedictusCommon: common-of-a-vigil +# P/T/S/N: not confirmed via this pass's own file parser (this vigil's +# particular file format wasn't handled by it), but every other vigil on +# this calendar shares common-of-a-vigil (live-query-verified via the +# Vigil of St. Andrew/St. Bartholomew, see that section of TODO.md) -- +# wired directly on that overwhelming precedent. +minorHoursCommon: common-of-a-vigil diff --git a/src/data/propers/common/none-antiphon-st-gregory-the-great.yml b/src/data/propers/common/none-antiphon-st-gregory-the-great.yml new file mode 100644 index 0000000..3e088fb --- /dev/null +++ b/src/data/propers/common/none-antiphon-st-gregory-the-great.yml @@ -0,0 +1,11 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), None +# live query, St. Gregory the Great's own day (2033-03-12) -- see +# prime-antiphon-st-gregory-the-great.yml's header for the full +# provenance note. English translated (no source rendering), `draft`. +id: none-antiphon-st-gregory-the-great +text: + la: "Gregórius, * monachórum spéculum, pater Urbis, orbis delíciæ." + en: "Gregory, * the mirror of monks, father of the City, the delight of the world." +status: + la: verified + en: draft diff --git a/src/data/propers/common/none-capitulum-st-gregory-the-great.yml b/src/data/propers/common/none-capitulum-st-gregory-the-great.yml new file mode 100644 index 0000000..755e1c6 --- /dev/null +++ b/src/data/propers/common/none-capitulum-st-gregory-the-great.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), None +# live query, St. Gregory the Great's own day (2033-03-12) -- see +# prime-antiphon-st-gregory-the-great.yml's header for the full +# provenance note. The source's own English page rendered the closing +# versicles but not the reading itself (silently duplicated the Latin); +# only the reading is translated here, so `draft`. +id: none-capitulum-st-gregory-the-great +text: + la: "Curávit gentem suam, et liberávit eam a perditióne. Qui prævalúit amplificáre civitátem, qui adéptus est glóriam in conversatióne gentis. R. Deo grátias. V. Tu es sacérdos in ætérnum. R. Secúndum órdinem Melchísedech." + en: "He took care of his nation, and delivered it from destruction. He prevailed to enlarge the city, and obtained glory by his converse with the people. R. Thanks be to God. V. Thou art a Priest for ever. R. After the order of Melchisedek." +citation: + la: "Eccl 50:4-5" + en: "Eccl 50:4-5" +status: + la: verified + en: draft diff --git a/src/data/propers/common/prime-antiphon-st-gregory-the-great.yml b/src/data/propers/common/prime-antiphon-st-gregory-the-great.yml new file mode 100644 index 0000000..29c7a8f --- /dev/null +++ b/src/data/propers/common/prime-antiphon-st-gregory-the-great.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Prime +# live query, St. Gregory the Great's own day (2033-03-12) -- own proper +# text, not shared with common-of-a-confessor-bishop.yml (unlike most +# other Doctor-of-the-Church saints on this calendar, whose own [Rule] +# also says "vide C4a" but whose actual live-rendered P/T/S/N is +# byte-identical to common-of-a-confessor-bishop's -- see TODO.md's +# "minor hour content gaps" section). Alludes to his own election as +# Pope. English translated (the source's own English page didn't render +# one, same gap as his existing Benedictus-antiphon file), so `draft`. +id: prime-antiphon-st-gregory-the-great +text: + la: "Beátus Gregórius * in cáthedra Petri sublimátus, Vigilántis nomen factis implévit." + en: "Blessed Gregory, * raised up to the Chair of Peter, fulfilled in his deeds the name of the Watchman." +status: + la: verified + en: draft diff --git a/src/data/propers/common/sext-antiphon-st-gregory-the-great.yml b/src/data/propers/common/sext-antiphon-st-gregory-the-great.yml new file mode 100644 index 0000000..1d2dd2d --- /dev/null +++ b/src/data/propers/common/sext-antiphon-st-gregory-the-great.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Sext +# live query, St. Gregory the Great's own day (2033-03-12) -- see +# prime-antiphon-st-gregory-the-great.yml's header for the full +# provenance note. Alludes to the legend of the Holy Spirit inspiring +# his writings as a dove (the traditional iconography of Gregory +# dictating with a dove at his ear). English translated (no source +# rendering), `draft`. +id: sext-antiphon-st-gregory-the-great +text: + la: "Dum páginæ sacræ * mystéria pánderet, colúmba nive candídior appáruit." + en: "While he was unfolding * the mysteries of the sacred page, a dove whiter than snow appeared." +status: + la: verified + en: draft diff --git a/src/data/propers/common/sext-capitulum-st-gregory-the-great.yml b/src/data/propers/common/sext-capitulum-st-gregory-the-great.yml new file mode 100644 index 0000000..bd85b7d --- /dev/null +++ b/src/data/propers/common/sext-capitulum-st-gregory-the-great.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Sext +# live query, St. Gregory the Great's own day (2033-03-12) -- see +# prime-antiphon-st-gregory-the-great.yml's header for the full +# provenance note. The source's own English page rendered the closing +# versicles but not the reading itself (silently duplicated the Latin); +# only the reading is translated here, so `draft`. +id: sext-capitulum-st-gregory-the-great +text: + la: "Stare fecit cantóres contra altáre, et in sono eórum dulces fecit modos. Et dedit in celebratiónibus decus, et ornávit témpora usque ad consummatiónem vitæ. R. Deo grátias. V. Elégit eum Dóminus sacerdótem sibi. R. Ad sacrificándum ei hóstiam laudis." + en: "He set singers before the altar, and in their sound he made sweet melody. And he gave beauty to the feasts, and set the times in order even to the end of his life. R. Thanks be to God. V. The Lord hath chosen him for a Priest unto Himself. R. To offer up unto Him the sacrifice of praise." +citation: + la: "Eccl 47:11-12" + en: "Eccl 47:11-12" +status: + la: verified + en: draft diff --git a/src/data/propers/common/terce-antiphon-st-gregory-the-great.yml b/src/data/propers/common/terce-antiphon-st-gregory-the-great.yml new file mode 100644 index 0000000..042736c --- /dev/null +++ b/src/data/propers/common/terce-antiphon-st-gregory-the-great.yml @@ -0,0 +1,12 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Terce +# live query, St. Gregory the Great's own day (2033-03-12) -- see +# prime-antiphon-st-gregory-the-great.yml's header for the full +# provenance note. Alludes to his "Liber Regulæ Pastoralis." English +# translated (no source rendering), `draft`. +id: terce-antiphon-st-gregory-the-great +text: + la: "Pastor exímius * pastorális vitæ spécimen trádidit et régulam." + en: "An excellent shepherd, * he handed down both the pattern and the rule of the pastoral life." +status: + la: verified + en: draft diff --git a/src/data/propers/common/terce-capitulum-st-gregory-the-great.yml b/src/data/propers/common/terce-capitulum-st-gregory-the-great.yml new file mode 100644 index 0000000..6ac2d90 --- /dev/null +++ b/src/data/propers/common/terce-capitulum-st-gregory-the-great.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Terce +# live query, St. Gregory the Great's own day (2033-03-12) -- see +# prime-antiphon-st-gregory-the-great.yml's header for the full +# provenance note. The source's own English page rendered the closing +# versicles but not the reading itself (silently duplicated the Latin); +# only the reading is translated here, so `draft`. +id: terce-capitulum-st-gregory-the-great +text: + la: "Ecce sacérdos magnus, qui in vita sua suffúlsit domum, et in diébus suis corroborávit templum. R. Deo grátias. V. Amávit eum Dóminus, et ornávit eum. R. Stolam glóriæ índuit eum." + en: "Behold a great priest, who in his life propped up the house, and in his days strengthened the temple. R. Thanks be to God. V. The Lord loved him and beautified him. R. He clothed him with a robe of glory." +citation: + la: "Eccl 50:1" + en: "Eccl 50:1" +status: + la: verified + en: draft diff --git a/tests/hours/resolve-common.test.ts b/tests/hours/resolve-common.test.ts index 6cf4368..20889cc 100644 --- a/tests/hours/resolve-common.test.ts +++ b/tests/hours/resolve-common.test.ts @@ -97,6 +97,42 @@ describe('genuinely unwinnable stubs still get a Benedictus antiphon (2026-08)', const ben = getBenedictusAntiphon(syntheticSanctoralDay('st-frances-of-rome')); expect(ben.status).toEqual({ la: 'verified', en: 'verified' }); }); +}); + +describe('minorHoursCommon for the *whole* calendar, not just the 94-saint batch (2026-08)', () => { + it("reuses another saint's own proper P/T/S/N wholesale when [Rule] points at their file directly, not a Commune category", () => { + // Finding of St. Stephen -- her own [Rule] is "vide Sancti/12-26" + // (St. Stephen Protomartyr's own Dec 26 file), not a Commune + // reference at all, so minorHoursCommon is his own id + // (st-stephen-protomartyr) -- reuses his already-authored proper + // files directly, same pattern as common-of-st-peter earlier. + const day = resolveDay('2026-08-03'); + expect(day.winner).toMatchObject({ kind: 'sanctoral', id: 'finding-of-st-stephen' }); + expect(resolveMinorHourAntiphon('prime', day, {}).status.la).toBe('verified'); + }); + + it('a Doctor of the Church can have genuinely unique proper P/T/S/N, not shared with any Common', () => { + // St. Gregory the Great -- his own [Rule] says "vide C4a" (Doctor), + // the same reference 5 of the 6 other Doctor saints on this + // calendar have too, but his own live-rendered P/T/S/N is real, + // unique text ("Beátus Gregórius in cáthedra Petri...") -- not + // shared with common-of-a-confessor-bishop.yml the way St. Hilary + // of Poitiers's, St. Athanasius's, etc. all are (see + // st-hilary-of-poitiers.yml's own comment). + const day = resolveDay('2033-03-12'); + expect(day.winner).toMatchObject({ kind: 'sanctoral', id: 'st-gregory-the-great' }); + const prime = resolveMinorHourAntiphon('prime', day, {}); + expect(prime.status.la).toBe('verified'); + expect(prime.text.la).toContain('Gregórius'); + }); + + it('most Doctor-of-the-Church saints share common-of-a-confessor-bishop despite their own [Rule] pointing at C4a (Doctor)', () => { + const day = resolveDay('2026-01-14'); // St. Hilary of Poitiers + expect(day.winner).toMatchObject({ kind: 'sanctoral', id: 'st-hilary-of-poitiers' }); + const prime = resolveMinorHourAntiphon('prime', day, {}); + expect(prime.status.la).toBe('verified'); + expect(prime.text.la).toContain('Ecce sacérdos magnus'); + }); it("resolves its own file's [Ant 1] as draft, not verified, when it can't be checked against a live rendering", () => { // Ss. Euphemia, Lucy, and Geminian -- her own file *does* have an