diff --git a/src/data/calendar/saints/nativity-bvm.yml b/src/data/calendar/saints/nativity-bvm.yml index 9666bbc..a41d1d6 100644 --- a/src/data/calendar/saints/nativity-bvm.yml +++ b/src/data/calendar/saints/nativity-bvm.yml @@ -1,7 +1,10 @@ # Verified against Divinum Officium (web/www/horas/Latin/Sancti/09-08.txt, -# untagged/default [Rank] block). +# untagged/default [Rank] block). Propers backfilled during the September +# pull (live kalendar/prayTertia check, 2025-09-08) now that the +# collect-pulling methodology exists -- own proper collect and antiphon; +# wins outright over the stub St. Hadrian (see st-hadrian.yml). id: nativity-bvm name: "The Nativity of the Blessed Virgin Mary" rank: duplex-2-classis common: common-of-the-bvm -propers: null +propers: "nativity-bvm" diff --git a/src/data/calendar/saints/ss-cornelius-and-cyprian.yml b/src/data/calendar/saints/ss-cornelius-and-cyprian.yml new file mode 100644 index 0000000..dc974a4 --- /dev/null +++ b/src/data/calendar/saints/ss-cornelius-and-cyprian.yml @@ -0,0 +1,13 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-16, 2026-09-16) -- winner outright, Semiduplex, +# over the stub Ss. Euphemia, Lucy, and Geminianus (see +# ss-euphemia-lucia-and-geminianus.yml). In years where Sep 16 itself +# falls on the movable September Ember Wednesday, that Ember day is +# commemorated instead of Euphemia et al. (confirmed 2026) -- doesn't +# change this saint's own outright win either way. No unique collect: the +# raw file at this MM-DD slot (Sancti/09-16.txt) is empty. +id: ss-cornelius-and-cyprian +name: "Ss. Cornelius, Pope, and Cyprian, Bishop, Martyrs" +rank: semiduplex +common: common-of-several-martyrs +propers: null diff --git a/src/data/calendar/saints/ss-cosmas-and-damian.yml b/src/data/calendar/saints/ss-cosmas-and-damian.yml new file mode 100644 index 0000000..1099e73 --- /dev/null +++ b/src/data/calendar/saints/ss-cosmas-and-damian.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-27) -- winner outright, Semiduplex, alone. Own +# proper collect, no unique antiphon of their own. +id: ss-cosmas-and-damian +name: "Ss. Cosmas and Damian, Martyrs" +rank: semiduplex +common: common-of-several-martyrs +propers: "ss-cosmas-and-damian" diff --git a/src/data/calendar/saints/ss-cyprian-and-justina.yml b/src/data/calendar/saints/ss-cyprian-and-justina.yml new file mode 100644 index 0000000..640bf8c --- /dev/null +++ b/src/data/calendar/saints/ss-cyprian-and-justina.yml @@ -0,0 +1,11 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-26) -- winner outright, Simplex, alone. Own +# proper collect, no unique antiphon of their own. A different St. +# Cyprian than the Sep 16 St. Cornelius's companion (see +# ss-cornelius-and-cyprian.yml) -- this Cyprian is paired with St. +# Justina instead, a distinct legend. +id: ss-cyprian-and-justina +name: "Ss. Cyprian and Justina, Martyrs" +rank: simplex +common: common-of-several-martyrs +propers: "ss-cyprian-and-justina" diff --git a/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml b/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml new file mode 100644 index 0000000..bb8dc61 --- /dev/null +++ b/src/data/calendar/saints/ss-euphemia-lucia-and-geminianus.yml @@ -0,0 +1,15 @@ +# Genuinely unwinnable stub (verified 2025-09-16, a non-Ember year) -- +# always commemorated under Ss. Cornelius and Cyprian (see +# ss-cornelius-and-cyprian.yml), never wins outright; both are fixed, +# non-movable dates, so this isn't an artifact of the tested year. In +# years where Sep 16 lands on the movable September Ember Wednesday +# instead (confirmed 2026), this saint doesn't even surface as a +# commemoration at all -- the Ember day takes that slot -- but that's a +# separate, already-modeled temporal interaction (privileged-feria), +# not a change to this saint's own standing. rank/propers unverified +# placeholders. +id: ss-euphemia-lucia-and-geminianus +name: "Ss. Euphemia, Lucy, and Geminianus, Martyrs" +rank: simplex +common: common-of-several-martyrs +propers: null diff --git a/src/data/calendar/saints/ss-maurice-and-companions.yml b/src/data/calendar/saints/ss-maurice-and-companions.yml new file mode 100644 index 0000000..5ba3b24 --- /dev/null +++ b/src/data/calendar/saints/ss-maurice-and-companions.yml @@ -0,0 +1,13 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-22) -- winner outright, Simplex, alone. No +# unique collect: the raw file at this MM-DD slot (Sancti/09-22.txt) is +# actually St. Thomas of Villanova's, a Bishop (a later, post-1617 +# addition to this filename slot, canonized 1658) -- a live prayTertia +# query for the Monastic 1617 track returns no Oratio at all, confirming +# propers: null is correct, same file-naming caution as several of +# August's entries. +id: ss-maurice-and-companions +name: "Ss. Maurice and Companions, Martyrs" +rank: simplex +common: common-of-several-martyrs +propers: null diff --git a/src/data/calendar/saints/ss-twelve-brothers.yml b/src/data/calendar/saints/ss-twelve-brothers.yml new file mode 100644 index 0000000..fe4f153 --- /dev/null +++ b/src/data/calendar/saints/ss-twelve-brothers.yml @@ -0,0 +1,9 @@ +# Genuinely unwinnable stub (verified 2025-09-01, 2026-09-01) -- always +# commemorated under St. Giles (see st-giles.yml), never wins outright; +# both are fixed, non-movable dates, so this isn't an artifact of the +# tested year. rank/propers unverified placeholders. +id: ss-twelve-brothers +name: "Ss. Twelve Brothers, Martyrs" +rank: simplex +common: common-of-several-martyrs +propers: null diff --git a/src/data/calendar/saints/st-giles.yml b/src/data/calendar/saints/st-giles.yml new file mode 100644 index 0000000..f02ca62 --- /dev/null +++ b/src/data/calendar/saints/st-giles.yml @@ -0,0 +1,10 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-01, 2026-09-01) -- winner outright, Simplex, +# over the stub Ss. Twelve Brothers (see ss-twelve-brothers.yml). No +# unique collect: the raw file at this MM-DD slot (Sancti/09-01.txt) is +# empty. +id: st-giles +name: "St. Giles, Abbot" +rank: simplex +common: common-of-an-abbot +propers: null diff --git a/src/data/calendar/saints/st-hadrian.yml b/src/data/calendar/saints/st-hadrian.yml new file mode 100644 index 0000000..8a21861 --- /dev/null +++ b/src/data/calendar/saints/st-hadrian.yml @@ -0,0 +1,14 @@ +# Genuinely unwinnable stub (verified 2025-09-08, 2026-09-08) -- always +# commemorated under the Nativity of the BVM (see nativity-bvm.yml), +# never wins outright; both are fixed, non-movable dates, so this isn't +# an artifact of the tested year. Unlike this month's several Nativity- +# octave secondary saints (excluded entirely -- see the sanctoral- +# calendar.yml comment on this month's octave-gap exclusions), this one +# IS representable: the Nativity's own day (Sep 8) is already a normal +# mapped sanctoral entry, so the collision engine resolves it correctly +# without needing octave support. rank/propers unverified placeholders. +id: st-hadrian +name: "St. Hadrian, Martyr" +rank: simplex +common: common-of-a-martyr +propers: null diff --git a/src/data/calendar/saints/st-januarius.yml b/src/data/calendar/saints/st-januarius.yml new file mode 100644 index 0000000..bb97d6a --- /dev/null +++ b/src/data/calendar/saints/st-januarius.yml @@ -0,0 +1,11 @@ +# A monastic-calendar-specific addition: not present in the base Tridentine +# table (1570.txt), added by the monastic-specific delta table +# (M1617.txt). Verified live (Monastic Tridentinum 1617, 2025-09-19) -- +# winner outright, Semiduplex, alone (the only other candidate that day is +# a September Ember Friday feria, not another saint). No unique collect: +# the raw file at this MM-DD slot (Sancti/09-19.txt) is empty. +id: st-januarius +name: "St. Januarius, Bishop, and Companions, Martyrs" +rank: semiduplex +common: common-of-a-martyr-bishop +propers: null diff --git a/src/data/calendar/saints/st-jerome.yml b/src/data/calendar/saints/st-jerome.yml new file mode 100644 index 0000000..7c60c59 --- /dev/null +++ b/src/data/calendar/saints/st-jerome.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-30) -- winner outright, Duplex, alone. Own +# proper collect, no unique antiphon of his own. +id: st-jerome +name: "St. Jerome, Priest, Confessor and Doctor of the Church" +rank: duplex +common: common-of-a-confessor-not-bishop +propers: "st-jerome" diff --git a/src/data/calendar/saints/st-linus.yml b/src/data/calendar/saints/st-linus.yml new file mode 100644 index 0000000..b73aee7 --- /dev/null +++ b/src/data/calendar/saints/st-linus.yml @@ -0,0 +1,9 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2025-09-23, 2026-09-23) -- winner outright, Semiduplex, +# over the stub St. Thecla (see st-thecla.yml). No unique collect: the +# raw file at this MM-DD slot (Sancti/09-23.txt) is empty. +id: st-linus +name: "St. Linus, Pope and Martyr" +rank: semiduplex +common: common-of-a-martyr-bishop +propers: null diff --git a/src/data/calendar/saints/st-matthew.yml b/src/data/calendar/saints/st-matthew.yml new file mode 100644 index 0000000..cefaff4 --- /dev/null +++ b/src/data/calendar/saints/st-matthew.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live +# kalendar check (2026-09-21) -- winner outright, Duplex II. classis, +# alone. Own proper collect, no unique antiphon of his own. +id: st-matthew +name: "St. Matthew, Apostle and Evangelist" +rank: duplex-2-classis +common: common-of-an-apostle +propers: "st-matthew" diff --git a/src/data/calendar/saints/st-nicholas-of-tolentino.yml b/src/data/calendar/saints/st-nicholas-of-tolentino.yml new file mode 100644 index 0000000..dafaafe --- /dev/null +++ b/src/data/calendar/saints/st-nicholas-of-tolentino.yml @@ -0,0 +1,15 @@ +# A monastic-calendar-specific reassignment, not a mistake: the base +# Tridentine table (1570.txt) has Sep 10 as a plain continuation of the +# Nativity of the BVM's octave, but the monastic-specific delta table +# (M1617.txt) overrides that day entirely with this saint -- confirmed +# live (Monastic Tridentinum 1617, 2025-09-10), winning outright at +# Semiduplex, alone (the octave continuation is demoted to a mere +# commemoration, itself not independently named so not modeled). Same +# class of finding as April's St. Robert/St. Catherine reassignment. No +# unique collect: the raw file at this MM-DD slot (Sancti/09-10.txt) is +# empty. +id: st-nicholas-of-tolentino +name: "St. Nicholas of Tolentino, Confessor" +rank: semiduplex +common: common-of-a-confessor-not-bishop +propers: null diff --git a/src/data/calendar/saints/st-thecla.yml b/src/data/calendar/saints/st-thecla.yml new file mode 100644 index 0000000..3a11514 --- /dev/null +++ b/src/data/calendar/saints/st-thecla.yml @@ -0,0 +1,9 @@ +# Genuinely unwinnable stub (verified 2025-09-23, 2026-09-23) -- always +# commemorated under St. Linus (see st-linus.yml), never wins outright; +# both are fixed, non-movable dates, so this isn't an artifact of the +# tested year. rank/propers unverified placeholders. +id: st-thecla +name: "St. Thecla, Virgin and Martyr" +rank: simplex +common: common-of-a-virgin-martyr +propers: null diff --git a/src/data/calendar/saints/vigil-of-st-matthew.yml b/src/data/calendar/saints/vigil-of-st-matthew.yml new file mode 100644 index 0000000..bd0df8b --- /dev/null +++ b/src/data/calendar/saints/vigil-of-st-matthew.yml @@ -0,0 +1,17 @@ +# A real vigil. Sep 20 sometimes coincides with the movable September +# Ember Saturday (privileged-feria, already modeled -- which specific +# week in September Ember falls in shifts year to year, confirmed by +# comparing 2025, where Sep 20 IS Ember Saturday, against 2026, where +# Sep 20 is an ordinary Sunday instead). In the *real* engine, on an +# Ember-Saturday year this vigil is commemorated Mass-only rather than +# fully displaced (2025-09-20, live check) -- this app doesn't model that +# Office-vs-Mass distinction anywhere, so here it simply transfers per the +# ordinary privileged-feria/vigil rule instead, a known, already-accepted +# simplification (not specific to this saint) rather than a guess. No +# unique collect: the raw file at this MM-DD slot (Sancti/09-20.txt) is +# empty. +id: vigil-of-st-matthew +name: "Vigil of St. Matthew" +rank: vigil +common: common-of-a-vigil +propers: null diff --git a/src/data/calendar/sanctoral-calendar.yml b/src/data/calendar/sanctoral-calendar.yml index 04a29a0..1cef35d 100644 --- a/src/data/calendar/sanctoral-calendar.yml +++ b/src/data/calendar/sanctoral-calendar.yml @@ -191,7 +191,45 @@ days: "08-28": [st-augustine, st-hermes] "08-29": [decollation-of-st-john-baptist, st-sabina] "08-30": [ss-felix-and-adauctus] - "09-08": [nativity-bvm] + # September — 9/12 of the pre-1955 pull. Same octave-gap exclusions as + # August, this time around the Nativity of the BVM's own Sep 8-15 + # octave: Ss. Gorgonius (Sep 9), Proti and Hyacinthus (Sep 11), and + # Nicomedes (Sep 15, the octave's own final day) are real named + # secondaries excluded for the same reason St. Clare was in August. + # St. Hadrian (Sep 8) is the one exception -- he's blocked by the + # Nativity's own day, not its octave, and that day IS already a mapped + # sanctoral entry, so the ordinary collision engine handles him + # correctly. The Exaltation of the Holy Cross (Sep 14) is excluded as a + # fixed feast of the Lord, same convention as the Finding of the Holy + # Cross. St. Nicholas of Tolentino (Sep 10) and St. Januarius (Sep 19) + # are both monastic-calendar-specific: the former overrides what the + # base Tridentine table treats as a plain Nativity-octave continuation, + # the latter is added outright, present in neither the base table nor + # (for Nicholas) its own octave slot. + # + # FLAGGED FOR REVIEW: the pre-existing "09-29": [st-michael] mapping + # below (added before this pull initiative, sourced from the raw + # Sancti/09-29.txt file directly rather than a live query) does not + # appear to hold in this pull's actual target track -- a live kalendar + # check across 6 different years (2025-2030) shows nothing at all on + # Sep 29 in "Monastic Tridentinum 1617" (not even a commemoration), + # and that file's own [Rank] block has no untagged/default entry for + # this date, only rubric-tagged alternates (tridentina, cisterciensis). + # The already-correctly-pulled May 8 Apparition of St. Michael (see + # apparition-of-st-michael.yml) may be this tradition's only real + # Michaelmas. Left as-is pending a decision -- see this month's summary. + "09-01": [st-giles, ss-twelve-brothers] + "09-08": [nativity-bvm, st-hadrian] + "09-10": [st-nicholas-of-tolentino] + "09-16": [ss-cornelius-and-cyprian, ss-euphemia-lucia-and-geminianus] + "09-19": [st-januarius] + "09-20": [vigil-of-st-matthew] + "09-21": [st-matthew] + "09-22": [ss-maurice-and-companions] + "09-23": [st-linus, st-thecla] + "09-26": [ss-cyprian-and-justina] + "09-27": [ss-cosmas-and-damian] "09-29": [st-michael] + "09-30": [st-jerome] "11-01": [all-saints] "12-08": [immaculate-conception]