From 472878da470d8ca06d8a0a3a900ffeef6c3b76e9 Mon Sep 17 00:00:00 2001 From: Will Estes Date: Tue, 25 Aug 2026 07:55:41 -0400 Subject: [PATCH] Switch Prime's Sunday/feast Preces to the secular Tridentine form Monastic Prime's own Dominicales Preces drop the "Et ego ad te, Domine, clamavi..." versicle block and shorten the closing "Miserere nostri, Domine... Fiat misericordia tua..." set. Prefer the secular Tridentine form instead (live-verified against Divinum Officium's "Tridentine - 1906" version), keeping "beato Patri nostro Benedicto" in the Confiteor by explicit choice even though the real secular Confiteor omits it. The Sunday/ferial by-day-kind split stays as-is; the ferial form (prime-preces-feriales.yml) is unchanged and continues to show on every ferial day by deliberate choice, more generously than the historical rubric. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01HWN869GrMFHqrer9fdCBbF --- src/data/hours/prime.yml | 12 ++++ .../common/prime-preces-dominicales.yml | 55 +++++++++++++++++-- .../propers/common/prime-preces-feriales.yml | 15 +++-- tests/hours/prime.test.ts | 8 ++- 4 files changed, 77 insertions(+), 13 deletions(-) diff --git a/src/data/hours/prime.yml b/src/data/hours/prime.yml index 8ecc362..e9fc2bf 100644 --- a/src/data/hours/prime.yml +++ b/src/data/hours/prime.yml @@ -30,6 +30,18 @@ # ferial Preces are said on *every* ferial day, not just Advent/Lent/ # vigils/Ember days the way later rubrics restricted them. # +# Preces deliberately use the *secular* Tridentine form +# (propers/common/prime-preces-dominicales.yml), not Monastic Prime's own +# shorter Dominicales form — chosen because the secular form keeps content +# (the "Et ego ad te, Domine, clamavi..." versicle block; the fuller +# "Miserere nostri, Domine... Fiat misericordia tua..." close) that +# Monastic Prime drops. Under the live-verified secular Tridentine rubric +# this same unified form is actually said on *every* day Preces are said +# (Sunday and ferial alike, since Pius X's reform) — prime-preces- +# feriales.yml's separate (older, pre-reform) ferial-only text is kept +# wired up here anyway, by explicit choice, pending a future fix to gate +# it to the narrower set of days it should actually apply to. +# # The dead-commemoration psalm (129, De profundis) is dropped by explicit # choice — a deliberate time-saving cut, not an oversight. The intro/close # responsory and collect around it are kept. diff --git a/src/data/propers/common/prime-preces-dominicales.yml b/src/data/propers/common/prime-preces-dominicales.yml index c05e87a..b12a7ed 100644 --- a/src/data/propers/common/prime-preces-dominicales.yml +++ b/src/data/propers/common/prime-preces-dominicales.yml @@ -1,9 +1,18 @@ -# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25 -# run — used on Sundays and feast days (see calendar/isSundayOrFeast); plain -# ferial days use prime-preces-feriales.yml instead. Real Prime also drops -# Preces entirely above a certain feast rank — that suppression isn't wired -# up yet (needs milestone 4's feast-rank data), so today Preces are always -# shown, just choosing between these two forms. +# Secular Tridentine form (verified against Divinum Officium, version +# "Tridentine - 1906", 2026-08-25 run) — used on Sundays and feast days +# (see calendar/isSundayOrFeast); plain ferial days use +# prime-preces-feriales.yml's older form instead (see that file's header +# and hours/prime.yml's for the current, imperfect day-split rule). +# +# Chosen over Monastic Prime's own (shorter) Dominicales form by explicit +# preference: this keeps the "Et ego ad te, Domine, clamavi..." versicle +# block and the fuller "Miserere nostri, Domine... Fiat misericordia +# tua..." close that Monastic Prime drops. +# +# The Confiteor keeps "beato Patri nostro Benedicto" in the saint list — +# real secular/Roman Confiteors omit this (it's a Monastic-only addition +# naming St. Benedict), but vu keeps it by explicit choice regardless of +# which Preces form is otherwise in use. id: prime-preces-dominicales text: la: | @@ -17,6 +26,19 @@ text: V. Carnis resurrectiónem. R. Vitam ætérnam. Amen. + V. Et ego ad te, Dómine, clamávi. + R. Et mane orátio mea prævéniet te. + V. Repleátur os meum laude. + R. Ut cantem glóriam tuam, tota die magnitúdinem tuam. + V. Dómine, avérte fáciem tuam a peccátis meis. + R. Et omnes iniquitátes meas dele. + V. Cor mundum crea in me, Deus. + R. Et spíritum rectum ínnova in viscéribus meis. + V. Ne projícias me a fácie tua. + R. Et spíritum sanctum tuum ne áuferas a me. + V. Redde mihi lætítiam salutáris tui. + R. Et spíritu principáli confírma me. + V. Adjutórium nostrum ✠ in nómine Dómini. R. Qui fecit cælum et terram. @@ -28,6 +50,10 @@ text: V. Dignáre, Dómine, die isto. R. Sine peccáto nos custodíre. + V. Miserére nostri, Dómine. + R. Miserére nostri. + V. Fiat misericórdia tua, Dómine, super nos. + R. Quemádmodum sperávimus in te. V. Dómine, exáudi oratiónem meam. R. Et clamor meus ad te véniat. en: | @@ -41,6 +67,19 @@ text: V. The resurrection of the body. R. And life everlasting. Amen. + V. But I, O Lord, have cried unto thee: + R. And in the morning my prayer shall rise to thee. + V. Let my mouth be filled with praise, + R. That I may sing thy glory and thy greatness all the day long. + V. O Lord, turn away thy face from my sins, + R. And blot out all my iniquities. + V. Create a clean heart in me, O God, + R. And renew a right spirit within me. + V. Cast me not away from thy presence, + R. And take not thy Holy Spirit from me. + V. Restore unto me the joy of thy salvation, + R. And strengthen me with a perfect spirit. + V. Our help is ✠ in the name of the Lord, R. Who made heaven and earth. @@ -52,6 +91,10 @@ text: V. Vouchsafe, O Lord, R. To keep us this day without sin. + V. O Lord, have mercy upon us. + R. Have mercy upon us. + V. O Lord, let thy mercy lighten upon us, + R. As our trust is in thee. V. O Lord, hear my prayer. R. And let my cry come unto thee. status: diff --git a/src/data/propers/common/prime-preces-feriales.yml b/src/data/propers/common/prime-preces-feriales.yml index 38a6919..98b8c32 100644 --- a/src/data/propers/common/prime-preces-feriales.yml +++ b/src/data/propers/common/prime-preces-feriales.yml @@ -1,10 +1,13 @@ # Verified against Divinum Officium ("Psalterium/Special/Preces.txt", -# [Preces feriales Prima] section) — the same content is used regardless of -# rubric (Monastic or Roman), unlike prime-preces.yml's Dominicales form -# which the Monastic rubric shortens (skips straight to the Confiteor -# cluster). Used on plain ferial days (see calendar/isSundayOrFeast) — by -# explicit choice, every ferial day, not just Advent/Lent/vigils/Ember days -# the way later rubrics restricted it. +# [Preces feriales Prima] section) — the older, pre-1911-reform ferial-only +# Preces form. Used on plain ferial days (see calendar/isSundayOrFeast) — +# by explicit choice, currently *every* ferial day, not just the +# Advent/Lent/vigils/Ember days later rubrics actually restricted it to; +# under the live-verified secular Tridentine rubric this text doesn't +# appear on an ordinary ferial day at all (that gets +# prime-preces-dominicales.yml's unified form instead, same as Sunday) — +# see hours/prime.yml's header. Narrowing when this file's text actually +# applies is a known future fix, not done yet. id: prime-preces-feriales text: la: | diff --git a/tests/hours/prime.test.ts b/tests/hours/prime.test.ts index f7e83b9..75f9b28 100644 --- a/tests/hours/prime.test.ts +++ b/tests/hours/prime.test.ts @@ -113,7 +113,7 @@ describe('resolveOrdo("prime", ...)', () => { expect(ferialPreces).toBeDefined(); }); - it('uses the Sunday capitulum and Preces on a Sunday', () => { + it('uses the Sunday capitulum and the secular Preces (with Benedict kept in the Confiteor) on a Sunday', () => { const ordo = resolveOrdo('prime', SUNDAY); const chapter = ordo.parts.find((p) => p.kind === 'chapter'); expect(chapter && chapter.kind === 'chapter' ? chapter.text.text.en : undefined).toBe( @@ -122,6 +122,12 @@ describe('resolveOrdo("prime", ...)', () => { const preces = ordo.parts.filter((p) => p.kind === 'preces'); const dominicalPreces = preces.find((p) => p.kind === 'preces' && p.text.text.la?.includes('Confíteor Deo')); expect(dominicalPreces).toBeDefined(); + expect( + dominicalPreces && dominicalPreces.kind === 'preces' ? dominicalPreces.text.text.la : undefined, + ).toContain('beáto Patri nostro Benedícto'); + expect( + dominicalPreces && dominicalPreces.kind === 'preces' ? dominicalPreces.text.text.la : undefined, + ).toContain('Et ego ad te, Dómine, clamávi'); }); it('gives the capitulum its scripture citation', () => {