compline: build the full hour, sharing Prime's resolver helpers
Deploy / deploy (push) Successful in 38s

Ordo is Monastic 1617 as a base, with deliberate Tridentine 1906
additions: the "In manus tuas" short responsory, the Nunc Dimittis
with its "Salva nos" antiphon, the fuller Preces (Monastic's own is
shorter), and Lent's "Christe, qui lux es et dies" hymn replacement
(English translation marked draft, pending a real historical one).
Psalms 4, 90, 133 are fixed daily with real verified text, unlike
Prime's weekday-rotated psalms.

The closing Marian antiphon now picks Alma Redemptoris Mater / Ave
Regina Caelorum / Regina Caeli / Salve Regina by real season, using
the calendar work from the previous commit — except Ave Regina
Caelorum's own window (Candlemas through the day before Maundy
Thursday) doesn't align to any single season value, so that one case
checks the real date directly instead of going through the by-season
table.

resolve-common.ts extracts the resolve/status/doxology/antiphon
helpers Prime already had into something Compline can share; a few
propers files lose their "prime-" prefix now that both hours use them.
This commit is contained in:
2026-08-10 05:27:40 -04:00
parent 67037469fc
commit ec448bc35b
41 changed files with 1270 additions and 93 deletions
+62
View File
@@ -0,0 +1,62 @@
# Ordo verified against Divinum Officium (Monastic Tridentinum 1617 *and*
# Tridentine 1906), 2026-08-25 runs — see src/hours/compline.ts for how
# each part resolves.
#
# Base is Monastic 1617, per explicit choice, with several deliberate
# additions from Tridentine 1906 (Monastic Compline has none of these):
# - The "In manus tuas" short responsory, right after the capitulum.
# - The Nunc Dimittis, framed by its "Salva nos" antiphon, right after
# the responsory's versicle.
# - The fuller Tridentine Preces, in place of Monastic's own shorter form
# (which drops the "Benedíctus es, Dómine..." triple exchange and the
# "Miserére nostri, Dómine.../Fiat misericórdia..." exchange — both
# marked "(sed rubrica ^Monastic omittitur)" in the source). Compline
# has no separate ferial/Sunday Preces text the way Prime does — one
# form, gated only by omitOnDouble (see calendar/isDoubleOrHigher).
# - Lent's distinct hymn replacement ("Christe, qui lux es et dies") —
# see hours/compline.ts's 'hymn' case for a caveat on how confident to
# be that this actually triggers automatically in real practice.
#
# Unlike Prime, Compline's psalms (4, 90, 133) are fixed every day — no
# weekday rotation — and have no antiphon of their own at all in ferial use.
# The capitulum and Preces are likewise not split Sunday-vs-ferial.
#
# The closing Marian antiphon is genuinely seasonal in real practice (Alma
# Redemptoris Mater / Ave Regina Caelorum / Regina Caeli / Salve Regina) —
# see hours/marian-antiphon.ts.
id: compline
parts:
- kind: preces
textRef: { source: common, id: compline-incipit }
- kind: lesson
textRef: { source: common, id: compline-lectio-brevis }
label: Short Reading
- kind: preces
textRef: { source: common, id: lesson-close }
- kind: preces
textRef: { source: common, id: compline-confiteor }
- kind: opening-versicle
- kind: psalm
psalmNumber: 4
- kind: psalm
psalmNumber: 90
- kind: psalm
psalmNumber: 133
- kind: hymn
textRef: { source: common, id: compline-hymn }
- kind: chapter
textRef: { source: common, id: compline-capitulum }
- kind: responsory
textRef: { source: common, id: compline-responsory }
- kind: versicle
textRef: { source: common, id: compline-versicle }
- kind: nunc-dimittis
- kind: preces
textRef: { source: common, id: compline-preces }
omitOnDouble: true
- kind: prayer
textRef: { source: common, id: compline-collect }
- kind: preces
textRef: { source: common, id: compline-conclusio }
label: Conclusion
- kind: marian-antiphon
+5 -3
View File
@@ -1,9 +1,11 @@
# Which common proper supplies the hymn's final doxology stanza, by season.
# Advent has no special doxology in the source data — it falls through to
# perAnnum, same as any season not listed here. Same PLACEHOLDER caveat as
# Shared across every hymn (Divinum Officium's own Doxologies.txt table is
# hymn-agnostic) — each hymn's own per-annum default is supplied by the
# caller instead (see hours/hymn-doxology.ts). Advent has no special
# doxology in the source data — it falls through to the caller's per-annum
# default, same as any season not listed here. Same PLACEHOLDER caveat as
# prime-chapter-responsory-by-season.yml: real season resolution doesn't
# exist until milestone 4, so this can't be exercised by real data yet.
perAnnum: hymn-doxology-per-annum
bySeason:
christmastide: hymn-doxology-nat
epiphanytide: hymn-doxology-epi
@@ -0,0 +1,23 @@
# Which common proper supplies Compline's closing Marian antiphon, by
# season. Only 4 real forms exist regardless of how finely other mechanisms
# (chapter responsory, hymn doxology) slice the year — Ascensiontide and
# Pentecost don't get their own Marian antiphon, they're still "Paschalis"
# (Regina Caeli); Epiphanytide is still "Nativiti" (Alma Redemptoris Mater).
#
# Ave Regina Caelorum's real window (Candlemas, Feb 2, through Wednesday of
# Holy Week) doesn't line up with any single `season` value — it starts
# mid-Epiphanytide and ends mid-Lent or mid-Passiontide depending on the
# year, cutting across three of the mutually-exclusive season buckets used
# everywhere else in this app. So it's NOT a key in this table at all;
# hours/marian-antiphon.ts checks that window directly against the real
# date before ever consulting bySeason below. See calendar/types.ts's
# Season doc comment for the general overlapping-windows problem this is
# one instance of.
perAnnum: marian-antiphon-salve-regina
bySeason:
advent: marian-antiphon-alma-redemptoris-advent
christmastide: marian-antiphon-alma-redemptoris-nativity
epiphanytide: marian-antiphon-alma-redemptoris-nativity
eastertide: marian-antiphon-regina-caeli
ascensiontide: marian-antiphon-regina-caeli
pentecost: marian-antiphon-regina-caeli
@@ -3,8 +3,8 @@
# drop the Alleluia — same PLACEHOLDER caveat as the other by-season
# tables: real season resolution doesn't exist until milestone 4, so this
# always falls through to perAnnum today.
perAnnum: prime-opening-alleluia
perAnnum: opening-alleluia
bySeason:
septuagesima: prime-opening-laus-tibi
lent: prime-opening-laus-tibi
passiontide: prime-opening-laus-tibi
septuagesima: opening-laus-tibi
lent: opening-laus-tibi
passiontide: opening-laus-tibi
+2 -1
View File
@@ -47,6 +47,7 @@ parts:
textRef: { source: common, id: prime-versicle }
- kind: by-day-kind
resolvedKind: preces
omitOnDouble: true
sundayOrFeastRef: { source: common, id: prime-preces-dominicales }
ferialRef: { source: common, id: prime-preces-feriales }
- kind: prayer
@@ -59,7 +60,7 @@ parts:
textRef: { source: common, id: prime-lectio-brevis-per-annum }
label: Short Reading
- kind: preces
textRef: { source: common, id: prime-lesson-close }
textRef: { source: common, id: lesson-close }
- kind: preces
textRef: { source: common, id: prime-conclusio }
label: Conclusion
@@ -0,0 +1,13 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Fixed year-round, and (unlike Prime) not split Sunday/feast vs.
# ferial — Compline's capitulum has only this one form.
id: compline-capitulum
text:
la: "Tu autem in nobis es, Dómine, et nomen sanctum tuum invocátum est super nos: ne derelínquas nos, Dómine, Deus noster."
en: "But thou, O Lord, art among us, and thy name is called upon by us: forsake us not, O Lord our God."
citation:
la: "Jer. 14:9"
en: "Jer. 14:9"
status:
la: verified
en: verified
@@ -0,0 +1,14 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25 run.
id: compline-collect
text:
la: |
Orémus.
Vísita, quǽsumus, Dómine, habitatiónem istam, et omnes insídias inimíci ab ea longe repélle: Ángeli tui sancti hábitent in ea, qui nos in pace custódiant; et benedíctio tua sit super nos semper. 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: |
Let us pray.
Visit, we beseech thee, O Lord, this dwelling, and drive far from it the snares of the enemy; let thy holy angels dwell herein to preserve us in peace, and let thy blessing be always upon us. 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
@@ -0,0 +1,22 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Distinct wording from Prime's own Conclusio — different versicle
# pairing, different (Trinity-formula) blessing.
id: compline-conclusio
text:
la: |
V. Dómine, exáudi oratiónem meam.
R. Et clamor meus ad te véniat.
V. Benedicámus Dómino.
R. Deo grátias.
Benedictio. Benedícat et custódiat nos omnípotens et miséricors Dóminus, ✠ Pater, et Fílius, et Spíritus Sanctus.
R. Amen.
en: |
V. O Lord, hear my prayer.
R. And let my cry come unto thee.
V. Let us bless the Lord.
R. Thanks be to God.
Benediction. The almighty and merciful Lord, ✠ the Father, the Son and the Holy Spirit, bless us and keep us.
R. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,37 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Compline's Confiteor cluster comes *before* the psalms (unlike
# Prime's, which comes after) — said right after the Lectio Brevis, then
# straight into "Deus in adiutorium" (see hours/opening-versicle.ts).
id: compline-confiteor
text:
la: |
V. Adjutórium nostrum ✠ in nómine Dómini.
R. Qui fecit cælum et terram.
Pater noster, qui es in cælis, sanctificétur nomen tuum: advéniat regnum tuum: fiat volúntas tua, sicut in cælo et in terra. Panem nostrum quotidiánum da nobis hódie: et dimítte nobis débita nostra, sicut et nos dimíttimus debitóribus nostris: et ne nos indúcas in tentatiónem: sed líbera nos a malo. Amen.
Confíteor Deo omnipoténti, beátæ Maríæ semper Vírgini, beáto Michaéli Archángelo, beáto Joánni Baptístæ, sanctis Apóstolis Petro et Paulo, beáto Patri nostro Benedícto, et ómnibus Sanctis, quia peccávi nimis, cogitatióne, verbo et ópere: mea culpa, mea culpa, mea máxima culpa. Ídeo precor beátam Maríam semper Vírginem, beátum Michaélem Archángelum, beátum Joánnem Baptístam, sanctos Apóstolos Petrum et Paulum, beátum Patrem nostrum Benedíctum, et omnes Sanctos, oráre pro me ad Dóminum Deum nostrum.
Misereátur nostri omnípotens Deus, et dimíssis peccátis nostris, perdúcat nos ad vitam ætérnam. Amen.
Indulgéntiam, ✠ absolutiónem et remissiónem peccatórum nostrórum tríbuat nobis omnípotens et miséricors Dóminus. Amen.
V. Convérte nos ✙︎ Deus, salutáris noster.
R. Et avérte iram tuam a nobis.
en: |
V. Our help is ✠ in the name of the Lord,
R. Who made heaven and earth.
Our Father, who art in heaven, Hallowed be thy name. Thy kingdom come. Thy will be done on earth as it is in heaven. Give us this day our daily bread. And forgive us our trespasses, as we forgive those who trespass against us. And lead us not into temptation: But deliver us from evil. Amen.
I confess to almighty God, to blessed Mary ever Virgin, to blessed Michael the Archangel, to blessed John the Baptist, to the holy Apostles Peter and Paul, our holy Father Benedict, and to all the Saints, that I have sinned exceedingly in thought, word and deed: through my fault, through my fault, through my most grievous fault. Therefore I beseech blessed Mary ever Virgin, blessed Michael the Archangel, blessed John the Baptist, the holy Apostles Peter and Paul, our holy Father Benedict, and all the Saints, to pray for me to the Lord our God.
May almighty God have mercy on us, forgive us our sins, and bring us to everlasting life. Amen.
May the almighty ✠ and merciful Lord grant us pardon, absolution and remission of our sins. Amen.
V. Turn us then, ✙︎ O God, our saviour:
R. And let thy anger cease from us.
status:
la: verified
en: verified
@@ -0,0 +1,12 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Compline hymn's own default final stanza — the seasonal overrides
# (hymn-doxology-nat.yml etc.) are shared across every hymn's doxology slot,
# since Divinum Officium's own Doxologies.txt table is hymn-agnostic; only
# the per-annum default is specific to a given hymn.
id: compline-hymn-doxology-per-annum
text:
la: "Præsta, Pater omnípotens,\nPer Jesum Christum Dóminum,\nQui tecum in perpétuum\nRegnat cum Sancto Spíritu.\nAmen."
en: "O Father, that we ask be done,\nThrough Jesus Christ, thine only Son;\nWho, with the Holy Ghost and thee,\nDoth live and reign eternally.\nAmen."
status:
la: verified
en: verified
@@ -0,0 +1,106 @@
# Verified against Divinum Officium ("Minor Special.txt", [Hymnus
# Completorium Quad]) — "Christe, qui lux es et dies", a complete
# alternate hymn (not just a different doxology) traditionally used at
# Compline during Lent. Self-contained: its own final stanza is already
# the standard doxology, so this isn't run through hymn-doxology.ts the
# way compline-hymn.yml is.
#
# No verified English translation exists in the local Divinum Officium
# dataset for this specific variant. Real 19th-century public-domain
# translations do exist (W. J. Copeland, 1848/1867, in Hymns Ancient and
# Modern; also Mrs. Rundle Charles 1858, W. Mercer 1864, R. F. Littledale
# 1867) but a complete, verbatim, accurately-sourced text of any of them
# wasn't findable — rather than reconstruct one from memory and risk
# misattributing invented wording to a real historical translator, the
# English below is a fresh, direct translation, marked "draft" (not
# "verified" like everything else in this project) for exactly that
# reason. Swap in a real historical translation instead if you track one
# down. The final stanza's translation is the exception — it's identical
# Latin to compline-hymn-doxology-per-annum.yml's own stanza, so that
# already-verified English is reused here.
#
# Also worth flagging: I could not get the reference engine to actually
# select this hymn for a Lenten date under Tridentine 1906 (it kept
# returning the standard "Te lucis ante terminum"), and found no code path
# that appends a seasonal suffix for Completorium's hymn at all — so this
# may be legacy/unused data in that particular engine rather than
# something it auto-selects. Wired in here as a deliberate editorial
# choice (the hymn and its Lenten use are independently well-attested),
# not a confirmed live behavior.
id: compline-hymn-lenten
text:
la: |
Christe, qui lux es et dies,
Noctis tenébras détegis,
Lucísque lumen créderis,
Lumen beátum prǽdicans.
Precámur sancte Dómine,
defénde nos in hac nocte:
Sit nobis in te réquies,
Quiétam noctem tríbue.
Ne gravis somnus írruat,
Nec hostis nos subrípiat,
Nec caro illi conséntiens
Nos tibi reos státuat.
Oculi somnum cápiant,
Cor ad te semper vígilet:
Déxtera tua prótegat
Fámulos, qui te díligunt.
Defénsor noster áspice,
Insidiántes réprime,
Gubérna tuos fámulos,
Quos Sánguine mercátus es.
Meménto nostri, Dómine,
In gravi isto córpore:
Qui es defénsor ánimæ,
Adésto nobis, Dómine.
Præsta Pater omnípotens,
Per Jesum Christum Dóminum,
Qui tecum in perpétuum
Regnat cum Sancto Spíritu.
Amen.
en: |
O Christ, who art the light and day,
who dost dispel the darkness of night,
and art believed to be the light of light,
proclaiming blessed light.
We beseech thee, holy Lord,
defend us this night:
let our rest be in thee alone,
grant us a quiet night.
Let not heavy sleep overtake us,
nor let the enemy steal upon us;
let not the flesh, consenting to him,
render us guilty before thee.
Let our eyes take their sleep,
but let our heart keep watch for thee always:
let thy right hand protect
thy servants who love thee.
Look upon us, our defender;
restrain those who lie in wait;
govern thy servants,
whom thou hast purchased with thy Blood.
Remember us, O Lord,
in this burdened body:
thou who art the defender of the soul,
be present with us, O Lord.
O Father, that we ask be done,
Through Jesus Christ, thine only Son;
Who, with the Holy Ghost and thee,
Doth live and reign eternally.
Amen.
status:
la: verified
en: draft
+36
View File
@@ -0,0 +1,36 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. "Te lucis ante terminum" — only 2 body stanzas (the doxology, its 3rd
# stanza, is stored separately since it varies by season — see
# compline-hymn-doxology-per-annum.yml and hours/hymn-doxology.ts, same
# mechanism as Prime's hymn).
#
# Monastic wording ("sólita"/"ad custódiam") differs slightly from the
# Roman "pro tua"/"et custódia" — this is the Monastic form.
#
# Lent has its own distinct 6-stanza hymn ("Christe, qui lux es et dies")
# rather than just a different doxology on this one — not modeled yet.
id: compline-hymn
text:
la: |
Te lucis ante términum,
Rerum Creátor, póscimus,
Ut sólita cleméntia
Sis præsul ad custódiam.
Procul recédant sómnia,
Et nóctium phantásmata;
Hostémque nostrum cómprime,
Ne polluántur córpora.
en: |
Before the ending of the day,
Creator of the world, we pray
That with thy wonted favor thou
Wouldst be our guard and keeper now.
From all ill dreams defend our eyes,
From nightly fears and fantasies;
Tread under foot our ghostly foe,
That no pollution we may know.
status:
la: verified
en: verified
@@ -0,0 +1,17 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Compline's own opening blessing — distinct from Prime's Regula
# blessing ("Dies et actus nostros...") despite the shared "Jube, domne"
# request line.
id: compline-incipit
text:
la: |
V. Jube, domne, benedícere.
Benedictio. Noctem quiétam et finem perféctum concédat nobis Dóminus omnípotens.
R. Amen.
en: |
V. Grant, Lord, a blessing.
Benediction. May almighty God grant us a quiet night and a perfect end.
R. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,13 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Fixed year-round in the source data (no seasonal variants the way
# Prime's per-annum lectio brevis is flagged as eventually needing).
id: compline-lectio-brevis
text:
la: "Fratres: Sóbrii estóte, et vigiláte: quia adversárius vester diábolus tamquam leo rúgiens círcuit, quærens quem dévoret: cui resístite fortes in fide."
en: "Brothers: Be sober and watch: because your adversary the devil, as a roaring lion, goeth about seeking whom he may devour. Whom resist ye, strong in faith."
citation:
la: "1 Pet. 5:8-9"
en: "1 Pet. 5:8-9"
status:
la: verified
en: verified
@@ -0,0 +1,69 @@
# Verified against Divinum Officium (Tridentine 1906), 2026-08-25 run —
# used by explicit choice instead of Monastic's own (shorter) Compline
# Preces, which drop the "Benedíctus es, Dómine..." triple exchange at the
# start and the "Miserére nostri, Dómine.../Fiat misericórdia..." exchange
# near the end (both marked "(sed rubrica ^Monastic omittitur)" in the
# source). Compline has no separate ferial/Sunday form the way Prime does —
# this is the only text; the only variable is whether Preces are said at
# all (see calendar/isDoubleOrHigher — dropped on a Double-or-higher feast).
id: compline-preces
text:
la: |
Kýrie, eléison. Christe, eléison. Kýrie, eléison.
Pater noster, qui es in cælis, sanctificétur nomen tuum: advéniat regnum tuum: fiat volúntas tua, sicut in cælo et in terra. Panem nostrum quotidiánum da nobis hódie: et dimítte nobis débita nostra, sicut et nos dimíttimus debitóribus nostris:
V. Et ne nos indúcas in tentatiónem:
R. Sed líbera nos a malo.
Credo in Deum, Patrem omnipoténtem, Creatórem cæli et terræ. Et in Jesum Christum, Fílium ejus únicum, Dóminum nostrum: qui concéptus est de Spíritu Sancto, natus ex María Vírgine, passus sub Póntio Piláto, crucifíxus, mórtuus, et sepúltus: descéndit ad ínferos; tértia die resurréxit a mórtuis; ascéndit ad cælos; sedet ad déxteram Dei Patris omnipoténtis: inde ventúrus est judicáre vivos et mórtuos. Credo in Spíritum Sanctum, sanctam Ecclésiam cathólicam, Sanctórum communiónem, remissiónem peccatórum.
V. Carnis resurrectiónem.
R. Vitam ætérnam. Amen.
V. Benedíctus es, Dómine, Deus patrum nostrórum.
R. Et laudábilis et gloriósus in sǽcula.
V. Benedicámus Patrem et Fílium cum Sancto Spíritu.
R. Laudémus, et superexaltémus eum in sǽcula.
V. Benedíctus es, Dómine, in firmaménto cæli.
R. Et laudábilis, et gloriósus, et superexaltátus in sǽcula.
V. Benedícat et custódiat nos omnípotens et miséricors Dóminus.
R. Amen.
V. Dignáre, Dómine, nocte ista.
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: |
Lord have mercy upon us, Christ have mercy upon us, Lord have mercy upon us.
Our Father, who art in heaven, Hallowed be thy name. Thy kingdom come. Thy will be done on earth as it is in heaven. Give us this day our daily bread. And forgive us our trespasses, as we forgive those who trespass against us.
V. And lead us not into temptation:
R. But deliver us from evil.
I believe in God, the Father almighty, Creator of heaven and earth. And in Jesus Christ, his only Son, our Lord; who was conceived by the Holy Ghost, born of the Virgin Mary, suffered under Pontius Pilate, was crucified, died and was buried: he descended into hell; the third day he arose again from the dead; he ascended into heaven; sitteth at the right hand of God the Father almighty: from thence he shall come to judge the living and the dead. I believe in the Holy Ghost, the holy catholic Church, the communion of Saints, the forgiveness of sins.
V. The resurrection of the body.
R. And life everlasting. Amen.
V. Blessed are you, Lord, God of our fathers.
R. Worthy of praise, and glorious for ever.
V. Let us bless the Father, the Son and the Holy Spirit.
R. Let us praise and exalt him above all for ever.
V. Blessed art thou in the firmament of heaven:
R. Worthy of praise, and glorious for ever.
V. May the almighty and merciful God bless us and keep us.
R. Amen.
V. Vouchsafe, O Lord,
R. To keep us this night 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 you.
V. O Lord, hear my prayer.
R. And let my cry come unto thee.
status:
la: verified
en: verified
@@ -0,0 +1,24 @@
# Verified against Divinum Officium (Tridentine 1906), 2026-08-25 run —
# Monastic Compline doesn't have this at all (like Prime's borrowed
# responsory); added by explicit choice. Uses the non-Dominican verse
# ("Redemísti nos" / "us") — the Order of Preachers rubric substitutes
# "Redemísti me" ("me") instead, not used here.
id: compline-responsory
text:
la: |
R.br. In manus tuas, Dómine, * Comméndo spíritum meum.
R. In manus tuas, Dómine, * Comméndo spíritum meum.
V. Redemísti nos, Dómine, Deus veritátis.
R. Comméndo spíritum meum.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. In manus tuas, Dómine, * Comméndo spíritum meum.
en: |
R.br. Into thy hands, O Lord, * do I commend my spirit.
R. Into thy hands, O Lord, * do I commend my spirit.
V. For thou hast redeemed us, O Lord, God of truth.
R. I commend my spirit.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. Into thy hands, O Lord, * do I commend my spirit.
status:
la: verified
en: verified
@@ -0,0 +1,12 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25 run.
id: compline-versicle
text:
la: |
V. Custódi nos, Dómine, ut pupíllam óculi.
R. Sub umbra alárum tuárum prótege nos.
en: |
V. Keep us, Lord, as the apple of thine eye.
R. Protect us under the shadow of thy wings.
status:
la: verified
en: verified
@@ -1,7 +1,7 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25 run.
# Closing dialogue shared by both the Regula reading and the Lectio Brevis
# that follows it.
id: prime-lesson-close
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. Closing dialogue after any short reading — shared across hours
# (Prime's Regula reading and Lectio Brevis, Compline's own Lectio Brevis).
id: lesson-close
text:
la: |
V. Tu autem, Dómine, miserére nobis.
@@ -0,0 +1,25 @@
# Verified against Divinum Officium (Latin/English Mariaant.txt, [Advent]).
# Same antiphon text as the Christmastide form (marian-antiphon-alma-
# redemptoris-nativity.yml) but a different versicle and collect — Advent
# looks forward to the Incarnation, Christmastide back on it having happened.
id: marian-antiphon-alma-redemptoris-advent
text:
la: |
Alma Redemptóris Mater, quæ pérvia cæli porta manes, et stella maris, succúrre cadénti, súrgere qui curat, pópulo: tu quæ genuísti, Natúra miránte, tuum sanctum Genitórem, Virgo prius ac postérius, Gabriélis ab ore sumens illud Ave, peccatórum miserére.
V. Ángelus Dómini nuntiávit Maríæ.
R. Et concépit de Spíritu Sancto.
Orémus.
Grátiam tuam, quǽsumus, Dómine, méntibus nostris infúnde: ut, qui, Ángelo nuntiánte, Christi Fílii tui incarnatiónem cognóvimus; per passiónem ejus et crucem, ad resurrectiónis glóriam perducámur. Per eúmdem Christum Dóminum nostrum. Amen.
en: |
Mother of Christ, hear thou thy people's cry, Star of the deep and Portal of the sky! Mother of Him who thee from nothing made. Sinking we strive and call to thee for aid: O, by what joy which Gabriel brought to thee, Thou Virgin first and last, let us thy mercy see.
V. The Angel of the Lord announced unto Mary.
R. And she conceived of the Holy Spirit.
Let us pray.
Pour forth, we beseech thee, O Lord, thy grace into our hearts: that as we have known the incarnation of thy Son Jesus Christ by the message of an Angel, so too by his Cross and passion may we be brought to the glory of his resurrection. Through the same Christ our Lord. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,24 @@
# Verified against Divinum Officium (Latin/English Mariaant.txt, [Nativiti]).
# Used from Christmas through Purification (Feb 2), covering Epiphanytide
# too — same antiphon text as Advent's form, different versicle/collect.
id: marian-antiphon-alma-redemptoris-nativity
text:
la: |
Alma Redemptóris Mater, quæ pérvia cæli porta manes, et stella maris, succúrre cadénti, súrgere qui curat, pópulo: tu quæ genuísti, Natúra miránte, tuum sanctum Genitórem, Virgo prius ac postérius, Gabriélis ab ore sumens illud Ave, peccatórum miserére.
V. Post partum, Virgo, invioláta permansísti.
R. Dei Génetrix, intercéde pro nobis.
Orémus.
Deus, qui salútis ætérnæ, beátæ Maríæ virginitáte fecúnda, humáno géneri prǽmia præstitísti: tríbue, quǽsumus; ut ipsam pro nobis intercédere sentiámus, per quam merúimus auctórem vitæ suscípere, Dóminum nostrum Jesum Christum Fílium tuum. Amen.
en: |
Mother of Christ, hear thou thy people's cry, Star of the deep and Portal of the sky! Mother of Him who thee from nothing made. Sinking we strive and call to thee for aid: O, by what joy which Gabriel brought to thee, Thou Virgin first and last, let us thy mercy see.
V. After childbirth thou didst remain a virgin.
R. Intercede for us, O Mother of God.
Let us pray.
O God, who, by the fruitful virginity of blessed Mary, hast bestowed upon mankind the reward of eternal salvation: grant, we beseech thee, that we may experience her intercession, through whom we have been made worthy to receive the author of life, Our Lord Jesus Christ thy Son. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,28 @@
# Verified against Divinum Officium (Latin/English Mariaant.txt,
# [Quadragesimae]). Real boundary is Purification (Feb 2) through Wednesday
# of Holy Week — *not* the same start as the Alleluia-suppression boundary
# (Septuagesima) used elsewhere (see prime-opening-by-season.yml). Filed
# under the same "lent" season key for now since neither is exercisable
# until milestone 4 anyway, but don't assume they're the same cutover once
# real season resolution exists.
id: marian-antiphon-ave-regina-caelorum
text:
la: |
Ave, Regína cælórum, Ave, Dómina Angelórum: Salve radix, salve porta, Ex qua mundo lux est orta: Gaude, Virgo gloriósa, Super omnes speciósa, Vale, o valde decóra, Et pro nobis Christum exóra.
V. Dignáre me laudáre te, Virgo sacráta.
R. Da mihi virtútem contra hostes tuos.
Orémus.
Concéde, miséricors Deus, fragilitáti nostræ præsídium; ut, qui sanctæ Dei Genetrícis memóriam ágimus; intercessiónis ejus auxílio, a nostris iniquitátibus resurgámus. Per eúmdem Christum Dóminum nostrum. Amen.
en: |
Hail, O Queen of heaven, enthroned! Hail, by Angels Mistress owned! Root of Jesse, Gate of morn, Whence the world's true Light was born: Glorious Virgin, joy to thee, Loveliest whom in heaven they see: Fairest thou, where all are fair, Plead with Christ our sins to spare.
V. Allow me to praise thee, holy Virgin.
R. Give me strength against thine enemies.
Let us pray.
Grant, O merciful God, to our weak natures thy protection, that we who commemorate the holy Mother of God may, by the help of her intercession, arise from our iniquities. Through the same Christ our Lord. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,26 @@
# Verified against Divinum Officium (Latin/English Mariaant.txt,
# [Paschalis]). Covers Eastertide, Ascensiontide, and Pentecost together as
# one span (unlike the chapter-responsory/hymn-doxology tables, which treat
# those three as distinct sub-seasons) — real practice doesn't switch the
# Marian antiphon again until Trinity Sunday.
id: marian-antiphon-regina-caeli
text:
la: |
Regína cæli, lætáre, allelúja; Quia quem meruísti portáre, allelúja, Resurréxit, sicut dixit, allelúja: Ora pro nobis Deum, allelúja.
V. Gaude et lætáre, Virgo María, allelúja.
R. Quia surréxit Dóminus vere, allelúja.
Orémus.
Deus, qui per resurrectiónem Fílii tui, Dómini nostri Jesu Christi, mundum lætificáre dignátus es: præsta, quǽsumus; ut, per ejus Genetrícem Vírginem Maríam, perpétuæ capiámus gáudia vitæ. Per eúmdem Christum Dóminum nostrum. Amen.
en: |
O Queen of heaven rejoice! alleluia: For He whom thou didst merit to bear, alleluia, Hath arisen as he said, alleluia. Pray for us to God, alleluia.
V. Rejoice and be glad, O Virgin Mary, alleluia.
R. Because the Lord is truly risen, alleluia.
Let us pray.
O God, who gave joy to the world through the resurrection of thy Son, our Lord Jesus Christ; grant, we beseech thee, that through his Mother, the Virgin Mary, we may obtain the joys of everlasting life. Through the same Christ our Lord. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,26 @@
# Verified against Divinum Officium (Latin/English Mariaant.txt,
# [Postpentecost]). This is the per-annum default — "Postpentecost" is
# exactly what this codebase's placeholder default season ("trinitytide")
# refers to (see calendar/index.ts), so Salve Regina is the correct
# fallback, not an arbitrary pick.
id: marian-antiphon-salve-regina
text:
la: |
Salve, Regína, mater misericórdiæ; vita, dulcédo et spes nóstra, salve. Ad te clamámus éxsules fílii Hevæ. Ad te suspirámus geméntes et flentes in hac lacrimárum valle. Eja ergo, advocáta nostra, illos tuos misericórdes óculos ad nos convérte. Et Jesum, benedíctum fructum ventris tui, nobis post hoc exsílium osténde. O clemens, o pia, o dulcis Virgo María.
V. Ora pro nobis, sancta Dei Génetrix.
R. Ut digni efficiámur promissiónibus Christi.
Orémus.
Omnípotens sempitérne Deus, qui gloriósæ Vírginis Matris Maríæ corpus et ánimam, ut dignum Fílii tui habitáculum éffici mererétur, Spíritu Sancto cooperánte, præparásti: da, ut, cujus commemoratióne lætámur, ejus pia intercessióne, ab instántibus malis et a morte perpétua liberémur. Per eúmdem Christum Dóminum nostrum. Amen.
en: |
Hail holy Queen, Mother of Mercy, our life, our sweetness, and our hope. To thee do we cry, poor banished children of Eve. To thee do we send up our sighs, mourning and weeping in this valley of tears. Turn then, most gracious Advocate, thine eyes of mercy toward us. And after this our exile show unto us the blessed fruit of thy womb, Jesus. O clement, O loving, O sweet Virgin Mary.
V. Pray for us, O Holy Mother of God.
R. That we may be made worthy of the promises of Christ.
Let us pray.
O almighty, everlasting God, who by the cooperation of the Holy Spirit, didst prepare the body and soul of Mary, glorious Virgin and Mother, to become a worthy dwelling for Thy Son; grant that we who rejoice in her commemoration may, by her gracious intercession, be delivered from present evils and from everlasting death. Through the same Christ our Lord. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,12 @@
# Verified against Divinum Officium (Tridentine 1906), 2026-08-25 run.
# Fixed year-round (unlike Prime's weekday-variable psalm antiphon) — same
# incipit/full split via the embedded "*", same by-rank opening logic (see
# hours/antiphon.ts), full repeat after via its own 'closing-antiphon'-style
# part in the ordo.
id: nunc-dimittis-antiphon
text:
la: "Salva nos, * Dómine, vigilántes, custódi nos dormiéntes; ut vigilémus cum Christo, et requiescámus in pace."
en: "Protect us, * Lord, while we are awake and safeguard us while we sleep; that we may keep watch with Christ, and rest in peace."
status:
la: verified
en: verified
+26
View File
@@ -0,0 +1,26 @@
# Verified against Divinum Officium (Tridentine 1906 run, 2026-08-25 —
# Monastic Compline doesn't have this canticle at all; it's added from the
# Tridentine 1906 form by explicit choice). The antiphon that frames it
# ("Salva nos") is a separate proper — see nunc-dimittis-antiphon.yml.
id: nunc-dimittis
text:
la: |
Nunc dimíttis ✠ servum tuum, Dómine, * secúndum verbum tuum in pace:
Quia vidérunt óculi mei * salutáre tuum,
Quod parásti * ante fáciem ómnium populórum,
Lumen ad revelatiónem géntium, * et glóriam plebis tuæ Israël.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. Sicut erat in princípio, et nunc, et semper, * et in sǽcula sæculórum. Amen.
en: |
Now ✠ thou dost dismiss thy servant, O Lord, * according to thy word in peace;
Because my eyes have seen * thy salvation,
Which thou hast prepared * before the face of all peoples:
A light to the revelation of the Gentiles, * and the glory of thy people Israel.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. As it was in the beginning, is now, * and ever shall be, world without end. Amen.
citation:
la: "Luc. 2:29-32"
en: "Luke 2:29-32"
status:
la: verified
en: verified
@@ -1,11 +1,12 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), 2026-08-25
# run. The opening "Deus in adiutorium" versicle, said aloud right after the
# (dropped, see data/hours/prime.yml's note) silent Pater/Ave/Credo.
# run. The opening "Deus in adiutorium" versicle — shared across every hour
# that has one (Prime drops the silent Pater/Ave/Credo that would normally
# precede it; Compline says it aloud right after its own pre-psalm Confiteor).
#
# This is the default (per-annum) ending — Septuagesima through Holy
# Saturday swaps "Allelúja" for "Laus tibi..." instead; see
# prime-opening-laus-tibi.yml and hours/opening-versicle.ts.
id: prime-opening-alleluia
# opening-laus-tibi.yml and hours/opening-versicle.ts.
id: opening-alleluia
text:
la: |
V. Deus ✠ in adjutórium meum inténde.
@@ -1,9 +1,9 @@
# Verified against Divinum Officium ("Psalterium/Common/Prayers.txt",
# [Alleluia] section's 2nd line). Same opening versicle as
# prime-opening-alleluia.yml, but with "Allelúja" replaced by "Laus tibi,
# opening-alleluia.yml, but with "Allelúja" replaced by "Laus tibi,
# Dómine, Rex ætérnæ glóriæ" — used Septuagesima through Holy Saturday
# instead of the default. See hours/opening-versicle.ts.
id: prime-opening-laus-tibi
id: opening-laus-tibi
text:
la: |
V. Deus ✠ in adjutórium meum inténde.
+74
View File
@@ -0,0 +1,74 @@
# Verified against Divinum Officium (Latin Psalmorum, English translation).
# Vulgate/Gallican numbering.
number: 4
verses:
- n: 2
text:
la: "Cum invocárem exaudívit me Deus justítiæ meæ: * in tribulatióne dilatásti mihi."
en: "When I called upon him, the God of my justice heard me: * when I was in distress, thou hast enlarged me."
status:
la: verified
en: verified
- n: 2
text:
la: "Miserére mei, * et exáudi oratiónem meam."
en: "Have mercy on me: * and hear my prayer."
status:
la: verified
en: verified
- n: 3
text:
la: "Fílii hóminum, úsquequo gravi corde? * ut quid dilígitis vanitátem, et quǽritis mendácium?"
en: "O ye sons of men, how long will you be dull of heart? * Why do you love vanity, and seek after lying?"
status:
la: verified
en: verified
- n: 4
text:
la: "Et scitóte quóniam mirificávit Dóminus sanctum suum: * Dóminus exáudiet me cum clamávero ad eum."
en: "Know ye also that the Lord hath made his holy one wonderful: * the Lord will hear me when I shall cry unto him."
status:
la: verified
en: verified
- n: 5
text:
la: "Irascímini, et nolíte peccáre: ‡ quæ dícitis in córdibus vestris, * in cubílibus vestris compungímini."
en: "Be ye angry, and sin not: ‡ the things you say in your hearts, * be sorry for them upon your beds."
status:
la: verified
en: verified
- n: 6
text:
la: "Sacrificáte sacrifícium justítiæ, † et speráte in Dómino. * Multi dicunt: Quis osténdit nobis bona?"
en: "Offer up the sacrifice of justice, † and trust in the Lord: * many say, Who sheweth us good things?"
status:
la: verified
en: verified
- n: 7
text:
la: "Signátum est super nos lumen vultus tui, Dómine: * dedísti lætítiam in corde meo."
en: "The light of thy countenance, O Lord, is signed upon us: * thou hast given gladness in my heart."
status:
la: verified
en: verified
- n: 8
text:
la: "A fructu fruménti, vini, et ólei sui * multiplicáti sunt."
en: "By the fruit of their corn, their wine, and oil, * they are multiplied."
status:
la: verified
en: verified
- n: 9
text:
la: "In pace in idípsum * dórmiam, et requiéscam;"
en: "In peace in the selfsame * I will sleep, and I will rest:"
status:
la: verified
en: verified
- n: 10
text:
la: "Quóniam tu, Dómine, singuláriter in spe * constituísti me."
en: "For thou, O Lord, singularly * hast settled me in hope."
status:
la: verified
en: verified
+116
View File
@@ -0,0 +1,116 @@
# Verified against Divinum Officium (Latin Psalmorum, English translation).
# Vulgate/Gallican numbering.
number: 90
verses:
- n: 1
text:
la: "Qui hábitat in adjutório Altíssimi, * in protectióne Dei cæli commorábitur."
en: "He that dwelleth in the aid of the most High, * shall abide under the protection of the God of Jacob."
status:
la: verified
en: verified
- n: 2
text:
la: "Dicet Dómino: Suscéptor meus es tu, et refúgium meum: * Deus meus sperábo in eum."
en: "He shall say to the Lord: Thou art my protector, and my refuge: * my God, in him will I trust."
status:
la: verified
en: verified
- n: 3
text:
la: "Quóniam ipse liberávit me de láqueo venántium, * et a verbo áspero."
en: "For he hath delivered me from the snare of the hunters: * and from the sharp word."
status:
la: verified
en: verified
- n: 4
text:
la: "Scápulis suis obumbrábit tibi: * et sub pennis ejus sperábis."
en: "He will overshadow thee with his shoulders: * and under his wings thou shalt trust."
status:
la: verified
en: verified
- n: 5
text:
la: "Scuto circúmdabit te véritas ejus: * non timébis a timóre noctúrno,"
en: "His truth shall compass thee with a shield: * thou shalt not be afraid of the terror of the night."
status:
la: verified
en: verified
- n: 6
text:
la: "A sagítta volánte in die, † a negótio perambulánte in ténebris: * ab incúrsu, et dæmónio meridiáno."
en: "Of the arrow that flieth in the day, † of the business that walketh about in the dark: * of invasion, or of the noonday devil."
status:
la: verified
en: verified
- n: 7
text:
la: "Cadent a látere tuo mille, † et decem míllia a dextris tuis: * ad te autem non appropinquábit."
en: "A thousand shall fall at thy side, † and ten thousand at thy right hand: * but it shall not come nigh thee."
status:
la: verified
en: verified
- n: 8
text:
la: "Verúmtamen óculis tuis considerábis: * et retributiónem peccatórum vidébis."
en: "But thou shalt consider with thy eyes: * and shalt see the reward of the wicked."
status:
la: verified
en: verified
- n: 9
text:
la: "Quóniam tu es, Dómine, spes mea: * Altíssimum posuísti refúgium tuum."
en: "Because thou, O Lord, art my hope: * thou hast made the most High thy refuge."
status:
la: verified
en: verified
- n: 10
text:
la: "Non accédet ad te malum: * et flagéllum non appropinquábit tabernáculo tuo."
en: "There shall no evil come to thee: * nor shall the scourge come near thy dwelling."
status:
la: verified
en: verified
- n: 11
text:
la: "Quóniam Ángelis suis mandávit de te: * ut custódiant te in ómnibus viis tuis."
en: "For he hath given his angels charge over thee; * to keep thee in all thy ways."
status:
la: verified
en: verified
- n: 12
text:
la: "In mánibus portábunt te: * ne forte offéndas ad lápidem pedem tuum."
en: "In their hands they shall bear thee up: * lest thou dash thy foot against a stone."
status:
la: verified
en: verified
- n: 13
text:
la: "Super áspidem, et basilíscum ambulábis: * et conculcábis leónem et dracónem."
en: "Thou shalt walk upon the asp and the basilisk: * and thou shalt trample under foot the lion and the dragon."
status:
la: verified
en: verified
- n: 14
text:
la: "Quóniam in me sperávit, liberábo eum: * prótegam eum, quóniam cognóvit nomen meum."
en: "Because he hoped in me I will deliver him: * I will protect him because he hath known my name."
status:
la: verified
en: verified
- n: 15
text:
la: "Clamábit ad me, et ego exáudiam eum: ‡ cum ipso sum in tribulatióne: * erípiam eum et glorificábo eum."
en: "He shall cry to me, and I will hear him: ‡ I am with him in tribulation, * I will deliver him, and I will glorify him."
status:
la: verified
en: verified
- n: 16
text:
la: "Longitúdine diérum replébo eum: * et osténdam illi salutáre meum."
en: "I will fill him with length of days; * and I will shew him my salvation."
status:
la: verified
en: verified
+32
View File
@@ -0,0 +1,32 @@
# Verified against Divinum Officium (Latin Psalmorum, English translation).
# Vulgate/Gallican numbering.
number: 133
verses:
- n: 1
text:
la: "Ecce nunc benedícite Dóminum, * omnes servi Dómini:"
en: "Behold now bless ye the Lord, * all ye servants of the Lord:"
status:
la: verified
en: verified
- n: 1
text:
la: "Qui statis in domo Dómini, * in átriis domus Dei nostri."
en: "Who stand in the house of the Lord, * in the courts of the house of our God."
status:
la: verified
en: verified
- n: 2
text:
la: "In nóctibus extóllite manus vestras in sancta, * et benedícite Dóminum."
en: "In the nights lift up your hands to the holy places, * and bless ye the Lord."
status:
la: verified
en: verified
- n: 3
text:
la: "Benedícat te Dóminus ex Sion, * qui fecit cælum et terram."
en: "May the Lord out of Sion bless thee, * he that made heaven and earth."
status:
la: verified
en: verified