From 1b3d236ef394830e79da1a35f6c4778825a6ed1f Mon Sep 17 00:00:00 2001 From: Will Estes Date: Mon, 10 Aug 2026 17:14:04 -0400 Subject: [PATCH] calendar: pull April's sanctoral calendar (pre-1955 pull, 4/12) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 12 saints for April (11 real + St. Catherine of Siena as a stub), all winning outright on a clean per-annum date. Two real methodological findings this month: - St. Mark (Apr 25, Duplex II. classis) directly confirms the privileged-feria-major behavior from the previous fix: he only ever gets commemorated within the Easter Octave, never wins there. - St. Robert/St. Catherine of Siena (Apr 29) is a genuine, year-stable monastic-calendar reassignment — this app's own base Latin source data files that date's Roman-calendar content under a different saint (Peter Martyr) entirely, which a naive raw-file lookup by MM-DD would have missed; the live per-date query resolved it correctly regardless, and is what these records are actually built from. Worth remembering for future months. New common category: common-of-an-evangelist (St. Mark, an Evangelist but not an Apostle). Co-Authored-By: Claude Sonnet 5 --- .../saints/ss-cletus-and-marcellinus.yml | 8 ++++++++ src/data/calendar/saints/ss-soter-and-caius.yml | 11 +++++++++++ .../ss-tiburtius-valerian-and-maximus.yml | 9 +++++++++ src/data/calendar/saints/st-anicetus.yml | 8 ++++++++ .../calendar/saints/st-catherine-of-siena.yml | 13 +++++++++++++ .../calendar/saints/st-francis-of-paola.yml | 11 +++++++++++ src/data/calendar/saints/st-george.yml | 8 ++++++++ src/data/calendar/saints/st-leo-i.yml | 12 ++++++++++++ src/data/calendar/saints/st-mark.yml | 13 +++++++++++++ src/data/calendar/saints/st-peter-martyr.yml | 11 +++++++++++ src/data/calendar/saints/st-robert.yml | 17 +++++++++++++++++ src/data/calendar/saints/st-vitalis.yml | 8 ++++++++ src/data/calendar/sanctoral-calendar.yml | 16 ++++++++++++++++ 13 files changed, 145 insertions(+) create mode 100644 src/data/calendar/saints/ss-cletus-and-marcellinus.yml create mode 100644 src/data/calendar/saints/ss-soter-and-caius.yml create mode 100644 src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml create mode 100644 src/data/calendar/saints/st-anicetus.yml create mode 100644 src/data/calendar/saints/st-catherine-of-siena.yml create mode 100644 src/data/calendar/saints/st-francis-of-paola.yml create mode 100644 src/data/calendar/saints/st-george.yml create mode 100644 src/data/calendar/saints/st-leo-i.yml create mode 100644 src/data/calendar/saints/st-mark.yml create mode 100644 src/data/calendar/saints/st-peter-martyr.yml create mode 100644 src/data/calendar/saints/st-robert.yml create mode 100644 src/data/calendar/saints/st-vitalis.yml diff --git a/src/data/calendar/saints/ss-cletus-and-marcellinus.yml b/src/data/calendar/saints/ss-cletus-and-marcellinus.yml new file mode 100644 index 0000000..40b2ef0 --- /dev/null +++ b/src/data/calendar/saints/ss-cletus-and-marcellinus.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-26, no Sunday collision) -- winner outright, Semiduplex. +# No unique Oratio/Antiphon -- Common of Several Martyrs only. +id: ss-cletus-and-marcellinus +name: "Ss. Cletus and Marcellinus, Popes and Martyrs" +rank: semiduplex +common: common-of-several-martyrs +propers: null diff --git a/src/data/calendar/saints/ss-soter-and-caius.yml b/src/data/calendar/saints/ss-soter-and-caius.yml new file mode 100644 index 0000000..62d615e --- /dev/null +++ b/src/data/calendar/saints/ss-soter-and-caius.yml @@ -0,0 +1,11 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-22, no Sunday collision) -- winner outright, Semiduplex. +# The source shows an alternate [Officium] block tagged "(rubrica 196)" +# -- a later rubric renumbering, not this app's target era, so the +# untagged/default block is used, same convention as every other saint in +# this set. No unique Oratio/Antiphon -- Common of Several Martyrs only. +id: ss-soter-and-caius +name: "Ss. Soter and Caius, Popes and Martyrs" +rank: semiduplex +common: common-of-several-martyrs +propers: null diff --git a/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml b/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml new file mode 100644 index 0000000..5c69ce9 --- /dev/null +++ b/src/data/calendar/saints/ss-tiburtius-valerian-and-maximus.yml @@ -0,0 +1,9 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2043-04-14, a year St. Francis of Paola doesn't transfer here) -- +# winner outright, Simplex. Own proper collect, no unique antiphon of +# their own. +id: ss-tiburtius-valerian-and-maximus +name: "Ss. Tiburtius, Valerian, and Maximus, Martyrs" +rank: simplex +common: common-of-several-martyrs +propers: "ss-tiburtius-valerian-and-maximus" diff --git a/src/data/calendar/saints/st-anicetus.yml b/src/data/calendar/saints/st-anicetus.yml new file mode 100644 index 0000000..95a68d8 --- /dev/null +++ b/src/data/calendar/saints/st-anicetus.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-17, no Sunday collision) -- winner outright, Simplex. No +# unique Oratio/Antiphon in the source -- Common of a Martyr Bishop only. +id: st-anicetus +name: "St. Anicetus, Pope and Martyr" +rank: simplex +common: common-of-a-martyr-bishop +propers: null diff --git a/src/data/calendar/saints/st-catherine-of-siena.yml b/src/data/calendar/saints/st-catherine-of-siena.yml new file mode 100644 index 0000000..6abeab1 --- /dev/null +++ b/src/data/calendar/saints/st-catherine-of-siena.yml @@ -0,0 +1,13 @@ +# Secondary commemoration on 04-29 (loses the day to St. Robert, Abbot -- +# see st-robert.yml's note on this being a fixed monastic-calendar +# reassignment, confirmed stable across two different years). Her real +# historical/Roman-calendar date is Apr 30, but in this monastic calendar +# specifically she sits on Apr 29 as Robert's secondary instead. No live +# query exposes a secondary entry's own rank -- simplex here is an +# unverified placeholder, same caveat as every other stub in this set. +# No text pulled at all yet. +id: st-catherine-of-siena +name: "St. Catherine of Siena, Virgin" +rank: simplex +common: common-of-a-virgin +propers: null diff --git a/src/data/calendar/saints/st-francis-of-paola.yml b/src/data/calendar/saints/st-francis-of-paola.yml new file mode 100644 index 0000000..2c75666 --- /dev/null +++ b/src/data/calendar/saints/st-francis-of-paola.yml @@ -0,0 +1,11 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-14) -- his native date is Apr 2, but Holy Week blocked him +# that year and he transferred here instead, winning outright against +# Ss. Tiburtius/Valerian/Maximus (his own file's own real content, so still +# reliably read even though the date isn't his usual one) -- Duplex. Own +# proper collect, no unique antiphon of his own. +id: st-francis-of-paola +name: "St. Francis of Paola, Confessor" +rank: duplex +common: common-of-a-confessor +propers: "st-francis-of-paola" diff --git a/src/data/calendar/saints/st-george.yml b/src/data/calendar/saints/st-george.yml new file mode 100644 index 0000000..024327e --- /dev/null +++ b/src/data/calendar/saints/st-george.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-23, no Sunday collision) -- winner outright, Semiduplex. +# Own proper collect, no unique antiphon of his own. +id: st-george +name: "St. George, Martyr" +rank: semiduplex +common: common-of-a-martyr +propers: "st-george" diff --git a/src/data/calendar/saints/st-leo-i.yml b/src/data/calendar/saints/st-leo-i.yml new file mode 100644 index 0000000..b902e03 --- /dev/null +++ b/src/data/calendar/saints/st-leo-i.yml @@ -0,0 +1,12 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2043-04-11, clear of the Easter Octave that usually overshadows +# this date, and not a Sunday) -- winner outright, Duplex. Own proper +# collect (marked in the source as used "nisi communi Summorum +# Pontificum" -- unless the Common of Popes formula applies instead; used +# here regardless, matching how every other saint's own proper collect in +# this set is preferred over a Common). No unique antiphon of his own. +id: st-leo-i +name: "St. Leo I, Pope, Confessor and Doctor of the Church" +rank: duplex +common: common-of-a-confessor-bishop +propers: "st-leo-i" diff --git a/src/data/calendar/saints/st-mark.yml b/src/data/calendar/saints/st-mark.yml new file mode 100644 index 0000000..b633bda --- /dev/null +++ b/src/data/calendar/saints/st-mark.yml @@ -0,0 +1,13 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-25, no Sunday collision) -- winner outright, Duplex II. +# classis. When this date falls within the Easter Octave instead (see +# calendar/temporal-categories.yml's privileged-feria-major note), he's +# merely commemorated, never wins -- the case that helped verify the +# privileged-feria/privileged-feria-major split. Own proper collect, no +# unique antiphon of his own. An Evangelist but not an Apostle, so a new +# category: "common-of-an-evangelist". +id: st-mark +name: "St. Mark, Evangelist" +rank: duplex-2-classis +common: common-of-an-evangelist +propers: "st-mark" diff --git a/src/data/calendar/saints/st-peter-martyr.yml b/src/data/calendar/saints/st-peter-martyr.yml new file mode 100644 index 0000000..27d303d --- /dev/null +++ b/src/data/calendar/saints/st-peter-martyr.yml @@ -0,0 +1,11 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-30) -- winner outright, Semiduplex. St. Peter of Verona, +# not the Apostle. Own proper collect, no unique antiphon of his own. See +# st-robert.yml's note: this app's base Latin source data files this +# saint's content under 04-29.txt (his Roman-calendar date), even though +# he lands on Apr 30 in this monastic calendar specifically. +id: st-peter-martyr +name: "St. Peter Martyr, Martyr" +rank: semiduplex +common: common-of-a-martyr +propers: "st-peter-martyr" diff --git a/src/data/calendar/saints/st-robert.yml b/src/data/calendar/saints/st-robert.yml new file mode 100644 index 0000000..53e107d --- /dev/null +++ b/src/data/calendar/saints/st-robert.yml @@ -0,0 +1,17 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2029-04-29 and again 2043-04-29, confirming this is a fixed +# monastic-calendar reassignment, not year-dependent like St. Francis of +# Paola's transfer) -- winner outright, Duplex, over St. Catherine of +# Siena (see st-catherine-of-siena.yml). Own proper collect, no unique +# antiphon of his own. Genuine methodological note: this app's base Latin +# source data files the Roman-calendar content for this date (04-29.txt) +# under St. Peter Martyr instead -- Robert's own real content lives +# somewhere the monastic-specific delta correctly resolves to, which the +# live-engine query reaches even though a naive raw-file lookup by MM-DD +# wouldn't have. Worth remembering if a future month's raw-file check +# ever seems to contradict what a live query actually shows. +id: st-robert +name: "St. Robert, Abbot" +rank: duplex +common: common-of-an-abbot +propers: "st-robert" diff --git a/src/data/calendar/saints/st-vitalis.yml b/src/data/calendar/saints/st-vitalis.yml new file mode 100644 index 0000000..0512401 --- /dev/null +++ b/src/data/calendar/saints/st-vitalis.yml @@ -0,0 +1,8 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar +# check (2042-04-28, no Sunday collision) -- winner outright, Simplex. Own +# proper collect, no unique antiphon of his own. +id: st-vitalis +name: "St. Vitalis, Martyr" +rank: simplex +common: common-of-a-martyr +propers: "st-vitalis" diff --git a/src/data/calendar/sanctoral-calendar.yml b/src/data/calendar/sanctoral-calendar.yml index ba50acd..56e690b 100644 --- a/src/data/calendar/sanctoral-calendar.yml +++ b/src/data/calendar/sanctoral-calendar.yml @@ -67,6 +67,22 @@ days: "03-12": [st-gregory-the-great] "03-19": [st-joseph] "03-21": [st-benedict] + # April — 4/12 of the pre-1955 pull. St. Robert/St. Catherine of Siena + # (Apr 29) is a genuine monastic-calendar reassignment, not a mistake — + # see st-robert.yml. St. Francis of Paola's native date (Apr 2) often + # transfers due to Holy Week; that's the existing transfer machinery, + # not something recorded specially here. + "04-02": [st-francis-of-paola] + "04-11": [st-leo-i] + "04-14": [ss-tiburtius-valerian-and-maximus] + "04-17": [st-anicetus] + "04-22": [ss-soter-and-caius] + "04-23": [st-george] + "04-25": [st-mark] + "04-26": [ss-cletus-and-marcellinus] + "04-28": [st-vitalis] + "04-29": [st-robert, st-catherine-of-siena] + "04-30": [st-peter-martyr] "08-09": [vigil-of-st-lawrence] "08-10": [st-lawrence] "08-15": [assumption]