Compare commits

...

2 Commits

Author SHA1 Message Date
will 33c3890ccf Note Prime's generous ferial-Preces gating as a future-fix TODO
Deploy / deploy (push) Successful in 1m16s
Record that showing the ferial Preces on every ferial day (rather than
only Advent/Lent/vigils/Ember, per the historical rubric) is a
deliberate, currently-unaddressed backlog item, not an oversight.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HWN869GrMFHqrer9fdCBbF
2026-08-25 07:55:45 -04:00
will 472878da47 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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HWN869GrMFHqrer9fdCBbF
2026-08-25 07:55:41 -04:00
5 changed files with 85 additions and 13 deletions
+8
View File
@@ -20,6 +20,14 @@ across every hour and content type in this app.
1. **Mechanism gaps** — a real design/code piece not built yet, blocking any content pass on 1. **Mechanism gaps** — a real design/code piece not built yet, blocking any content pass on
it from starting: it from starting:
- Easter's own octave — tabled, "a whole different discussion." - Easter's own octave — tabled, "a whole different discussion."
- Prime's ferial Preces (`data/propers/common/prime-preces-feriales.yml`, the older
pre-1911-reform "Eripe me, Domine" text) currently show on *every* ferial day
(`hours/prime.yml`'s `by-day-kind` split) — by explicit choice, more generous than the
historical rubric, which restricted this text to Advent/Lent/vigils/Ember days only.
Narrowing the gating to match, if ever wanted, is open, not started. Prime's Sunday/feast
Preces (`prime-preces-dominicales.yml`) were separately switched from Monastic's own form
to the secular Tridentine form (2026-08-25, keeping Benedict in the Confiteor by explicit
choice) — see that file's header.
- What "a Gospel reading is its own kind" should mean structurally/in the UI, beyond the - What "a Gospel reading is its own kind" should mean structurally/in the UI, beyond the
`isGospel` flag on a plain Matins `lesson` — open; deferred until there's a UI to `isGospel` flag on a plain Matins `lesson` — open; deferred until there's a UI to
evaluate it against. evaluate it against.
+12
View File
@@ -30,6 +30,18 @@
# ferial Preces are said on *every* ferial day, not just Advent/Lent/ # ferial Preces are said on *every* ferial day, not just Advent/Lent/
# vigils/Ember days the way later rubrics restricted them. # 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 # The dead-commemoration psalm (129, De profundis) is dropped by explicit
# choice — a deliberate time-saving cut, not an oversight. The intro/close # choice — a deliberate time-saving cut, not an oversight. The intro/close
# responsory and collect around it are kept. # responsory and collect around it are kept.
@@ -1,9 +1,18 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25 # Secular Tridentine form (verified against Divinum Officium, version
# run — used on Sundays and feast days (see calendar/isSundayOrFeast); plain # "Tridentine - 1906", 2026-08-25 run) — used on Sundays and feast days
# ferial days use prime-preces-feriales.yml instead. Real Prime also drops # (see calendar/isSundayOrFeast); plain ferial days use
# Preces entirely above a certain feast rank — that suppression isn't wired # prime-preces-feriales.yml's older form instead (see that file's header
# up yet (needs milestone 4's feast-rank data), so today Preces are always # and hours/prime.yml's for the current, imperfect day-split rule).
# shown, just choosing between these two forms. #
# 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 id: prime-preces-dominicales
text: text:
la: | la: |
@@ -17,6 +26,19 @@ text:
V. Carnis resurrectiónem. V. Carnis resurrectiónem.
R. Vitam ætérnam. Amen. 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. V. Adjutórium nostrum ✠ in nómine Dómini.
R. Qui fecit cælum et terram. R. Qui fecit cælum et terram.
@@ -28,6 +50,10 @@ text:
V. Dignáre, Dómine, die isto. V. Dignáre, Dómine, die isto.
R. Sine peccáto nos custodíre. 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. V. Dómine, exáudi oratiónem meam.
R. Et clamor meus ad te véniat. R. Et clamor meus ad te véniat.
en: | en: |
@@ -41,6 +67,19 @@ text:
V. The resurrection of the body. V. The resurrection of the body.
R. And life everlasting. Amen. 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, V. Our help is ✠ in the name of the Lord,
R. Who made heaven and earth. R. Who made heaven and earth.
@@ -52,6 +91,10 @@ text:
V. Vouchsafe, O Lord, V. Vouchsafe, O Lord,
R. To keep us this day without sin. 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. V. O Lord, hear my prayer.
R. And let my cry come unto thee. R. And let my cry come unto thee.
status: status:
@@ -1,10 +1,13 @@
# Verified against Divinum Officium ("Psalterium/Special/Preces.txt", # Verified against Divinum Officium ("Psalterium/Special/Preces.txt",
# [Preces feriales Prima] section) — the same content is used regardless of # [Preces feriales Prima] section) — the older, pre-1911-reform ferial-only
# rubric (Monastic or Roman), unlike prime-preces.yml's Dominicales form # Preces form. Used on plain ferial days (see calendar/isSundayOrFeast) —
# which the Monastic rubric shortens (skips straight to the Confiteor # by explicit choice, currently *every* ferial day, not just the
# cluster). Used on plain ferial days (see calendar/isSundayOrFeast) — by # Advent/Lent/vigils/Ember days later rubrics actually restricted it to;
# explicit choice, every ferial day, not just Advent/Lent/vigils/Ember days # under the live-verified secular Tridentine rubric this text doesn't
# the way later rubrics restricted it. # 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 id: prime-preces-feriales
text: text:
la: | la: |
+7 -1
View File
@@ -113,7 +113,7 @@ describe('resolveOrdo("prime", ...)', () => {
expect(ferialPreces).toBeDefined(); 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 ordo = resolveOrdo('prime', SUNDAY);
const chapter = ordo.parts.find((p) => p.kind === 'chapter'); const chapter = ordo.parts.find((p) => p.kind === 'chapter');
expect(chapter && chapter.kind === 'chapter' ? chapter.text.text.en : undefined).toBe( 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 preces = ordo.parts.filter((p) => p.kind === 'preces');
const dominicalPreces = preces.find((p) => p.kind === 'preces' && p.text.text.la?.includes('Confíteor Deo')); const dominicalPreces = preces.find((p) => p.kind === 'preces' && p.text.text.la?.includes('Confíteor Deo'));
expect(dominicalPreces).toBeDefined(); 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', () => { it('gives the capitulum its scripture citation', () => {