From 6334b3eaaa970445319eda4983ac0fb049a7766a Mon Sep 17 00:00:00 2001 From: Will Estes Date: Sun, 30 Aug 2026 08:59:22 -0400 Subject: [PATCH] Give Ss. Felix and Adauctus a real commemoration antiphon Their commemoration was falling back to a bare collect (only ss-felix-and-adauctus-collect.yml existed, no combined Ant+V/R bundle), so it rendered with no antiphon at Lauds when they're commemorated on a Sunday (today, 2026-08-30). Live-verified against that exact date. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01ME8QNPdEmHSbSx1r6VmDRG --- .../ss-felix-and-adauctus-commemoration.yml | 30 +++++++++++++++++++ tests/hours/lauds.test.ts | 8 +++++ 2 files changed, 38 insertions(+) create mode 100644 src/data/propers/common/ss-felix-and-adauctus-commemoration.yml diff --git a/src/data/propers/common/ss-felix-and-adauctus-commemoration.yml b/src/data/propers/common/ss-felix-and-adauctus-commemoration.yml new file mode 100644 index 0000000..b8a7182 --- /dev/null +++ b/src/data/propers/common/ss-felix-and-adauctus-commemoration.yml @@ -0,0 +1,30 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-08-30 (a real Sunday, the exact case where this +# renders as a commemoration -- Ss. Felix and Adauctus, Simplex, cede to +# the Sunday, per calendar/commemorations.ts's ordinary-sunday rule). +# Antiphon + versicle/response + full collect, same combined-bundle shape +# as st-clare-commemoration.yml -- see hours/resolve-common.ts's +# sanctoralCommemorationPart for how this renders, falling back to the +# bare collect (ss-felix-and-adauctus-collect.yml) when this file didn't +# exist. +id: ss-felix-and-adauctus-commemoration +text: + la: | + Ant. Vestri capílli cápitis * omnes numeráti sunt: nolíte timére: multis passéribus melióres estis vos. + V. Exsultábunt Sancti in glória. + R. Lætabúntur in cubílibus suis. + Orémus. + Majestátem tuam, Dómine, súpplices exorámus: ut, sicut nos júgiter Sanctórum tuórum commemoratióne lætíficas; ita semper supplicatióne deféndas. + 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. + R. Amen. + en: | + Ant. Even the very hairs of your head * are all numbered: fear not therefore; ye are of more value than many sparrows. + V. The saints shall rejoice in glory: + R. They shall be joyful in their beds. + Let us pray. + We humbly beseech thy Majesty, O Lord, that as thou dost make us exceeding glad at the remembrance of thine holy servants, so thou wouldest ever shelter us under their prayers. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: verified + en: verified diff --git a/tests/hours/lauds.test.ts b/tests/hours/lauds.test.ts index f43d2ee..6f6d9f3 100644 --- a/tests/hours/lauds.test.ts +++ b/tests/hours/lauds.test.ts @@ -599,6 +599,14 @@ describe('resolveOrdo("lauds", ...)', () => { ); }); + it('gives Ss. Felix and Adauctus their own commemoration antiphon+versicle on a Sunday, not just a bare collect (fixed 2026-08-30, ss-felix-and-adauctus-commemoration.yml live-verified against that date)', () => { + const ordo = resolveOrdo('lauds', '2026-08-30'); + const felixCommemoration = ordo.parts.find((p) => p.kind === 'preces' && p.label?.includes('Felix')); + expect(felixCommemoration?.kind === 'preces' ? felixCommemoration.text.text.en : undefined).toContain( + 'hairs of your head', + ); + }); + it('includes all five suffrages, in order, on an ordinary ferial day -- Cross from Tridentine 1906/1910, the other four from Monastic 1617', () => { const ordo = resolveOrdo('lauds', FERIAL_TUESDAY); const labels = ordo.parts.filter((p) => p.kind === 'preces' && p.label).map((p) => (p.kind === 'preces' ? p.label : undefined));