Import the Annunciation's own proper Lauds/Vespers content
Deploy / deploy (push) Successful in 1m19s

Live-verified against Divinum Officium (Monastic Tridentinum 1617),
2026-03-25 (fixed date, always winnable). Own chapter (Isa 7:14-15,
"Ecce virgo concípiet") and own versicle ("Ave, María, grátia plena")
at both hours, own Vespers responsory ("Ángelus Dómini * Nuntiávit
Maríæ," the opening of the Angelus). Lauds responsory and both hours'
hymns turn out byte-identical to Common-of-the-BVM's own already-
authored content -- reused verbatim.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc
This commit is contained in:
2026-08-26 10:18:06 -04:00
parent 9ce89c0312
commit 545c11afe1
9 changed files with 343 additions and 0 deletions
@@ -0,0 +1,21 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds
# live query, 2026-03-25 (real fixed date, always winnable). Own proper
# chapter (Isa 7:14-15, "Ecce virgo concípiet"). Lauds responsory and
# both hours' hymns turn out byte-identical to Common-of-the-BVM's own
# already-authored content, but both versicles ("Ave, María, grátia
# plena") and the Vespers responsory ("Ángelus Dómini") are genuinely
# her own, distinct from the Common's -- authored explicitly under her
# own id rather than left to fall through (resolveOfficeBundle resolves
# a whole bundle per id, not per part). Same chapter reused for Vespers
# -- no separate vespers-capitulum-<id> file authored, per vespers.ts's
# vespersCapitulumForOverride fallback.
id: lauds-capitulum-annunciation
text:
la: "Ecce virgo concípiet, et páriet fílium, et vocábitur nomen ejus Emmánuel. Butýrum et mel cómedet, ut sciat reprobáre malum, et elígere bonum."
en: "Behold a virgin shall conceive, and bear a son, and his name shall be called Emmanuel. He shall eat butter and honey, that he may know to refuse the evil, and to choose the good."
citation:
la: "Isa 7:14-15"
en: "Isa 7:14-15"
status:
la: verified
en: verified
@@ -0,0 +1,85 @@
# Reused verbatim from Common-of-the-BVM's own Lauds hymn (2026-08-26):
# live-verified byte-identical on the Annunciation's own real day
# (2026-03-25). See lauds-capitulum-annunciation.yml's header.
#
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds
# `votive=C11` live query, 2026-08 -- see lauds-capitulum-common-of-the-
# bvm.yml's header. "O gloriósa Dómina" -- the same pre-Urban VIII hymn
# text already found for the Annunciation's own proper (a separate,
# individually-imported saint, not this Common) -- a real, confirmed
# overlap between the two, not a mix-up.
id: lauds-hymn-annunciation
text:
la: >-
O gloriósa Dómina,
Excélsa super sídera:
Qui te creávit, próvide
Lactásti sacro úbere.
Quod Heva tristis ábstulit,
Tu reddis almo gérmine:
Intrent ut astra flébiles,
Cæli fenéstra facta es.
Tu Regis alti jánua,
Et porta lucis fúlgida:
Vitam datam per Vírginem,
Gentes redémptæ, pláudite.
Glória tibi Dómine,
Qui natus es de Vírgine,
Cum Patre et Sancto Spíritu,
In sempitérna sǽcula. Amen.
en: >-
O glorious lady! throned on high
Above the star-illumined sky;
Thereto ordained, thy bosom lent
To thy Creator nourishment.
Through thy sweet offspring we receive
The bliss once lost through hapless Eve;
And heaven to mortals open lies
Now thou art portal of the skies.
Thou art the door of heaven's high King,
Light's gateway fair and glistering;
Life through a Virgin is restored;
Ye ransomed nations, praise the Lord!
All honour, laud, and glory be,
O Jesu, Virgin-born, to thee;
All glory, as is ever meet,
To Father and to Paraclete. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,23 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds
# live query, 2026-03-25 -- byte-identical to Common-of-the-BVM's own
# Lauds responsory, reused verbatim. See lauds-capitulum-annunciation.yml's
# header.
id: lauds-responsory-annunciation
text:
la: |
R.br. Ave María, grátia plena, * Dóminus tecum.
℟. Ave María, grátia plena, * Dóminus tecum.
℣. Benedícta tu in muliéribus, et benedíctus fructus ventris tui.
℟. Dóminus tecum.
℣. Glória Patri, et Fílio, * et Spirítui Sancto.
℟. Ave María, grátia plena, * Dóminus tecum.
en: |
R.br. Hail Mary full of grace, * the Lord is with thee.
℟. Hail Mary full of grace, * the Lord is with thee.
℣. Blessed art thou among women, and blessed is the fruit of thy womb.
℟. The Lord is with thee.
℣. Glory be to the Father, and to the Son, * and to the Holy Ghost.
℟. Hail Mary full of grace, * the Lord is with thee.
status:
la: verified
en: verified
@@ -0,0 +1,15 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds
# live query, 2026-03-25 -- her own versicle, distinct from Common-of-
# the-BVM's own ("Diffúsa est grátia"). Same versicle as Vespers -- see
# vespers-versicle-annunciation.yml.
id: lauds-versicle-annunciation
text:
la: |
℣. Ave, María, grátia plena.
℟. Dóminus tecum.
en: |
℣. Hail, Mary, full of grace.
℟. The Lord is with thee.
status:
la: verified
en: verified
@@ -0,0 +1,138 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers
# `votive=C11` live query, 2026-08 -- "Ave maris stella," the classic
# Common-of-the-BVM Vespers hymn, genuinely distinct from the Lauds hymn
# (unlike some other categories this session where the two hours shared
# one hymn text) -- see lauds-capitulum-common-of-the-bvm.yml's header
# for the fuller gap/sourcing writeup.
# Reused verbatim from Common-of-the-BVM's own Vespers hymn (2026-08-26):
# live-verified byte-identical on the Annunciation's own real day
# (2026-03-25). See lauds-capitulum-annunciation.yml's header.
id: vespers-hymn-annunciation
text:
la: >-
Ave maris stella,
Dei Mater alma,
Atque semper Virgo,
Felix cæli porta.
Sumens illud Ave
Gabriélis ore,
Funda nos in pace,
Mutans Hevæ nomen.
Solve vincla reis,
Profer lumen cæcis,
Mala nostra pelle,
Bona cuncta posce.
Monstra te esse matrem,
Sumat per te preces,
Qui pro nobis natus,
Tulit esse tuus.
Virgo singuláris,
Inter omnes mitis,
Nos culpis solútos
Mites fac et castos.
Vitam præsta puram,
Iter para tutum,
Ut vidéntes Jesum,
Semper collætémur.
Sit laus Deo Patri,
Summo Christo decus,
Spirítui Sancto,
Tribus honor unus. Amen.
en: >-
Ave, star of ocean,
Child divine who barest,
Mother, ever-Virgin,
Heaven's portal fairest.
Taking that sweet Ave
Erst by Gabriel spoken,
Eva's name reversing,
Be of peace the token.
Break the sinners' fetters,
Light to blind restoring,
All our ills dispelling,
Every boon imploring.
Show thyself a mother
In thy supplication;
He will hear who chose thee
At his incarnation.
Maid all maids excelling,
Passing meek and lowly,
Win for sinners pardon,
Make us chaste and holy.
As we onward journey
Aid our weak endeavour,
Till we gaze on Jesus
And rejoice forever.
Father, Son, and Spirit,
Three in One confessing,
Give we equal glory
Equal praise and blessing. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,26 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers
# live query, 2026-03-25 -- her own proper responsory ("Ángelus Dómini *
# Nuntiávit Maríæ," the opening line of the Angelus), distinct from
# Common-of-the-BVM's own. No English rendering exists in the reference
# engine for this text -- own translation of this well-known, standard
# Angelus wording, marked draft. See lauds-capitulum-annunciation.yml's
# header.
id: vespers-responsory-annunciation
text:
la: |
R.br. Ángelus Dómini * Nuntiávit Maríæ.
℟. Ángelus Dómini * Nuntiávit Maríæ.
℣. Et concépit de Spíritu Sancto.
℟. Nuntiávit Maríæ.
℣. Glória Patri, et Fílio, * et Spirítui Sancto.
℟. Ángelus Dómini * Nuntiávit Maríæ.
en: |
R.br. The Angel of the Lord * declared unto Mary.
℟. The Angel of the Lord * declared unto Mary.
℣. And she conceived of the Holy Ghost.
℟. Declared unto Mary.
℣. Glory be to the Father, and to the Son, * and to the Holy Ghost.
℟. The Angel of the Lord * declared unto Mary.
status:
la: verified
en: draft
@@ -0,0 +1,14 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers
# live query, 2026-03-25 -- same versicle as Lauds (see lauds-versicle-
# annunciation.yml).
id: vespers-versicle-annunciation
text:
la: |
℣. Ave, María, grátia plena.
℟. Dóminus tecum.
en: |
℣. Hail, Mary, full of grace.
℟. The Lord is with thee.
status:
la: verified
en: verified
+11
View File
@@ -340,6 +340,17 @@ describe('resolveOrdo("lauds", ...)', () => {
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Jesu, coróna Vírginum');
});
it("resolves the Annunciation's own proper chapter, with Common-of-the-BVM's hymn", () => {
// Live-verified against Divinum Officium (Monastic Tridentinum
// 1617), 2026-03-25 (fixed date, always winnable). See lauds-
// capitulum-annunciation.yml's header.
const ordo = resolveOrdo('lauds', '2026-03-25');
const chapter = ordo.parts.find((p) => p.kind === 'chapter');
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Isa 7:14-15');
const hymn = ordo.parts.find((p) => p.kind === 'hymn');
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('O gloriósa Dómina');
});
it('includes the Kyrie + Our Father lead-in right after the Benedictus, before the day collect (either form)', () => {
const ordo = resolveOrdo('lauds', FERIAL_TUESDAY);
const litanyIndex = ordo.parts.findIndex((p) => p.kind === 'preces' && p.text.text.la?.includes('Kýrie, eléison'));
+10
View File
@@ -364,6 +364,16 @@ describe('resolveOrdo("vespers", ...)', () => {
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Láudibus cives résonent canóris');
});
it("resolves the Annunciation's own proper Vespers responsory ('Angelus Domini'), distinct from Common-of-the-BVM's own", () => {
// Live-verified against Divinum Officium (Monastic Tridentinum
// 1617), 2026-03-25. See lauds-capitulum-annunciation.yml's header.
const ordo = resolveOrdo('vespers', '2026-03-25');
const responsory = ordo.parts.find((p) => p.kind === 'responsory');
expect(responsory?.kind === 'responsory' ? responsory.text.text.la : undefined).toContain('Ángelus Dómini');
const hymn = ordo.parts.find((p) => p.kind === 'hymn');
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Ave maris stella');
});
it("renders Passiontide's seasonal office, with the Gloria Patri omitted from the responsory", () => {
// 2026-03-30 is Holy Monday (Passion Sunday 2026-03-22 through Holy
// Saturday 2026-04-04) -- deliberately not 03-25, the Annunciation's