Give Corpus Christi and Sacred Heart their own hymnody, all octave

Same gap and same generic mechanism fix as Ascension/Pentecost --
just needed the ids added to ALWAYS_OVERRIDE_TEMPORAL_IDS plus real
content. Both feasts have 3 genuinely different hymns, one per hour:
Corpus Christi's own are widely known outside this context too
("Sacris solémniis" at Matins, "Verbum supérnum pródiens" at Lauds
whose last 2 stanzas are "O Salutaris Hostia", "Pange, lingua,
gloriósi Córporis mystérium" at Vespers whose last 2 stanzas are
"Tantum Ergo").

Sacred Heart needed one source-track correction: Monastic Tridentinum
1617 doesn't observe this feast on this date at all (shows St.
Barnabas instead) -- used Divino Afflatu 1954 instead, this project's
own stated rubric track. Also live-verified a genuine structural
difference: Sacred Heart's own Lauds/Vespers have no responsory at
all in the source (straight chapter to hymn) -- not an authoring gap.
Fixed lauds.ts's and vespers.ts's own resolveOffice to omit the
responsory part entirely when its status is missing in both
languages, instead of always rendering an empty section.

Authored matins-hymn-{corpus-christi,sacred-heart}.yml,
lauds-{capitulum,responsory,hymn,versicle}-corpus-christi.yml,
vespers-{responsory,hymn,versicle}-corpus-christi.yml,
lauds-{capitulum,hymn,versicle}-sacred-heart.yml, and
vespers-{hymn,versicle}-sacred-heart.yml -- all live-verified,
2026-06-04 and 2026-06-12.

