diff --git a/src/data/calendar/saints/ss-felix-and-adauctus.yml b/src/data/calendar/saints/ss-felix-and-adauctus.yml index 94e5fe9..7a00d54 100644 --- a/src/data/calendar/saints/ss-felix-and-adauctus.yml +++ b/src/data/calendar/saints/ss-felix-and-adauctus.yml @@ -1,14 +1,19 @@ # Verified against Divinum Officium (Monastic Tridentinum 1617), live # kalendar check on a clean weekday (2027-08-30, a Monday) -- wins outright -# at Simplex. On a Saturday this date is instead outranked by the generic -# "Sanctae Mariae Sabbato" votive (confirmed re-checking 2025-08-30, a -# Saturday, where the votive won instead) -- an artifact of the tested -# weekday, same pattern as St. Stephen I (Aug 2) this month and Ss. -# Marcellinus/Peter/Erasmus in June. No unique collect: the raw file at -# this MM-DD slot (Sancti/08-30.txt) is actually St. Rose of Lima's (a -# much later, 17th-century addition to this filename slot) -- a live -# prayTertia query for the Monastic 1617 track returns no Oratio at all, -# confirming propers: null is correct. +# at Simplex against a bare weekday. On a Saturday this date is instead +# outranked by the generic "Sanctae Mariae Sabbato" votive (confirmed +# re-checking 2025-08-30, a Saturday, where the votive won instead) -- an +# artifact of the tested weekday, same pattern as St. Stephen I (Aug 2) +# this month and Ss. Marcellinus/Peter/Erasmus in June. No unique collect +# of its own here on the Monastic 1617 track (a live prayTertia query for +# that track returns no Oratio at all): the raw file at this MM-DD slot +# (Sancti/08-30.txt) actually belongs to St. Rose of Lima, a much later +# (17th-century) addition to this filename slot on the general +# Tridentine/Divino Afflatu calendar -- see st-rose-of-lima.yml, now +# authored and the day's outright winner (semiduplex > simplex) per +# sanctoral-calendar.yml. Felix and Adauctus's own real content survives +# at the suffixed sibling file (Sancti/08-30o.txt) and is kept here as a +# full commemoration, not suppressed, per collision.ts. id: ss-felix-and-adauctus name: "Ss. Felix and Adauctus, Martyrs" rank: simplex diff --git a/src/data/calendar/saints/st-rose-of-lima.yml b/src/data/calendar/saints/st-rose-of-lima.yml new file mode 100644 index 0000000..055bffe --- /dev/null +++ b/src/data/calendar/saints/st-rose-of-lima.yml @@ -0,0 +1,30 @@ +# Read directly from the reference engine's untagged/default [Rank] +# block of `web/www/horas/Latin/Sancti/08-30.txt` -- "Duplex;;3;;vide +# C6a" (Common of Virgins only). Canonized 1671 (Clement X); this +# filename slot's plain (unsuffixed) file is hers, having displaced the +# ancient Ss. Felix and Adauctus (see ss-felix-and-adauctus.yml) onto +# the suffixed `08-30o.txt` sibling on the general calendar. +# +# Rank deliberately deflated one tier from the source (Duplex -> +# semiduplex): per project policy, a saint whose own canonization +# postdates ~1600 gets one tier off her nominal source rank, since +# "new canonization -> automatic Duplex" was the papacy's default +# practice by then and the raw grade no longer tracks real +# devotional weight the way it does for older saints (see +# vu/CLAUDE.md's "Not a reconstruction" section). This does not apply +# to saints who are merely off their historical calendar slot for +# other reasons (e.g. Felix and Adauctus, Paul the Hermit) -- only to +# saints whose own cultus is genuinely late. +# +# Own real proper [Oratio]. No [Ant 1]/[Lectio7-9] of her own in the +# source -- benedictusCommon/minorHoursCommon fall back to the plain +# Common of a Virgin, and Matins Nocturn 3 defers to the Common's own +# (own Nocturn 2 reading transcribed separately, see +# propers/nocturn-readings/st-rose-of-lima.yml). +id: st-rose-of-lima +name: "St. Rose of Lima, Virgin" +rank: semiduplex +common: common-of-a-virgin +propers: "st-rose-of-lima" +benedictusCommon: common-of-a-virgin +minorHoursCommon: common-of-a-virgin diff --git a/src/data/calendar/sanctoral-calendar.yml b/src/data/calendar/sanctoral-calendar.yml index c30148d..04fbbee 100644 --- a/src/data/calendar/sanctoral-calendar.yml +++ b/src/data/calendar/sanctoral-calendar.yml @@ -276,7 +276,7 @@ days: "08-27": [st-joseph-calasanctius] "08-28": [st-augustine] "08-29": [decollation-of-st-john-baptist, st-sabina] - "08-30": [ss-felix-and-adauctus] + "08-30": [st-rose-of-lima, ss-felix-and-adauctus] "08-31": [st-raymond-nonnatus] # 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 diff --git a/src/data/propers/common/st-rose-of-lima-collect.yml b/src/data/propers/common/st-rose-of-lima-collect.yml new file mode 100644 index 0000000..3082f85 --- /dev/null +++ b/src/data/propers/common/st-rose-of-lima-collect.yml @@ -0,0 +1,26 @@ +# Read directly from web/www/horas/Latin/Sancti/08-30.txt's own +# [Oratio] and its English counterpart. +id: st-rose-of-lima-collect +text: + la: | + Orémus. + Bonórum ómnium largítor, omnípotens Deus, qui beátam Rosam, cæléstis + grátiæ rore prævéntam, virginitátis et patiéntiæ decóre Indis + floréscere voluísti: da nobis fámulis tuis; ut, in odórem suavitátis + ejus curréntes, Christi bonus odor éffici mereámur: + Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et + regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum. + ℟. Amen. + en: | + Let us pray. + Almighty God, Giver of all good things, Who willed that blessed Rose, + imbued in early life with the dew of heavenly grace, should bloom + among the Indians with the beauty of virginity and patience, grant + unto us, Your servants, that, following the fragrance of her + sweetness, we may be found worthy to become a sweet savor of Christ. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with + thee, in the unity of the Holy Ghost, God, world without end. + ℟. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/nocturn-readings/st-rose-of-lima.yml b/src/data/propers/nocturn-readings/st-rose-of-lima.yml new file mode 100644 index 0000000..f436b46 --- /dev/null +++ b/src/data/propers/nocturn-readings/st-rose-of-lima.yml @@ -0,0 +1,102 @@ +# Matins Nocturn 2 reading for St. Rose of Lima, Virgin (Aug 30). +# Sourced directly from web/www/horas/Latin/Sancti/08-30.txt, +# English/Sancti/08-30.txt. Lectio4-6 combined into one reading, one +# continuous vita. No Lectio7-9 in her own file (her `[Rule]` is `vide +# C6a`) -- defers to the Common of a Virgin's own Nocturn 3, not +# transcribed here. (The source's own Lectio94, a shorter 3-lesson +# variant of the same biography, and the regional Brasilia file's +# fuller 9-lesson patronal office, are both alternates not used here.) +id: st-rose-of-lima +readings: + - nocturn: 2 + isGospel: false + text: + la: >- + Primus Americæ Meridionalis flos sanctitatis, virgo Rosa, + christianis parentibus Limæ progenita, mox ab incunabulis claruit + futuræ sanctimoniæ indiciis. Nam vultus infantis mirabiliter in + rosæ effugiem transfiguratus, huic nomini occasionem dedit: cui + postea Virgo Deipara cognomen adjecit, jubens vocari deinceps + Rosam a sancta Maria. Quinquennis votum perpetuæ virginitatis + emisit. Adultior, ne a parentibus ad nuptias cogeretur, clam + sibimet venustissimam capitis cæsariem præscidit. Jejuniis supra + humánum modum addicta, integras Quadragesimas transegit, pane + abstinens, ac dietim solis quinque granulis mali citrini + victitans. + + + Habitu tertii ordinis sancti Dominici assumpto, pristinas vitæ + austeritates duplicavit: oblongo asperrimoque cilicio sparsim + mimisculas acus innexuit: sub velo coronam densis aculeis + introrsus obarmatam interdiu noctuque gestavit. Sanctæ Catharinæ + Senensis ardua premens vestigia, catena ferrea, triplici nexu + circumducta, lumbos cinxit. Lectulum sibi e truncis nodosis + composuit, horumque vacuas commissuras fragminibus testarum + implevit. Cellulam sibi angustissimam struxit in extremo horti + angulo, ubi cælestium contemplationi dedita, crebris disciplinis, + inedia, vigiliis corpusculum extenuans, at spiritu vegetata, + larvas dæmonum, frequenti certamine victrix, impavide protrivit + ac superavit. + + + Aegritudinum tormentis, domesticorum insultibus, linguarum + morsibus dire agitata, nondum satis pro merito se affligi + quærebatur. Per quindecim annos ad plusculas horas desolatione + spiritus et ariditate miserrime contabescens, forti animo tulit + agones omni morte amariores. Exinde cœpit supernis abundare + deliciis, illustrari visionibus, colliquescere seraphicis + ardoribus. Angelo tutelori, sanctæ Catharinæ Senensi, Virgini + Deiparæ inter assiduas apparitiones mire familiaris, a Christo + has voces audire meruit: Rosa cordis mei, tu mihi sponsa esto. + Denique Sponsi hujus paradiso feliciter invectam, plurimisque + ante et post obitum miraculis coruscam, Clemens decimus Pontifex + Maximus sanctarum Virginum catalogo ritu solemni adscripsit. + en: >- + The first flower of holiness which came to full blossom in South + America, was the maiden Rose. She was born at Lima, of a + Christian father and mother, (upon the 20th of April, in the + year 1586,) and was remarkable from her childhood for marks of + saintliness. The occasion of her name was a strange likeness to + a rose, which her face assumed when she was a babe. To this name + she afterwards added that of the Virgin Mother of God, desiring + to be called St. Mary's Rose. At the age of fifteen years she + uttered a vow of perpetual virginity. As she grew older, lest + her parents should force her to marry, she polled her head of + all her hair, which was very beautiful. She fasted to a degree + almost superhuman, passing whole Lents without taking bread, and + eating day by day only five pips of a lime. + + + She took the habit of the Third Order of St. Dominic, and then + doubled her former severities. She wore a long and very rough + hair-cloth, into which she inserted small pins. She wore day and + night under her veil a crown, the inner side of which was armed + with pricks. In imitation of the hard steps of St Katharine of + Sienna, she girded her loins with a threefold iron chain. She + made to herself a bed of knotty sticks, and filled the gaps with + broken bits of potsherd. She built herself a very small hut in + the farthest corner of the garden, where she gave herself up to + thoughts of heavenly things, and to punishing her body with + often scourging, starvation, and sleeplessness. But she waxed + strong in spirit, and though she often had to fight with evil + ghosts, she conquered them, fearlessly prostrated them, and + triumphed over them. + + + She suffered greatly from painful illnesses, from the + maltreatment of the servants, and from slanderous accusations, + but still complained that she did not suffer as much as she + deserved. For fifteen years she pined in misery from desolation + and dryness of spirit, bravely enduring torments worse than any + form of death. After this period she began to overflow with + consolation, to be enlightened by visions, and to melt with love + like a Seraph's. She attained, by the frequency of visions, to a + strange personal familiarity with her Guardian Angel, with St. + Katharine of Sienna, and with the Virgin Mother of God, and she + earned from Christ the words, Rose of My Heart, be thou My + bride. She was famous for many miracles, both before and after + she departed hence, and was happily transplanted into the + Bridegroom's garden, (upon the 24th of August 1617, being aged + 31 years.) Pope Clement X. with solemn pomp inscribed her name + in the list of holy maidens. + status: { la: verified, en: verified } diff --git a/tests/calendar/august-sanctoral.test.ts b/tests/calendar/august-sanctoral.test.ts index d019b43..24452e7 100644 --- a/tests/calendar/august-sanctoral.test.ts +++ b/tests/calendar/august-sanctoral.test.ts @@ -120,4 +120,22 @@ describe('August sanctoral pull (first pass)', () => { ]); expect(getDayCollect(day).status.en).toBe('verified'); }); + + it('St. Rose of Lima (rank deliberately deflated to semiduplex, see CLAUDE.md) wins outright over the ancient Ss. Felix and Adauctus, who keep their own commemoration rather than being suppressed', () => { + // On a Saturday this date is instead outranked by the generic + // "Sanctae Mariae Sabbato" votive (see ss-felix-and-adauctus.yml) and + // a Sunday produces a temporal winner instead -- 2027-08-30, a Monday, + // is a clean year for this collision. + const day = resolveDay('2027-08-30'); + expect(day.winner).toEqual({ + kind: 'sanctoral', + id: 'st-rose-of-lima', + name: 'St. Rose of Lima, Virgin', + rank: 'semiduplex', + }); + expect(day.commemorations).toEqual([ + { kind: 'sanctoral', id: 'ss-felix-and-adauctus', name: 'Ss. Felix and Adauctus, Martyrs', rank: 'simplex' }, + ]); + expect(getDayCollect(day).status.en).toBe('verified'); + }); });