Add Matins psalmody overrides for a Duplex+ weekday feast

matins.ts's three-nocturn gate correctly governed nocturn count
(Sunday, or Duplex+) but wrongly reused the literal Sunday psalmody as
content for every three-nocturn day, including a weekday feast. Live-
verified (Monastic Tridentinum 1617) that a Duplex+ weekday feast has
its own genuinely different psalmody -- confirmed per-Common-category,
not per-saint, by cross-checking St. Lawrence against St. Ignatius of
Antioch (a different Martyr sub-category, nearly identical psalm
numbers, different antiphons).

New mechanism (matins-psalmody-overrides.ts, mirroring the Lauds one
but keyed per-category) with St. Lawrence authored as the live-verified
proof; falls back to the plain ferial weekday table, redistributed into
3 nocturns, for every other Duplex+ id until its own category's content
is authored. Also generalizes the canticle shape to support a citation
spanning multiple scripture chapters under one heading (Lawrence's own
Nocturn 3), and adds the new Sirach/Jeremiah chapters his canticles cite.
This commit is contained in:
2026-08-18 06:11:52 -04:00
parent 1fc4bd7160
commit 3e58f2258d
9 changed files with 399 additions and 7 deletions
@@ -0,0 +1,118 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live
# prayMatutinum query (2026-08-17, St. Lawrence's own octave closing day
# -- "In Octava S. Laurentii Martyris ~ Duplex"). This is the live-
# verified proof for the Matins-psalmody-override mechanism
# (hours/matins-psalmody-overrides.ts) -- the general mechanism gap this
# closes: a Duplex+ weekday feast previously fell through to reusing the
# literal *Sunday* psalmody (data/hours/matins-sunday-antiphons.yml, Ps
# 20-31) unconditionally, which is wrong -- a Duplex+ weekday feast has
# its own real, different psalmody (confirmed against the live engine
# directly), not the Sunday's.
#
# Cross-checked against a second Duplex saint (St. Ignatius of Antioch,
# Common of a Martyr-Bishop, no proper content of his own, live-queried
# 2029-02-01): Nocturn 1 is *identical* (Ps 1,2,4,5,8,10); Nocturn 2 is
# nearly identical (Ps 14,20,23,63,91 match -- only one slot differs,
# Lawrence has 16 where Ignatius has 64). So the psalm *numbers* are a
# shared per-Common-category pool, not unique to Lawrence -- only the
# antiphon *text* is proper to him (each one narrates an episode of his
# own martyrdom, e.g. "Quo progréderis sine fílio, pater?"). This file is
# keyed by his own saint id (not yet a Common-category id) since only his
# own proper antiphons have been authored so far -- see this module's own
# doc comment for what extending this to a real Common-category key would
# need.
#
# Nocturn 3's first canticle spans two Sirach chapters under one heading
# in the source ("Eccli 14:22;15:3-4;15:6") -- kept as one canticle with
# two refs (matins.ts's own `canticles: { refs: [...] }[]` shape), not
# split into two, matching how the live engine presents it. New scripture
# chapters authored for this: data/scripture/{sir-14,sir-15,jer-17,sir-31}.yml
# (all sparse, only the cited verses -- same convention as sir-36.yml's
# own Sunday-canticle transcription).
id: st-lawrence
nocturn1:
groups:
- psalms: [1]
antiphon:
la: "Quo progréderis * sine fílio, pater? quo, sacérdos sancte, sine minístro próperas?"
en: "Father, whither goest thou * without thy son? Holy Priest, dost thou fare hence without a Deacon?"
- psalms: [2]
antiphon:
la: "Noli me derelínquere, * pater sancte, quia thesáuros tuos jam expéndi, quos tradidísti mihi."
en: "Leave me not, holy father, * for I have spent already thy treasures, which thou gavest unto me."
- psalms: [4]
antiphon:
la: "Non ego te désero, * fili, neque derelínquo; sed majóra tibi debéntur pro Christi fide certámina."
en: "I leave thee not, my son, neither forsake thee; * there awaiteth thee for Christ's truth a sterner wrestling than mine."
- psalms: [5]
antiphon:
la: "Beátus Lauréntius * orábat, dicens: Dómine Jesu Christe, Deus de Deo, miserére mihi servo tuo."
en: "The blessed Lawrence prayed * and said: O Lord Jesus Christ, God of God, take pity upon me thy servant."
- psalms: [8]
antiphon:
la: "Dixit Románus * ad beátum Lauréntium: Vídeo ante te júvenem pulchérrimum, festína me baptizáre."
en: "Romanus said * to Blessed Lawrence: I see in front of thee a very well-favoured young man; make haste to baptize me."
- psalms: [10]
antiphon:
la: "Beátus Lauréntius * dixit: Mea nox obscúrum non habet, sed ómnia in luce claréscunt."
en: "The blessed Lawrence said: The darkness is no darkness to me, * but the night is all as clear as morning, that shineth more and more unto the perfect day."
versicle:
v:
la: "Glória et honóre coronásti eum, Dómine."
en: "Thou hast crowned him with glory and honour, O Lord."
r:
la: "Et constituísti eum super ópera mánuum tuárum."
en: "And madest him to have dominion over the works of thy hands."
nocturn2:
groups:
- psalms: [14]
antiphon:
la: "Strinxérunt * córporis membra pósita super cratículam: subiciéntibus prunas insúltat Levíta Christi."
en: "They laid him upon the grating, and stretched out his limbs; * Christ's Levite held in derision them that brought the live coals."
- psalms: [16]
antiphon:
la: "Igne me examinásti, * et non est invénta in me iníquitas."
en: "Thou hast tried me with fire, * and found no wickedness in me."
- psalms: [20]
antiphon:
la: "Interrogátus * te Dóminum conféssus sum, assátus grátias ago."
en: "When I was asked, I acknowledged thee to be the Lord; now that I am roasted, I give thee thanks."
- psalms: [23]
antiphon:
la: "Beátus Lauréntius * clamávit et dixit: Deum meum colo, et illi solo sérvio."
en: "Blessed Lawrence * cried out and said: I care for my God, and serve him alone."
- psalms: [63]
antiphon:
la: "Dispérsit * dedit paupéribus: justítia ejus manet in séculum sǽculi."
en: "He hath dispersed and gave to the poor; * his justice shall remain in ages of ages."
- psalms: [91]
antiphon:
la: "Protéctor tuus * ego sum noli timére: si transíeris per ignem, flamma non nocébit tibi, et odor ignis non erit in te."
en: "I am thy protector, do not fear; * if you pass through fire, the flame will not harm thee, and the scent of fire will not be upon thee."
versicle:
v:
la: "Posuísti, Dómine, super caput ejus."
en: "O Lord, Thou hast set a crown of precious stones."
r:
la: "Corónam de lápide pretióso."
en: "Upon his head."
nocturn3:
antiphon:
la: "Nisi granum fruménti * cadens, in terram mórtuum fúerit, ipsum solum manet."
en: "Unless the grain of wheat * falls to the ground and dies, it only remains as such."
canticles:
- refs:
- { book: sir, chapter: 14, verses: "22" }
- { book: sir, chapter: 15, verses: "3-4" }
- { book: sir, chapter: 15, verses: "6" }
- refs:
- { book: jer, chapter: 17, verses: "7-8" }
- refs:
- { book: sir, chapter: 31, verses: "8-11" }
versicle:
v:
la: "Magna est glória ejus in salutári tuo."
en: "His glory is great in thy salvation."
r:
la: "Glóriam et magnum decórem impónes super eum."
en: "Honour and great majesty shalt Thou lay upon him."
+3 -3
View File
@@ -62,9 +62,9 @@ nocturn2:
nocturn3:
canticles:
- { book: isa, chapter: 33, verses: "2-10" }
- { book: isa, chapter: 33, verses: "13-18" }
- { book: sir, chapter: 36, verses: "14-19" }
- refs: [{ book: isa, chapter: 33, verses: "2-10" }]
- refs: [{ book: isa, chapter: 33, verses: "13-18" }]
- refs: [{ book: sir, chapter: 36, verses: "14-19" }]
antiphon:
la: "Allelúja, allelúja, allelúja."
en: "Alleluia, alleluia, alleluia."