Fixed 2 pre-existing tests whose own dates now land inside these
newly-modeled octaves and were asserting the old fall-through
behavior as if correct: lauds.test.ts's FERIAL_MONDAY (moved off
2026-06-08) and vespers.test.ts's St. Margaret of Scotland test
(2026-06-09) -- its own title already anticipated this fix, just had
the wrong expected values until now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
This commit is contained in:
2026-09-04 12:54:55 -04:00
parent 98aa411a1b
commit 30b3971190
19 changed files with 1006 additions and 19 deletions
@@ -0,0 +1,16 @@
# Corpus Christi's own Lauds chapter (1 Cor 11:23-24) — shared with
# Vespers via vespersCapitulumForOverride's own cross-hour fallback (see
# hours/vespers.ts), not duplicated into a separate vespers-capitulum-
# corpus-christi.yml. Live-verified against Divinum Officium (Monastic
# Tridentinum 1617), Lauds/Vespers live query, 2026-06-04 (Corpus Christi
# itself).
id: lauds-capitulum-corpus-christi
text:
la: "Fratres: Ego enim accépi a Dómino quod et trádidi vobis, quóniam Dóminus Jesus, in qua nocte tradebátur, accépit panem, et grátias agens fregit, et dixit: Accípite et manducáte: hoc est corpus meum, quod pro vobis tradétur: hoc fácite in meam commemoratiónem."
en: "Brothers: For I have received of the Lord that which also I delivered unto you, that the Lord Jesus, the same night in which he was betrayed, took bread. And giving thanks, broke, and said: Take ye, and eat: this is my body, which shall be delivered for you: this do for the commemoration of me."
citation:
la: "1 Cor 11:23-24"
en: "1 Cor 11:23-24"
status:
la: verified
en: verified
@@ -0,0 +1,17 @@
# The Sacred Heart's own Lauds chapter (Eph 3:8-9) — shared with Vespers
# via vespersCapitulumForOverride's own cross-hour fallback (see
# hours/vespers.ts), not duplicated into a separate vespers-capitulum-
# sacred-heart.yml. Live-verified against Divinum Officium (Divino
# Afflatu - 1954), Lauds/Vespers live query, 2026-06-12 (the Sacred
# Heart itself) — see matins-hymn-sacred-heart.yml's own header on why
# this track, not Monastic Tridentinum 1617.
id: lauds-capitulum-sacred-heart
text:
la: "Fratres: Mihi ómnium sanctórum mínimo data est grátia hæc, in géntibus evangelizáre investigábiles divítias Christi; et illumináre omnes, quæ sit dispensátio sacraménti abscónditi a sǽculis in Deo."
en: "Brethren: Unto me, who am less than the least of all saints, is this grace given, that I should preach among the Gentiles the unsearchable riches of Christ; and to make all men see what is the fellowship of the Mystery, which from the beginning of the world hath been hid in God."
citation:
la: "Eph 3:8-9"
en: "Eph 3:8-9"
status:
la: verified
en: verified
@@ -0,0 +1,120 @@
# Corpus Christi's own Lauds hymn ("Verbum supérnum pródiens") — whose
# final 2 stanzas ("O salutáris hóstia... Uni trinóque Dómino...") are
# the separately-famous "O Salutaris Hostia" often sung on its own.
# Distinct from Matins' own ("Sacris solémniis") and Vespers' own
# ("Pange, lingua, gloriósi Córporis mystérium" — the "Tantum Ergo"
# hymn). Live-verified against Divinum Officium (Monastic Tridentinum
# 1617), Lauds live query, 2026-06-04 (Corpus Christi itself). Self-
# contained — its own final stanza is the hymn's natural theological
# close, not a separate swappable doxology.
id: lauds-hymn-corpus-christi
text:
la: >-
Verbum supérnum pródiens,
Nec Patris linquens déxteram,
Ad opus suum éxiens,
Venit ad vitæ vésperam.
In mortem a discípulo
Suis tradéndus ǽmulis,
Prius in vitæ férculo
Se trádidit discípulis.
Quibus sub bina spécie
Carnem dedit et sánguinem;
Ut dúplicis substántiæ
Totum cibáret hóminem.
Se nascens dedit sócium,
Convéscens in edúlium,
Se móriens in prétium,
Se regnans dat in prǽmium.
O salutáris hóstia,
Quæ cæli pandis óstium,
Bella premunt hostília;
Da robur, fer auxílium.
Uni trinóque Dómino,
Sit sempitérna glória:
Qui vitam sine término
Nobis donet in pátria. Amen.
en: >-
The heav'nly Word proceeding forth,
Yet leaving not the Father's side,
And going to his work on earth
Had reached at length life's eventide.
By false disciple to be given
To foemen for his blood athirst,
Himself, the living bread from heaven,
He gave to his disciples first.
To them he gave, in twofold kind,
His very flesh, his very blood:
In love's own fullness thus designed
Of the whole man to be the food.
By birth, our fellow-man was he;
Our meat, while sitting at the board;
He died, our ransomer to be;
He ever reigns, our great reward.
O saving victim, opening wide
The gate of heaven to man below,
Our foes press on from every side,
Thine aid supply, thy strength bestow.
To thy great name be endless praise,
Immortal Godhead, One in Three;
O grant us endless length of days
In our true native land, with thee. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,123 @@
# The Sacred Heart's own Lauds hymn ("Cor, arca legem cóntinens") —
# distinct from Matins' own ("Auctor beáte sǽculi") and Vespers' own
# ("En, ut supérba críminum"). Live-verified against Divinum Officium
# (Divino Afflatu - 1954), Lauds live query, 2026-06-12 (the Sacred
# Heart itself) — see matins-hymn-sacred-heart.yml's own header on why
# this track. Self-contained — its own final stanza is the hymn's
# natural theological close, not a separate swappable doxology.
#
# This day's own Lauds genuinely has no responsory in the source at all
# (straight from chapter to hymn) — see lauds-capitulum-sacred-heart.yml
# and hours/lauds.ts's own resolveOffice, which omits the responsory
# part entirely rather than rendering an empty one.
id: lauds-hymn-sacred-heart
text:
la: >-
Cor, arca legem cóntinens
Non servitútis véteris,
Sed grátiæ, sed véniæ,
Sed et misericórdiæ.
Cor, sanctuárium novi
Intemerátum fœ́deris,
Templum vetústo sánctius,
Velúmque scisso utílius.
Te vulnerátum cáritas
Ictu paténti vóluit,
Amóris invisíbilis
Ut venerémur vúlnera.
Hoc sub amóris sýmbolo
Passus cruénta et mýstica,
Utrúmque sacrifícium
Christus sacérdos óbtulit.
Quis non amántem rédamet?
Quis non redémptus díligat,
Et Corde in isto séligat
Ætérna tabernácula?
Jesu, tibi sit glória,
Qui Corde fundis grátiam,
Cum Patre, et almo Spíritu,
In sempitérna sǽcula. Amen.
en: >-
Jesus, behind thy temple's veil,
Hid in an ark of gold,
On stones engraven, lay the law
thy finger wrote of old.
But in thy body's temple new,
thy life-blood's throbbing shrine,
Held, upon fleshly tables graved,
The law of love divine.
And when that heart in death was stilled,
Each temple's veil was riven:
And lo, within thy love's red shrine,
To us to look was given.
There make us gaze and see the love
Which drew thee, for our sake,
O great high-priest, thyself to God
A sacrifice to make.
Thou, Saviour, cause that every soul
Which thou hast loved so well,
May will within thine open heart
In life and death to dwell.
Grant it, O Father, only Son,
And Spirit, God of grace,
To whom all worship shall be done,
In every time and place. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,24 @@
# Corpus Christi's own Lauds responsory ("Panem cæli dedit eis") —
# distinct from Vespers' own ("Cibávit illos ex ádipe fruménti", see
# vespers-responsory-corpus-christi.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-06-04
# (Corpus Christi itself).
id: lauds-responsory-corpus-christi
text:
la: |
R.br. Panem cæli dedit eis, * Allelúja, allelúja.
R. Panem cæli dedit eis, * Allelúja, allelúja.
V. Panem Angelórum manducávit homo.
R. Allelúja, allelúja.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. Panem cæli dedit eis, * Allelúja, allelúja.
en: |
R.br. He gave them the bread of heaven. * Alleluia, Alleluia.
R. He gave them the bread of heaven. * Alleluia, Alleluia.
V. Man did eat Angels' bread.
R. Alleluia, Alleluia.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. He gave them the bread of heaven. * Alleluia, Alleluia.
status:
la: verified
en: verified
@@ -0,0 +1,12 @@
# Corpus Christi's own Lauds versicle — distinct from Vespers' own
# ("Panem de cælo præstitísti eis", see
# vespers-versicle-corpus-christi.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-06-04
# (Corpus Christi itself).
id: lauds-versicle-corpus-christi
text:
la: "V. Pósuit fines tuos pacem, allelúja.\nR. Et ádipe fruménti sátiat te, allelúja."
en: "V. He maketh peace in thy borders, alleluia.\nR. And filleth thee with the finest of wheat, alleluia."
status:
la: verified
en: verified
@@ -0,0 +1,11 @@
# The Sacred Heart's own versicle — identical at both Lauds and Vespers
# (see vespers-versicle-sacred-heart.yml). Live-verified against Divinum
# Officium (Divino Afflatu - 1954), Lauds/Vespers live query, 2026-06-12
# (the Sacred Heart itself).
id: lauds-versicle-sacred-heart
text:
la: "V. Hauriétis aquas in gáudio.\nR. De fóntibus Salvatóris."
en: "V. With joy shall ye draw water.\nR. Out of the fountains of the Saviour."
status:
la: verified
en: verified
@@ -0,0 +1,183 @@
# Corpus Christi's own Matins hymn ("Sacris solémniis"), St. Thomas
# Aquinas's own composition for this feast. Live-verified against
# Divinum Officium (Monastic Tridentinum 1617), Matins live query,
# 2026-06-04 (Corpus Christi itself). Self-contained — its own final
# stanza ("Te, trina Déitas...") is the hymn's natural theological
# close, not a separate swappable doxology.
#
# Closes the same real mechanism gap already fixed for Ascension/
# Pentecost (`corpus-christi` is a temporal-feast id, not a saint
# record, so `resolveOfficeWinner`'s octave-synthesis needed the same
# fix already in place — see hours/resolve-common.ts's
# `ALWAYS_OVERRIDE_TEMPORAL_IDS`).
id: matins-hymn-corpus-christi
text:
la: >-
Sacris solémniis juncta sint gáudia,
Et ex præcórdiis sonent præcónia;
Recédant vétera, nova sint ómnia,
Corda, voces, et ópera.
Noctis recólitur cœna novíssima,
Qua Christus créditur agnum et ázyma
Dedísse frátribus, juxta legítima
Priscis indúlta pátribus.
Post agnum týpicum, explétis épulis,
Corpus Domínicum datum discípulis,
Sic totum ómnibus, quod totum síngulis,
Ejus fatémur mánibus.
Dedit fragílibus córporis férculum,
Dedit et trístibus sánguinis póculum,
Dicens: Accípite quod trado vásculum;
Omnes ex eo bíbite.
Sic sacrifícium istud instítuit,
Cujus offícium commítti vóluit
Solis presbýteris, quibus sic cóngruit,
Ut sumant, et dent céteris.
Panis angélicus fit panis hóminum;
Dat panis cǽlicus figúris términum;
O res mirábilis: mandúcat Dóminum
Pauper, servus et húmilis.
Te, trina Déitas únaque, póscimus;
Sic nos tu vísita, sicut te cólimus:
Per tuas sémitas duc nos quo téndimus,
Ad lucem quam inhábitas. Amen.
en: >-
At this our solemn feast,
Let holy joys abound,
And from the inmost breast
Let songs of praise resound;
Let ancient rites depart,
And all be new around,
In ev'ry act and voice and heart.
Remember we that eve,
When, the last supper spread,
Christ, as we all believe,
The lamb, with leavenless bread,
Among his brethren shared,
And thus the law obeyed,
Of old unto their sires declared.
The typic lamb consumed,
The legal feast complete,
The Lord unto the twelve
His body gave to eat;
The whole to all, no less
The whole to each, did mete
With his own hands, as we confess.
He gave them, weak and frail,
His flesh, their food to be;
On them, downcast and sad,
His blood bestowèd he:
And thus to them he spake,
"Receive this cup from me,
And all of you of this partake."
So he this sacrifice
To institute did will,
And charged his priests alone
That office to fulfil:
In them he did confide:
To whom pertaineth still
To take, and to the rest divide.
Thus angels' bread is made
The bread of man today:
The living bread from heaven
With figures doth away:
O wondrous gift indeed!
The poor and lowly may
Upon their Lord and Master feed.
O Triune Deity,
To thee we meekly pray,
So mayst thou visit us,
As we our homage pay;
And in thy footsteps bright
Conduct us on our way
To where thou dwell'st in cloudless light. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,125 @@
# The Sacred Heart's own Matins hymn ("Auctor beáte sǽculi"). Live-
# verified against Divinum Officium (Divino Afflatu - 1954, 2026-06-12,
# the Sacred Heart itself) — not the Monastic Tridentinum 1617 track,
# which doesn't observe this feast on the same date at all (live-
# checked: shows St. Barnabas instead, unaffected). This project's own
# rubric/precedence track is Divino Afflatu anyway (see the repo's
# CLAUDE.md), so this is a real, consistent source choice, not a
# deviation. Self-contained — its own final stanza is the hymn's natural
# theological close, not a separate swappable doxology.
#
# Closes the same real mechanism gap already fixed for Ascension/
# Pentecost/Corpus Christi (`sacred-heart` is a temporal-feast id, not a
# saint record — see hours/resolve-common.ts's
# `ALWAYS_OVERRIDE_TEMPORAL_IDS`).
id: matins-hymn-sacred-heart
text:
la: >-
Auctor beáte sǽculi,
Christe, Redémptor ómnium,
Lumen Patris de lúmine,
Deúsque verus de Deo.
Amor coégit te tuus
Mortále corpus súmere,
Ut novus Adam rédderes,
Quod vetus ille abstúlerat.
Ille amor, almus ártifex
Terræ marísque, et síderum,
Erráta patrum míserans,
Et nostra rumpens víncula.
Non Corde discédat tuo
Vis illa amóris íncliti:
Hoc fonte gentes háuriant
Remissiónis grátiam.
Percússum ad hoc est láncea,
Passúmque ad hoc est vúlnera:
Ut nos laváret sórdibus,
Unda fluénte, et sánguine.
Jesu, tibi sit glória,
Qui Corde fundis grátiam,
Cum Patre, et almo Spíritu,
In sempitérna sǽcula. Amen.
en: >-
O Christ, the world's Creator bright,
Who didst mankind from sin redeem,
Light from the Father's glorious light,
True God of God, in bliss supreme.
Thy love compelled thee to assume
A mortal body, man to save;
Reversing the old Adam's doom;
Our ransom the new Adam gave.
That love which gloriously framed all
The earth, the stars, and wondrous sea
Took pity on our parents' fall,
Broke all our bonds and set us free.
O Saviour, let thy potent love
Flow ever from thy bounteous heart;
To nations that pure fount above
The grace of pardon will impart.
His heart for this was opened wide,
And wounded by the soldier's spear,
That freely from his sacred side
Might flow the streams our souls to clear.
Glory to Father and to Son,
And to the Holy Ghost the same,
To whom all power, when time is done,
And endless rule, in endless fame. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,169 @@
# Corpus Christi's own Vespers hymn ("Pange, lingua, gloriósi Córporis
# mystérium") — St. Thomas Aquinas's own Eucharistic hymn, whose final 2
# stanzas ("Tantum ergo Sacraméntum..." — sung genuflecting per the
# source's own rubric, not modeled here) are the separately-famous
# "Tantum Ergo" sung constantly at Benediction. Distinct from Matins'
# own ("Sacris solémniis") and Lauds' own ("Verbum supérnum pródiens").
# Live-verified against Divinum Officium (Monastic Tridentinum 1617),
# Vespers live query, 2026-06-04 (Corpus Christi itself). Self-contained
# — its own final stanza is the hymn's natural theological close, not a
# separate swappable doxology.
id: vespers-hymn-corpus-christi
text:
la: >-
Pange, lingua, gloriósi
Córporis mystérium,
Sanguinísque pretiósi,
Quem in mundi prétium
Fructus ventris generósi
Rex effúdit géntium.
Nobis datus, nobis natus
Ex intácta Vírgine,
Et in mundo conversátus,
Sparso verbi sémine,
Sui moras incolátus
Miro clausit órdine.
In suprémæ nocte cenæ
Recúmbens cum frátribus,
Observáta lege plene
Cibis in legálibus,
Cibum turbæ duodénæ
Se dat suis mánibus.
Verbum caro, panem verum
Verbo carnem éfficit;
Fitque sanguis Christi merum:
Et si sensus déficit,
Ad firmándum cor sincérum
Sola fides súfficit.
Tantum ergo Sacraméntum
Venerémur cérnui:
Et antíquum documéntum
Novo cedat rítui:
Præstet fides suppleméntum
Sénsuum deféctui.
Genitóri, Genitóque
Laus et jubilátio,
Salus, honor, virtus quoque
Sit et benedíctio:
Procedénti ab utróque
Compar sit laudátio. Amen.
en: >-
Sing, my tongue, the Saviour's glory,
Of his flesh the mystery sing;
Of the blood, all price exceeding,
Shed by our immortal King,
Destined, for the world's redemption,
From a noble womb to spring.
Of a pure and spotless Virgin
Born for us on earth below,
He, as man, with man conversing,
Stayed, the seeds of truth to sow;
Then he closed in solemn order
Wondrously his life of woe.
On the night of that last supper
Seated with his chosen band,
He, the paschal victim eating,
First fulfills the law's command:
Then as food to all his brethren
Gives himself with his own hand.
Word made flesh, the bread of nature
By his word to flesh he turns;
Wine into his blood he changes:
What though sense no change discerns?
Only be the heart in earnest,
Faith her lesson quickly learns.
Down in adoration falling,
Lo! the sacred Host we hail;
Lo! o'er ancient forms departing,
Newer rites of grace prevail;
Faith for all defects supplying,
Where the feeble senses fail.
To the everlasting Father,
And the Son who reigns on high,
With the Holy Ghost proceeding
Forth from each eternally,
Be salvation, honour, blessing,
Might, and endless majesty. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,123 @@
# The Sacred Heart's own Vespers hymn ("En, ut supérba críminum") —
# distinct from Matins' own ("Auctor beáte sǽculi") and Lauds' own
# ("Cor, arca legem cóntinens"). Live-verified against Divinum Officium
# (Divino Afflatu - 1954), Vespers live query, 2026-06-12 (the Sacred
# Heart itself) — see matins-hymn-sacred-heart.yml's own header on why
# this track. Self-contained — its own final stanza is the hymn's
# natural theological close, not a separate swappable doxology.
#
# This day's own Vespers genuinely has no responsory in the source at
# all (straight from chapter to hymn), same as its own Lauds — see
# hours/vespers.ts's own resolveOffice, which omits the responsory part
# entirely rather than rendering an empty one.
id: vespers-hymn-sacred-heart
text:
la: >-
En, ut supérba críminum
Et sæva nostrórum cohors
Cor sauciávit ínnocens
Meréntis haud tale Dei!
Vibrántis hastam mílitis
Peccáta nostra dírigunt,
Ferrúmque diræ cúspidis
Mortále crimen ácuit.
Ex Corde scisso Ecclésia,
Christo jugáta, náscitur:
Hoc óstium arcæ in látere est
Genti ad salútem pósitum.
Ex hoc perénnis grátia,
Ceu septifórmis flúvius,
Stolas ut illic sórdidas
Lavémus Agni in sánguine.
Turpe est redíre ad crímina,
Quæ Cor beátum lácerent:
Sed æmulémur córdibus
Flammas amóris índices.
Jesu, tibi sit glória,
Qui Corde fundis grátiam,
Cum Patre, et almo Spíritu,
In sempitérna sǽcula. Amen.
en: >-
Lo, how the savage crew
Of our proud sins hath rent
The heart of our all-gracious God,
That heart so innocent.
The soldier's quivering lance
Our guilt it was that drave,
Our wicked deeds that to its point
Such cruel sharpness gave.
O wounded heart, whence sprang
The Church, the Saviour's bride;
Thou door of our salvation's ark
Set in its mystic side.
Thou holy fount, whence flows
The sacred sevenfold flood,
Where we our filthy robes may cleanse
In the Lamb's saving blood:
By sorrowful relapse,
thee will we rend no more;
But like the flames, those types of love,
Strive heavenward to soar.
Father and Son supreme
And Spirit, hear our cry;
Whose is the kingdom, praise and power,
Through all eternity. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,24 @@
# Corpus Christi's own Vespers responsory ("Cibávit illos ex ádipe
# fruménti") — distinct from Lauds' own ("Panem cæli dedit eis", see
# lauds-responsory-corpus-christi.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-06-04
# (Corpus Christi itself).
id: vespers-responsory-corpus-christi
text:
la: |
R.br. Cibávit illos ex ádipe fruménti, * Allelúja, allelúja.
R. Cibávit illos ex ádipe fruménti, * Allelúja, allelúja.
V. Et de petra, melle saturávit eos.
R. Allelúja, allelúja.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. Cibávit illos ex ádipe fruménti, * Allelúja, allelúja.
en: |
R.br. He fed them with the finest of the wheat. * Alleluia, Alleluia.
R. He fed them with the finest of the wheat. * Alleluia, Alleluia.
V. And with honey out of the rock did He satisfy them.
R. Alleluia, Alleluia.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. He fed them with the finest of the wheat. * Alleluia, Alleluia.
status:
la: verified
en: verified
@@ -0,0 +1,11 @@
# Corpus Christi's own Vespers versicle — distinct from Lauds' own
# ("Pósuit fines tuos pacem", see lauds-versicle-corpus-christi.yml).
# Live-verified against Divinum Officium (Monastic Tridentinum 1617),
# Vespers live query, 2026-06-04 (Corpus Christi itself).
id: vespers-versicle-corpus-christi
text:
la: "V. Panem de cælo præstitísti eis, allelúja.\nR. Omne delectaméntum in se habéntem, allelúja."
en: "V. Thou didst send them from heaven, alleluia.\nR. Bread able to content every man's delight, alleluia."
status:
la: verified
en: verified
@@ -0,0 +1,11 @@
# The Sacred Heart's own versicle — identical at both Vespers and Lauds
# (see lauds-versicle-sacred-heart.yml). Live-verified against Divinum
# Officium (Divino Afflatu - 1954), Vespers live query, 2026-06-12 (the
# Sacred Heart itself).
id: vespers-versicle-sacred-heart
text:
la: "V. Hauriétis aquas in gáudio.\nR. De fóntibus Salvatóris."
en: "V. With joy shall ye draw water.\nR. Out of the fountains of the Saviour."
status:
la: verified
en: verified
+12 -6
View File
@@ -321,12 +321,18 @@ function resolveLaudsHymn(day: LiturgicalDay, key: string): ResolvedText {
function resolveOffice(day: LiturgicalDay): ResolvedPart[] { function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
const bundle = resolveOfficeBundle('lauds', day); const bundle = resolveOfficeBundle('lauds', day);
if (bundle) { if (bundle) {
return [ const parts: ResolvedPart[] = [{ kind: 'chapter', text: bundle.chapter }];
{ kind: 'chapter', text: bundle.chapter }, // The Sacred Heart's own Lauds genuinely has no responsory at all in
{ kind: 'responsory', text: bundle.responsory }, // the source (live-verified, Divino Afflatu 1954, 2026-06-12: straight
{ kind: 'hymn', text: bundle.hymn }, // from chapter to hymn, "Capitulum Hymnus Versus" with no
{ kind: 'versicle', text: bundle.versicle }, // "Responsorium" in between) — an intentionally missing part, not an
]; // unauthored one, so omitted from the page entirely rather than
// rendering an empty section.
if (bundle.responsory.status.la !== 'missing' || bundle.responsory.status.en !== 'missing') {
parts.push({ kind: 'responsory', text: bundle.responsory });
}
parts.push({ kind: 'hymn', text: bundle.hymn }, { kind: 'versicle', text: bundle.versicle });
return parts;
} }
const seasonSuffix = seasonalOfficeSuffix(day.season); const seasonSuffix = seasonalOfficeSuffix(day.season);
const key = seasonSuffix ?? day.weekday; const key = seasonSuffix ?? day.weekday;
+2
View File
@@ -62,6 +62,8 @@ export const ALWAYS_OVERRIDE_TEMPORAL_IDS = new Set([
'immaculate-heart-of-mary', 'immaculate-heart-of-mary',
'ascension', 'ascension',
'pentecost-sunday', 'pentecost-sunday',
'corpus-christi',
'sacred-heart',
'circumcision', 'circumcision',
'holy-name-of-jesus', 'holy-name-of-jesus',
'vigil-of-christmas', 'vigil-of-christmas',
+8 -6
View File
@@ -229,12 +229,14 @@ function resolveVespersHymn(day: LiturgicalDay, key: string): ResolvedText {
function resolveOffice(day: LiturgicalDay): ResolvedPart[] { function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
const bundle = resolveOfficeBundle('vespers', day, vespersCapitulumForOverride); const bundle = resolveOfficeBundle('vespers', day, vespersCapitulumForOverride);
if (bundle) { if (bundle) {
return [ const parts: ResolvedPart[] = [{ kind: 'chapter', text: bundle.chapter }];
{ kind: 'chapter', text: bundle.chapter }, // The Sacred Heart's own Vespers genuinely has no responsory at all in
{ kind: 'responsory', text: bundle.responsory }, // the source, same as its own Lauds — see lauds.ts's identical check.
{ kind: 'hymn', text: bundle.hymn }, if (bundle.responsory.status.la !== 'missing' || bundle.responsory.status.en !== 'missing') {
{ kind: 'versicle', text: bundle.versicle }, parts.push({ kind: 'responsory', text: bundle.responsory });
]; }
parts.push({ kind: 'hymn', text: bundle.hymn }, { kind: 'versicle', text: bundle.versicle });
return parts;
} }
const seasonSuffix = seasonalOfficeSuffix(day.season); const seasonSuffix = seasonalOfficeSuffix(day.season);
const key = seasonSuffix ?? day.weekday; const key = seasonSuffix ?? day.weekday;
+1 -1
View File
@@ -6,7 +6,7 @@ import { getLaudsCommonOverride } from '../../src/hours/lauds-psalmody-overrides
// and src/hours/lauds.ts's own generation-script provenance comments for // and src/hours/lauds.ts's own generation-script provenance comments for
// why these particular dates. // why these particular dates.
const FERIAL_SUNDAY = '2026-06-21'; const FERIAL_SUNDAY = '2026-06-21';
const FERIAL_MONDAY = '2026-06-08'; // not 08-31 -- St. Raymond Nonnatus's own day (common-of-a-confessor) const FERIAL_MONDAY = '2026-09-07'; // not 2026-06-08 -- that fell inside Corpus Christi's own octave once its own hymnody was modeled 2026-09-04, see TODO.md; not 08-31 either -- St. Raymond Nonnatus's own day (common-of-a-confessor)
const FERIAL_TUESDAY = '2033-09-06'; // not 2026-06-16 -- that fell inside Sacred Heart's own octave once modeled 2026-08-26, see TODO.md const FERIAL_TUESDAY = '2033-09-06'; // not 2026-06-16 -- that fell inside Sacred Heart's own octave once modeled 2026-08-26, see TODO.md
const LAWRENCE_OCTAVE_DAY = '2026-08-11'; // Semiduplex -- exercises isDoubleOrHigher's false branch differently than a plain feria only in rank, not in psalms (Commune override not modeled, see below) const LAWRENCE_OCTAVE_DAY = '2026-08-11'; // Semiduplex -- exercises isDoubleOrHigher's false branch differently than a plain feria only in rank, not in psalms (Commune override not modeled, see below)
+14 -6
View File
@@ -524,15 +524,23 @@ describe('resolveOrdo("vespers", ...)', () => {
// to the octave -- and Jun 9 itself is *also* inside the same // to the octave -- and Jun 9 itself is *also* inside the same
// octave, already having lost its own Simplex saint (Ss. Primus and // octave, already having lost its own Simplex saint (Ss. Primus and
// Felicianus) to it, so neither day has any sanctoral winner left to // Felicianus) to it, so neither day has any sanctoral winner left to
// anticipate. Jun 9's evening falls all the way through to the plain // anticipate.
// ferial Vespers default (Trinity week's own governing chapter/hymn), //
// with both Primus & Felicianus and Corpus Christi's octave merely // Corrected 2026-09-04: Jun 9's evening does NOT fall through to the
// commemorated, not any widow-specific content at all. // plain ferial Vespers default -- that was this test's own original,
// never-actually-verified guess, documenting the same real
// resolveOfficeWinner gap already fixed for Ascension/Pentecost (see
// TODO.md): a temporal-feast octave (Corpus Christi, no saint
// record) wasn't being recognized on ordinary-feria days within it.
// Live-verified against Divinum Officium (Monastic Tridentinum 1617,
// 2026-06-09, "Feria Tertia infra Octavam Corporis Christi"): the
// real content is Corpus Christi's own chapter/hymn ("ex Commune aut
// Festo" in the source), not Trinity week's own governing default.
const ordo = resolveOrdo('vespers', '2026-06-09'); const ordo = resolveOrdo('vespers', '2026-06-09');
const chapter = ordo.parts.find((p) => p.kind === 'chapter'); const chapter = ordo.parts.find((p) => p.kind === 'chapter');
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('2 Cor 1:3-4'); expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('1 Cor 11:23-24');
const hymn = ordo.parts.find((p) => p.kind === 'hymn'); const hymn = ordo.parts.find((p) => p.kind === 'hymn');
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Tellúris ingens Cónditor'); expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Pange, lingua, gloriósi');
}); });
it("uses common-of-the-bvm's real office bundle for Our Lady of Mount Carmel's First Vespers", () => { it("uses common-of-the-bvm's real office bundle for Our Lady of Mount Carmel's First Vespers", () => {