Import the Annunciation's own proper Lauds/Vespers content
Deploy / deploy (push) Successful in 1m19s
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:
@@ -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
|
||||||
@@ -340,6 +340,17 @@ describe('resolveOrdo("lauds", ...)', () => {
|
|||||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Jesu, coróna Vírginum');
|
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)', () => {
|
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 ordo = resolveOrdo('lauds', FERIAL_TUESDAY);
|
||||||
const litanyIndex = ordo.parts.findIndex((p) => p.kind === 'preces' && p.text.text.la?.includes('Kýrie, eléison'));
|
const litanyIndex = ordo.parts.findIndex((p) => p.kind === 'preces' && p.text.text.la?.includes('Kýrie, eléison'));
|
||||||
|
|||||||
@@ -364,6 +364,16 @@ describe('resolveOrdo("vespers", ...)', () => {
|
|||||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Láudibus cives résonent canóris');
|
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", () => {
|
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
|
// 2026-03-30 is Holy Monday (Passion Sunday 2026-03-22 through Holy
|
||||||
// Saturday 2026-04-04) -- deliberately not 03-25, the Annunciation's
|
// Saturday 2026-04-04) -- deliberately not 03-25, the Annunciation's
|
||||||
|
|||||||
Reference in New Issue
Block a user