From 7f9a1f7c98398d0c96e492da59fbf8c072c9e844 Mon Sep 17 00:00:00 2001 From: Will Estes Date: Wed, 26 Aug 2026 08:14:05 -0400 Subject: [PATCH] Author Common-of-a-Virgin-Martyr / Common-of-a-Virgin Lauds/Vespers bundle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live-verified against Divinum Officium (Monastic Tridentinum 1617) votive=C6: chapter 2 Cor 10:17-18, hymn "Jesu, coróna Vírginum" (byte- identical Lauds/Vespers), shared versicle "Diffúsa est grátia in lábiis tuis" -- only the two responsories differ between the hours. Cross- checked plain common-of-a-virgin (St. Praxedes) renders the same real content, matching the already-existing benedictus-antiphon-common-of-a- virgin.yml precedent -- duplicated the same 7 files under that id too. Proof: St. Apollonia's own clean year (2029-02-09, her 2026 date collides with St. John of Matha) for Lauds, St. Praxedes's real First-Vespers anticipation for Vespers. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc --- TODO.md | 19 ++++ ...ds-capitulum-common-of-a-virgin-martyr.yml | 19 ++++ .../lauds-capitulum-common-of-a-virgin.yml | 27 +++++ .../lauds-hymn-common-of-a-virgin-martyr.yml | 99 +++++++++++++++++++ .../common/lauds-hymn-common-of-a-virgin.yml | 99 +++++++++++++++++++ ...s-responsory-common-of-a-virgin-martyr.yml | 22 +++++ .../lauds-responsory-common-of-a-virgin.yml | 22 +++++ ...uds-versicle-common-of-a-virgin-martyr.yml | 14 +++ .../lauds-versicle-common-of-a-virgin.yml | 14 +++ ...vespers-hymn-common-of-a-virgin-martyr.yml | 97 ++++++++++++++++++ .../vespers-hymn-common-of-a-virgin.yml | 97 ++++++++++++++++++ ...s-responsory-common-of-a-virgin-martyr.yml | 22 +++++ .../vespers-responsory-common-of-a-virgin.yml | 22 +++++ ...ers-versicle-common-of-a-virgin-martyr.yml | 14 +++ .../vespers-versicle-common-of-a-virgin.yml | 14 +++ tests/hours/lauds.test.ts | 11 +++ tests/hours/vespers.test.ts | 11 +++ 17 files changed, 623 insertions(+) create mode 100644 src/data/propers/common/lauds-capitulum-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/lauds-capitulum-common-of-a-virgin.yml create mode 100644 src/data/propers/common/lauds-hymn-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/lauds-hymn-common-of-a-virgin.yml create mode 100644 src/data/propers/common/lauds-responsory-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/lauds-responsory-common-of-a-virgin.yml create mode 100644 src/data/propers/common/lauds-versicle-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/lauds-versicle-common-of-a-virgin.yml create mode 100644 src/data/propers/common/vespers-hymn-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/vespers-hymn-common-of-a-virgin.yml create mode 100644 src/data/propers/common/vespers-responsory-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/vespers-responsory-common-of-a-virgin.yml create mode 100644 src/data/propers/common/vespers-versicle-common-of-a-virgin-martyr.yml create mode 100644 src/data/propers/common/vespers-versicle-common-of-a-virgin.yml diff --git a/TODO.md b/TODO.md index 29707e1..c1d4e9b 100644 --- a/TODO.md +++ b/TODO.md @@ -2942,6 +2942,25 @@ classis) both on his own Lauds and via his real First-Vespers anticipation (Jan `npm test` (486 tests), `tsc --noEmit` both pass. **Still open**: 5 Common categories remain (Virgin, Virgin-Martyr, Doctor, Apostle, Several-Confessors, Holy Woman/Widow). +### Common-of-a-Virgin-Martyr / Common-of-a-Virgin Lauds/Vespers bundle authored (2026-08-26) + +Same fix pattern, another genuinely-distinct category (unlike Confessor/Abbot, this one has its +own real content, not disguised Confessor-Not-Bishop). Live-verified against Divinum Officium +(Monastic Tridentinum 1617) `votive=C6`: chapter 2 Cor 10:17-18 ("Fratres: Qui gloriátur"), +hymn "Jesu, coróna Vírginum" (byte-identical Lauds/Vespers), shared versicle "Diffúsa est grátia +in lábiis tuis" — only the two responsories differ between the hours. Cross-checked plain +`common-of-a-virgin` (St. Praxedes) renders the identical content, matching TODO.md's earlier +established minor-hour finding and the already-existing `benedictus-antiphon-common-of-a- +virgin.yml` precedent — duplicated the same 7 files under that id too. + +Proof: St. Apollonia's own clean year (2029-02-09 — her actual 2026 date collides, St. John of +Matha wins outright that year) for Lauds, St. Praxedes's real First-Vespers anticipation +(Jul 20 → 21) for Vespers. + +`npm test` (488 tests), `tsc --noEmit` both pass. **Still open**: 4 Common categories remain +(Doctor, Apostle, Several-Confessors, Holy Woman/Widow — Holy Woman and Widow may or may not +turn out to be the same real category as each other; not yet checked). + ## Known, deliberate simplifications (not bugs — working as designed) - `getDayCollects`: each collect in a multi-collect day renders as its own diff --git a/src/data/propers/common/lauds-capitulum-common-of-a-virgin-martyr.yml b/src/data/propers/common/lauds-capitulum-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..f85c06e --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-common-of-a-virgin-martyr.yml @@ -0,0 +1,19 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- same votive-office-view reasoning as +# vespers-hymn-common-of-a-martyr-bishop.yml's header (real saints in +# this category have their evening/Lauds contaminated by neighboring +# days' anticipation or their own fame — Ss. Agatha/Agnes/Cecilia/Lucy +# all have real proper content of their own — so the votive view gets a +# clean, unambiguous read of the category's real content). Same chapter +# reused for Vespers -- no separate vespers-capitulum- file +# authored, per vespers.ts's vespersCapitulumForOverride fallback. +id: lauds-capitulum-common-of-a-virgin-martyr +text: + la: "Fratres: Qui gloriátur, in Dómino gloriétur. Non enim qui seípsum comméndat, ille probátus est; sed quem Deus comméndat." + en: "Brothers: But he that glorieth, let him glory in the Lord. For not he who commendeth himself, is approved, but he, whom God commendeth." +citation: + la: "2 Cor 10:17-18" + en: "2 Cor 10:17-18" +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-capitulum-common-of-a-virgin.yml b/src/data/propers/common/lauds-capitulum-common-of-a-virgin.yml new file mode 100644 index 0000000..7acd248 --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-common-of-a-virgin.yml @@ -0,0 +1,27 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- same votive-office-view reasoning as +# vespers-hymn-common-of-a-martyr-bishop.yml's header (real saints in +# this category have their evening/Lauds contaminated by neighboring +# days' anticipation or their own fame — Ss. Agatha/Agnes/Cecilia/Lucy +# all have real proper content of their own — so the votive view gets a +# clean, unambiguous read of the category's real content). Same chapter +# reused for Vespers -- no separate vespers-capitulum- file +# authored, per vespers.ts's vespersCapitulumForOverride fallback. +# +# Duplicated verbatim under this plain `common-of-a-virgin` id (2026-08-26): +# live-verified (St. Praxedes, Jul 21) that this content is real and +# byte-identical to Common-of-a-Virgin-Martyr's own -- matches TODO.md's +# earlier established finding for the minor-hour Common (the already- +# authored `benedictus-antiphon-common-of-a-virgin.yml` reflects the same +# fact). Duplicated rather than an alias redirect for the same no-alias- +# mechanism reason recorded in lauds-capitulum-common-of-a-confessor.yml. +id: lauds-capitulum-common-of-a-virgin +text: + la: "Fratres: Qui gloriátur, in Dómino gloriétur. Non enim qui seípsum comméndat, ille probátus est; sed quem Deus comméndat." + en: "Brothers: But he that glorieth, let him glory in the Lord. For not he who commendeth himself, is approved, but he, whom God commendeth." +citation: + la: "2 Cor 10:17-18" + en: "2 Cor 10:17-18" +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-hymn-common-of-a-virgin-martyr.yml b/src/data/propers/common/lauds-hymn-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..614041a --- /dev/null +++ b/src/data/propers/common/lauds-hymn-common-of-a-virgin-martyr.yml @@ -0,0 +1,99 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- see lauds-capitulum-common-of-a- +# virgin-martyr.yml's header for why the votive-office view was used. +# "Jesu, coróna Vírginum" -- the classic Common-of-Virgins Lauds/Vespers +# hymn (same text both hours here), a single genuine recension found in +# the reference engine. +id: lauds-hymn-common-of-a-virgin-martyr +text: + la: >- + Jesu, coróna Vírginum, + + Quem Mater illa cóncipit + + Quæ sola Virgo párturit, + + Hæc vota clemens áccipe: + + + Qui pascis inter lília + + Septus choréis Vírginum, + + Sponsus decórus glória + + Sponsísque reddens prǽmia. + + + Quocúmque pergis, Vírgines + + Sequúntur, atque láudibus + + Post te canéntes cúrsitant, + + Hymnósque dulces pérsonant; + + + Te deprecámur lárgius, + + Nostris adáuge sénsibus + + Nescíre prorsus ómnia + + Corruptiónis vúlnera. + + + Laus, honor, virtus, glória + + Deo Patri et Fílio, + + Sancto simul Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Jesu, the virgins' crown, do thou + + Accept us as in prayer we bow; + + Born of that Virgin, whom alone + + The mother and the maid we own. + + + Amongst the lilies thou dost feed, + + By virgin choirs accompanied; + + With glory decked, the spotless brides + + Whose bridal gifts thy love provides. + + + They, wheresoe'er thy footsteps bend, + + With hymns and praises still attend: + + In blessèd troops they follow thee, + + With dance, and song, and melody. + + + We pray thee therefore to bestow + + Upon our senses here below + + Thy grace, that so we may endure + + From taint of all corruption pure. + + + All laud to God the Father be, + + All praise, eternal Son, to thee; + + All glory as is ever meet, + + To God, the holy Paraclete. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-hymn-common-of-a-virgin.yml b/src/data/propers/common/lauds-hymn-common-of-a-virgin.yml new file mode 100644 index 0000000..106970b --- /dev/null +++ b/src/data/propers/common/lauds-hymn-common-of-a-virgin.yml @@ -0,0 +1,99 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- see lauds-capitulum-common-of-a- +# virgin-martyr.yml's header for why the votive-office view was used. +# "Jesu, coróna Vírginum" -- the classic Common-of-Virgins Lauds/Vespers +# hymn (same text both hours here), a single genuine recension found in +# the reference engine. +id: lauds-hymn-common-of-a-virgin +text: + la: >- + Jesu, coróna Vírginum, + + Quem Mater illa cóncipit + + Quæ sola Virgo párturit, + + Hæc vota clemens áccipe: + + + Qui pascis inter lília + + Septus choréis Vírginum, + + Sponsus decórus glória + + Sponsísque reddens prǽmia. + + + Quocúmque pergis, Vírgines + + Sequúntur, atque láudibus + + Post te canéntes cúrsitant, + + Hymnósque dulces pérsonant; + + + Te deprecámur lárgius, + + Nostris adáuge sénsibus + + Nescíre prorsus ómnia + + Corruptiónis vúlnera. + + + Laus, honor, virtus, glória + + Deo Patri et Fílio, + + Sancto simul Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Jesu, the virgins' crown, do thou + + Accept us as in prayer we bow; + + Born of that Virgin, whom alone + + The mother and the maid we own. + + + Amongst the lilies thou dost feed, + + By virgin choirs accompanied; + + With glory decked, the spotless brides + + Whose bridal gifts thy love provides. + + + They, wheresoe'er thy footsteps bend, + + With hymns and praises still attend: + + In blessèd troops they follow thee, + + With dance, and song, and melody. + + + We pray thee therefore to bestow + + Upon our senses here below + + Thy grace, that so we may endure + + From taint of all corruption pure. + + + All laud to God the Father be, + + All praise, eternal Son, to thee; + + All glory as is ever meet, + + To God, the holy Paraclete. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-responsory-common-of-a-virgin-martyr.yml b/src/data/propers/common/lauds-responsory-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..f0b9612 --- /dev/null +++ b/src/data/propers/common/lauds-responsory-common-of-a-virgin-martyr.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- see lauds-capitulum-common-of-a- +# virgin-martyr.yml's header for why the votive-office view was used. +id: lauds-responsory-common-of-a-virgin-martyr +text: + la: | + R.br. Spécie tua * Et pulchritúdine tua. + ℟. Spécie tua * Et pulchritúdine tua. + ℣. Inténde, próspere procéde, et regna. + ℟. Et pulchritúdine tua. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Spécie tua * Et pulchritúdine tua. + en: | + R.br. In thy comeliness * and in thy beauty. + ℟. In thy comeliness * and in thy beauty. + ℣. Go forward, fare prosperously, and reign. + ℟. In thy beauty. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. In thy comeliness * and in thy beauty. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-responsory-common-of-a-virgin.yml b/src/data/propers/common/lauds-responsory-common-of-a-virgin.yml new file mode 100644 index 0000000..2c799d3 --- /dev/null +++ b/src/data/propers/common/lauds-responsory-common-of-a-virgin.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- see lauds-capitulum-common-of-a- +# virgin-martyr.yml's header for why the votive-office view was used. +id: lauds-responsory-common-of-a-virgin +text: + la: | + R.br. Spécie tua * Et pulchritúdine tua. + ℟. Spécie tua * Et pulchritúdine tua. + ℣. Inténde, próspere procéde, et regna. + ℟. Et pulchritúdine tua. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Spécie tua * Et pulchritúdine tua. + en: | + R.br. In thy comeliness * and in thy beauty. + ℟. In thy comeliness * and in thy beauty. + ℣. Go forward, fare prosperously, and reign. + ℟. In thy beauty. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. In thy comeliness * and in thy beauty. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-common-of-a-virgin-martyr.yml b/src/data/propers/common/lauds-versicle-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..925e87c --- /dev/null +++ b/src/data/propers/common/lauds-versicle-common-of-a-virgin-martyr.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- same versicle as Vespers -- see +# vespers-versicle-common-of-a-virgin-martyr.yml's header. +id: lauds-versicle-common-of-a-virgin-martyr +text: + la: | + ℣. Diffúsa est grátia in lábiis tuis. + ℟. Proptérea benedíxit te Deus in ætérnum. + en: | + ℣. Grace is poured into thy lips. + ℟. Therefore God hath blessed thee for ever. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-common-of-a-virgin.yml b/src/data/propers/common/lauds-versicle-common-of-a-virgin.yml new file mode 100644 index 0000000..e2581c9 --- /dev/null +++ b/src/data/propers/common/lauds-versicle-common-of-a-virgin.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# `votive=C6` live query, 2026-08 -- same versicle as Vespers -- see +# vespers-versicle-common-of-a-virgin.yml's header. +id: lauds-versicle-common-of-a-virgin +text: + la: | + ℣. Diffúsa est grátia in lábiis tuis. + ℟. Proptérea benedíxit te Deus in ætérnum. + en: | + ℣. Grace is poured into thy lips. + ℟. Therefore God hath blessed thee for ever. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-common-of-a-virgin-martyr.yml b/src/data/propers/common/vespers-hymn-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..48f02fc --- /dev/null +++ b/src/data/propers/common/vespers-hymn-common-of-a-virgin-martyr.yml @@ -0,0 +1,97 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# `votive=C6` live query, 2026-08 -- byte-identical to the Lauds hymn +# ("Jesu, coróna Vírginum") -- see lauds-capitulum-common-of-a-virgin- +# martyr.yml's header for the fuller gap/sourcing writeup. +id: vespers-hymn-common-of-a-virgin-martyr +text: + la: >- + Jesu, coróna Vírginum, + + Quem Mater illa cóncipit + + Quæ sola Virgo párturit, + + Hæc vota clemens áccipe: + + + Qui pascis inter lília + + Septus choréis Vírginum, + + Sponsus decórus glória + + Sponsísque reddens prǽmia. + + + Quocúmque pergis, Vírgines + + Sequúntur, atque láudibus + + Post te canéntes cúrsitant, + + Hymnósque dulces pérsonant; + + + Te deprecámur lárgius, + + Nostris adáuge sénsibus + + Nescíre prorsus ómnia + + Corruptiónis vúlnera. + + + Laus, honor, virtus, glória + + Deo Patri et Fílio, + + Sancto simul Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Jesu, the virgins' crown, do thou + + Accept us as in prayer we bow; + + Born of that Virgin, whom alone + + The mother and the maid we own. + + + Amongst the lilies thou dost feed, + + By virgin choirs accompanied; + + With glory decked, the spotless brides + + Whose bridal gifts thy love provides. + + + They, wheresoe'er thy footsteps bend, + + With hymns and praises still attend: + + In blessèd troops they follow thee, + + With dance, and song, and melody. + + + We pray thee therefore to bestow + + Upon our senses here below + + Thy grace, that so we may endure + + From taint of all corruption pure. + + + All laud to God the Father be, + + All praise, eternal Son, to thee; + + All glory as is ever meet, + + To God, the holy Paraclete. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-common-of-a-virgin.yml b/src/data/propers/common/vespers-hymn-common-of-a-virgin.yml new file mode 100644 index 0000000..cd8ce33 --- /dev/null +++ b/src/data/propers/common/vespers-hymn-common-of-a-virgin.yml @@ -0,0 +1,97 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# `votive=C6` live query, 2026-08 -- byte-identical to the Lauds hymn +# ("Jesu, coróna Vírginum") -- see lauds-capitulum-common-of-a-virgin- +# martyr.yml's header for the fuller gap/sourcing writeup. +id: vespers-hymn-common-of-a-virgin +text: + la: >- + Jesu, coróna Vírginum, + + Quem Mater illa cóncipit + + Quæ sola Virgo párturit, + + Hæc vota clemens áccipe: + + + Qui pascis inter lília + + Septus choréis Vírginum, + + Sponsus decórus glória + + Sponsísque reddens prǽmia. + + + Quocúmque pergis, Vírgines + + Sequúntur, atque láudibus + + Post te canéntes cúrsitant, + + Hymnósque dulces pérsonant; + + + Te deprecámur lárgius, + + Nostris adáuge sénsibus + + Nescíre prorsus ómnia + + Corruptiónis vúlnera. + + + Laus, honor, virtus, glória + + Deo Patri et Fílio, + + Sancto simul Paráclito, + + In sæculórum sǽcula. Amen. + en: >- + Jesu, the virgins' crown, do thou + + Accept us as in prayer we bow; + + Born of that Virgin, whom alone + + The mother and the maid we own. + + + Amongst the lilies thou dost feed, + + By virgin choirs accompanied; + + With glory decked, the spotless brides + + Whose bridal gifts thy love provides. + + + They, wheresoe'er thy footsteps bend, + + With hymns and praises still attend: + + In blessèd troops they follow thee, + + With dance, and song, and melody. + + + We pray thee therefore to bestow + + Upon our senses here below + + Thy grace, that so we may endure + + From taint of all corruption pure. + + + All laud to God the Father be, + + All praise, eternal Son, to thee; + + All glory as is ever meet, + + To God, the holy Paraclete. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-responsory-common-of-a-virgin-martyr.yml b/src/data/propers/common/vespers-responsory-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..83ae267 --- /dev/null +++ b/src/data/propers/common/vespers-responsory-common-of-a-virgin-martyr.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# `votive=C6` live query, 2026-08 -- see lauds-capitulum-common-of-a- +# virgin-martyr.yml's header for why the votive-office view was used. +id: vespers-responsory-common-of-a-virgin-martyr +text: + la: | + R.br. Adjuvábit eam * Deus vultu suo. + ℟. Adjuvábit eam * Deus vultu suo. + ℣. Deus in médio ejus, non commovébitur. + ℟. Deus vultu suo. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Adjuvábit eam * Deus vultu suo. + en: | + R.br. God shall help her * with His countenance. + ℟. God shall help her * with His countenance. + ℣. God is in the midst of her, she shall not be moved. + ℟. With His countenance. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. God shall help her * with His countenance. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-responsory-common-of-a-virgin.yml b/src/data/propers/common/vespers-responsory-common-of-a-virgin.yml new file mode 100644 index 0000000..e22a17f --- /dev/null +++ b/src/data/propers/common/vespers-responsory-common-of-a-virgin.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# `votive=C6` live query, 2026-08 -- see lauds-capitulum-common-of-a- +# virgin-martyr.yml's header for why the votive-office view was used. +id: vespers-responsory-common-of-a-virgin +text: + la: | + R.br. Adjuvábit eam * Deus vultu suo. + ℟. Adjuvábit eam * Deus vultu suo. + ℣. Deus in médio ejus, non commovébitur. + ℟. Deus vultu suo. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Adjuvábit eam * Deus vultu suo. + en: | + R.br. God shall help her * with His countenance. + ℟. God shall help her * with His countenance. + ℣. God is in the midst of her, she shall not be moved. + ℟. With His countenance. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. God shall help her * with His countenance. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-versicle-common-of-a-virgin-martyr.yml b/src/data/propers/common/vespers-versicle-common-of-a-virgin-martyr.yml new file mode 100644 index 0000000..d95f62f --- /dev/null +++ b/src/data/propers/common/vespers-versicle-common-of-a-virgin-martyr.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# `votive=C6` live query, 2026-08 -- same versicle as Lauds (see lauds- +# versicle-common-of-a-virgin-martyr.yml). +id: vespers-versicle-common-of-a-virgin-martyr +text: + la: | + ℣. Diffúsa est grátia in lábiis tuis. + ℟. Proptérea benedíxit te Deus in ætérnum. + en: | + ℣. Grace is poured into thy lips. + ℟. Therefore God hath blessed thee for ever. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-versicle-common-of-a-virgin.yml b/src/data/propers/common/vespers-versicle-common-of-a-virgin.yml new file mode 100644 index 0000000..d914faf --- /dev/null +++ b/src/data/propers/common/vespers-versicle-common-of-a-virgin.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# `votive=C6` live query, 2026-08 -- same versicle as Lauds (see lauds- +# versicle-common-of-a-virgin.yml). +id: vespers-versicle-common-of-a-virgin +text: + la: | + ℣. Diffúsa est grátia in lábiis tuis. + ℟. Proptérea benedíxit te Deus in ætérnum. + en: | + ℣. Grace is poured into thy lips. + ℟. Therefore God hath blessed thee for ever. +status: + la: verified + en: verified diff --git a/tests/hours/lauds.test.ts b/tests/hours/lauds.test.ts index c4d458e..6aad256 100644 --- a/tests/hours/lauds.test.ts +++ b/tests/hours/lauds.test.ts @@ -201,6 +201,17 @@ describe('resolveOrdo("lauds", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Jesu coróna célsior'); }); + it("uses common-of-a-virgin-martyr's real office bundle on St. Apollonia's own clean day, not the ferial default", () => { + // 2026-02-09 collides (St. John of Matha wins outright, Apollonia + // merely commemorated), so this uses her own already-verified clean + // year (2029-02-09, per her saint file's own comment). + const ordo = resolveOrdo('lauds', '2029-02-09'); + const chapter = ordo.parts.find((p) => p.kind === 'chapter'); + expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('2 Cor 10:17-18'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Jesu, coróna Vírginum'); + }); + 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')); diff --git a/tests/hours/vespers.test.ts b/tests/hours/vespers.test.ts index 521d750..3efe7ce 100644 --- a/tests/hours/vespers.test.ts +++ b/tests/hours/vespers.test.ts @@ -288,6 +288,17 @@ describe('resolveOrdo("vespers", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Iste Conféssor Dómini sacrátus'); }); + it("uses common-of-a-virgin(-martyr)'s real office bundle for St. Praxedes's First Vespers, not the ferial default", () => { + // St. Praxedes (Jul 21, Simplex, plain common-of-a-virgin -- see + // lauds-capitulum-common-of-a-virgin.yml's header) claims First + // Vespers over Jul 20's own evening. + const ordo = resolveOrdo('vespers', '2026-07-20'); + const chapter = ordo.parts.find((p) => p.kind === 'chapter'); + expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('2 Cor 10:17-18'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Jesu, coróna Vírginum'); + }); + it("renders Passiontide's seasonal office, with the Gloria Patri omitted from the responsory", () => { // 2026-03-25 is a Wednesday in Passiontide (Passion Sunday 2026-03-22 // through Holy Saturday 2026-04-04).