From 3ca59bb3704dd1c813897012eca3b0278ebee169 Mon Sep 17 00:00:00 2001 From: Will Estes Date: Wed, 26 Aug 2026 10:04:56 -0400 Subject: [PATCH] Import St. Benedict's own proper Lauds/Vespers content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live-verified against Divinum Officium (Monastic Tridentinum 1617), 2033-03-21 (clean year), cross-checked directly against the source's own Monastic-specific file (SanctiM/03-21.txt), which carries a full proper office for his Transitus despite the plain secular Sancti file having none. Own chapter (Eccli 50:6-7, "Ecce Confessor magnus") and own hymns at both hours ("Inter ætérnas súperum corónas" Lauds, "Láudibus cives résonent canóris" Vespers, recounting Subiaco and the founding of Monte Cassino). Lauds responsory/versicle and Vespers versicle turn out byte-identical to Common-of-a-Confessor-Bishop's own -- authored explicitly under his own id rather than left to fall through, since his actual common (common-of-an-abbot) resolves to a different Confessor- Not-Bishop responsory that would be wrong here. Vespers has its own proper responsory invoking him by name ("Sancte Pater Benedícte"). Neither hymn (nor the chapter) has an English rendering in the reference engine -- own translations, marked draft. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc --- .../common/lauds-capitulum-st-benedict.yml | 21 ++++ .../propers/common/lauds-hymn-st-benedict.yml | 98 +++++++++++++++ .../common/lauds-responsory-st-benedict.yml | 26 ++++ .../common/lauds-versicle-st-benedict.yml | 15 +++ .../common/vespers-hymn-st-benedict.yml | 118 ++++++++++++++++++ .../common/vespers-responsory-st-benedict.yml | 24 ++++ .../common/vespers-versicle-st-benedict.yml | 14 +++ tests/hours/lauds.test.ts | 13 ++ tests/hours/vespers.test.ts | 11 ++ 9 files changed, 340 insertions(+) create mode 100644 src/data/propers/common/lauds-capitulum-st-benedict.yml create mode 100644 src/data/propers/common/lauds-hymn-st-benedict.yml create mode 100644 src/data/propers/common/lauds-responsory-st-benedict.yml create mode 100644 src/data/propers/common/lauds-versicle-st-benedict.yml create mode 100644 src/data/propers/common/vespers-hymn-st-benedict.yml create mode 100644 src/data/propers/common/vespers-responsory-st-benedict.yml create mode 100644 src/data/propers/common/vespers-versicle-st-benedict.yml diff --git a/src/data/propers/common/lauds-capitulum-st-benedict.yml b/src/data/propers/common/lauds-capitulum-st-benedict.yml new file mode 100644 index 0000000..a31babe --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-st-benedict.yml @@ -0,0 +1,21 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 (clean year, per st-benedict.yml's own comment) +# -- also cross-checked directly against the source's own Monastic- +# specific file (SanctiM/03-21.txt), which carries a full proper office +# for his Transitus despite the plain secular Sancti file having none. +# Own real proper chapter and own hymns at both hours; Lauds responsory +# and both hours' versicle turn out byte-identical to Common-of-a- +# Confessor-Bishop's own (reused, not duplicated separately here since +# Vespers has its own distinct responsory -- see vespers-responsory-st- +# benedict.yml). No English rendering exists in the reference engine for +# this chapter or either hymn -- own translations, marked draft. +id: lauds-capitulum-st-benedict +text: + la: "Ecce Conféssor magnus, quasi stella matutína in médio nébulæ, et quasi luna plena, in diébus suis lucet. Et quasi sol refúlgens, sic ille effúlsit in templo Dei." + en: "Behold a great confessor, like the morning star amid a cloud, and like the full moon shining in his days; and like the sun in its brightness, so did he shine in the temple of God." +citation: + la: "Eccli 50:6-7" + en: "Sir 50:6-7" +status: + la: verified + en: draft diff --git a/src/data/propers/common/lauds-hymn-st-benedict.yml b/src/data/propers/common/lauds-hymn-st-benedict.yml new file mode 100644 index 0000000..441e52b --- /dev/null +++ b/src/data/propers/common/lauds-hymn-st-benedict.yml @@ -0,0 +1,98 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 -- "Inter ætérnas súperum corónas," own proper +# Sapphic hymn. No English rendering exists in the reference engine -- +# own original translation, marked draft. See lauds-capitulum-st- +# benedict.yml's header. +id: lauds-hymn-st-benedict +text: + la: >- + Inter ætérnas súperum corónas, + + Quas sacro partas rétinent agóne, + + Emicas celsis méritis corúscus, + + O Benedícte! + + + Sancta te compsit púerum senéctus, + + Nil sibi de te rápuit volúptas, + + Aruit mundi tibi flos, ad alta + + Mente leváto. + + + Hinc fuga lapsus, pátriam, paréntes + + Déseris, fervens némorum colónus; + + Edomas carnem, subigísque Christo + + Tortor acérbus. + + + Ne diu tutus látebras fovéres, + + Digna te produnt óperum piórum; + + Spárgitur felix céleri per orbem + + Fama volátu. + + + Glória Patri genitǽque Proli, + + Et tibi compar utriúsque semper, + + Spíritus alme, Deus unus, omni + + Témpore sæcli. Amen. + en: >- + Among the eternal crowns of the blessed, + + Won and held fast through holy contest, + + You shine forth radiant with lofty merits, + + O Benedict! + + + A holy old age adorned you while a boy still, + + No pleasure ever seized its share of you, + + The world's flower withered for you, your mind + + Already lifted on high. + + + Hence, fleeing ruin, your homeland and parents + + You leave, an ardent dweller of the forest; + + You tame the flesh, and, its harsh tormentor, + + Subdue it wholly to Christ. + + + Lest you too long keep safe your hidden refuge, + + Worthy deeds of holiness reveal you; + + Your happy fame is scattered through the whole world + + Borne on swift wing. + + + Glory to the Father and the begotten Son, + + And, ever equal to them both, to you, + + Kindly Spirit, one God, through every + + Age of the world. Amen. +status: + la: verified + en: draft diff --git a/src/data/propers/common/lauds-responsory-st-benedict.yml b/src/data/propers/common/lauds-responsory-st-benedict.yml new file mode 100644 index 0000000..d4de22b --- /dev/null +++ b/src/data/propers/common/lauds-responsory-st-benedict.yml @@ -0,0 +1,26 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 -- byte-identical to Common-of-a-Confessor- +# Bishop's own Lauds responsory ("Amávit eum Dóminus"), NOT his own +# `common: common-of-an-abbot` (which resolves to Confessor-Not-Bishop's +# different "Os justi" responsory -- would be wrong here) -- authored +# explicitly under his own id for that reason, not left to fall through. +# See lauds-capitulum-st-benedict.yml's header. +id: lauds-responsory-st-benedict +text: + la: | + R.br. Amávit eum Dóminus, * Et ornávit eum. + ℟. Amávit eum Dóminus, * Et ornávit eum. + ℣. Stolam glóriæ índuit eum. + ℟. Et ornávit eum. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Amávit eum Dóminus, * Et ornávit eum. + en: | + R.br. The Lord loved him, * and beautified him. + ℟. The Lord loved him, * and beautified him. + ℣. He clothed him with a robe of glory. + ℟. And beautified him. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. The Lord loved him, * and beautified him. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-st-benedict.yml b/src/data/propers/common/lauds-versicle-st-benedict.yml new file mode 100644 index 0000000..7aa4d25 --- /dev/null +++ b/src/data/propers/common/lauds-versicle-st-benedict.yml @@ -0,0 +1,15 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2033-03-21 -- byte-identical to Common-of-a-Confessor- +# Bishop's own versicle, authored explicitly for the same reason as +# lauds-responsory-st-benedict.yml. Same versicle as Vespers. +id: lauds-versicle-st-benedict +text: + la: | + ℣. Justum dedúxit Dóminus per vias rectas. + ℟. Et osténdit illi regnum Dei. + en: | + ℣. The Lord guided the just in right paths. + ℟. And showed him the kingdom of God. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-st-benedict.yml b/src/data/propers/common/vespers-hymn-st-benedict.yml new file mode 100644 index 0000000..0776ef5 --- /dev/null +++ b/src/data/propers/common/vespers-hymn-st-benedict.yml @@ -0,0 +1,118 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2033-03-21 -- "Láudibus cives résonent canóris," own +# proper Sapphic hymn recounting his flight to solitude at Subiaco, +# conquering temptation, and destroying the shrine to Apollo/Venus at +# Monte Cassino to found his own monastery there. No English rendering +# exists in the reference engine -- own original translation, marked +# draft. See lauds-capitulum-st-benedict.yml's header. +id: vespers-hymn-st-benedict +text: + la: >- + Láudibus cives résonent canóris, + + Templa solémnes moduléntur hymnos: + + Hac die summi Benedíctus arcem + + Scandit olýmpi. + + + Ille floréntes peragébat annos, + + Cum puer dulcis pátriæ penátes + + Liquit, et solus látuit silénti + + Cónditus antro. + + + Inter urtícas rigidósque sentes + + Vicit altrícem scélerum juvéntam: + + Inde consrípsit documénta vitæ + + Pulchra beátæ. + + + Æream turpis Clárii figúram, + + Et nemus stravit Véneri dicátum, + + Atque Baptístæ pósuit sacráto + + Monte sacéllum. + + + Jam que felíci résidens olympo, + + Inter ardéntes Séraphim catévas + + Spectat, et dulci réficit cliéntum + + Corda liquóre. + + + Glória Patri, Genitǽque Proli + + Et tibi, compar utriúsque semper + + Spíritus alme, Deus unus, omni + + Témpore sæcli. Amen. + en: >- + Let the citizens of heaven sound their tuneful praises, + + Let the temples chant their solemn hymns: + + On this day Benedict scales the heights + + Of highest heaven. + + + He was passing through his flowering years, + + When as a boy he left the sweet hearth + + Of his homeland, and lay hidden alone, + + Concealed in a silent cave. + + + Among nettles and unyielding briars + + He conquered youth, the nurse of every vice: + + From there he set down the beautiful precepts + + Of the blessed life. + + + The bronze image of shameful Apollo, + + And the grove given over to Venus, he cast down, + + And on that sacred mountain he raised + + A shrine to the Baptist. + + + And now, dwelling on happy Olympus, + + Amid the burning ranks of the Seraphim, + + He watches, and with sweet nectar refreshes + + The hearts of his own. + + + Glory to the Father, and to the begotten Son, + + And, ever equal to them both, to you, + + Kindly Spirit, one God, through every + + Age of the world. Amen. +status: + la: verified + en: draft diff --git a/src/data/propers/common/vespers-responsory-st-benedict.yml b/src/data/propers/common/vespers-responsory-st-benedict.yml new file mode 100644 index 0000000..aee44ac --- /dev/null +++ b/src/data/propers/common/vespers-responsory-st-benedict.yml @@ -0,0 +1,24 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2033-03-21, cross-checked directly against the source's +# own SanctiM/03-21.txt ([Responsory Vespera]) -- his own proper +# responsory, invoking him directly by name ("Sancte Pater Benedícte"). +# See lauds-capitulum-st-benedict.yml's header. +id: vespers-responsory-st-benedict +text: + la: | + R.br. Sancte Pater Benedícte, * Intercéde pro nobis. + ℟. Sancte Pater Benedícte, * Intercéde pro nobis. + ℣. Ut digni efficiámur promissiónibus Christi. + ℟. Intercéde pro nobis. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Sancte Pater Benedícte, * Intercéde pro nobis. + en: | + R.br. Holy Father Benedict, * intercede for us. + ℟. Holy Father Benedict, * intercede for us. + ℣. That we may be made worthy of the promises of Christ. + ℟. Intercede for us. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. Holy Father Benedict, * intercede for us. +status: + la: verified + en: draft diff --git a/src/data/propers/common/vespers-versicle-st-benedict.yml b/src/data/propers/common/vespers-versicle-st-benedict.yml new file mode 100644 index 0000000..6bc8dde --- /dev/null +++ b/src/data/propers/common/vespers-versicle-st-benedict.yml @@ -0,0 +1,14 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2033-03-21 -- same versicle as Lauds (see lauds-versicle- +# st-benedict.yml). +id: vespers-versicle-st-benedict +text: + la: | + ℣. Justum dedúxit Dóminus per vias rectas. + ℟. Et osténdit illi regnum Dei. + en: | + ℣. The Lord guided the just in right paths. + ℟. And showed him the kingdom of God. +status: + la: verified + en: verified diff --git a/tests/hours/lauds.test.ts b/tests/hours/lauds.test.ts index 5b50625..20aa597 100644 --- a/tests/hours/lauds.test.ts +++ b/tests/hours/lauds.test.ts @@ -300,6 +300,19 @@ describe('resolveOrdo("lauds", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Mella cor obdulcántia'); }); + it("resolves St. Benedict's own proper chapter/hymn, with the Confessor-Bishop responsory/versicle (not his own common-of-an-abbot's)", () => { + // Live-verified against Divinum Officium (Monastic Tridentinum + // 1617), 2033-03-21 (clean year), cross-checked against SanctiM/ + // 03-21.txt directly. See lauds-capitulum-st-benedict.yml's header. + const ordo = resolveOrdo('lauds', '2033-03-21'); + const chapter = ordo.parts.find((p) => p.kind === 'chapter'); + expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Sir 50:6-7'); + const responsory = ordo.parts.find((p) => p.kind === 'responsory'); + expect(responsory?.kind === 'responsory' ? responsory.text.text.la : undefined).toContain('Amávit eum Dóminus'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Inter ætérnas súperum corónas'); + }); + 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 386abda..91eb174 100644 --- a/tests/hours/vespers.test.ts +++ b/tests/hours/vespers.test.ts @@ -353,6 +353,17 @@ describe('resolveOrdo("vespers", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Anglórum jam Apóstolus'); }); + it("resolves St. Benedict's own proper Vespers responsory/hymn", () => { + // Live-verified against Divinum Officium (Monastic Tridentinum + // 1617), 2033-03-21, cross-checked against SanctiM/03-21.txt's own + // [Responsory Vespera]. See lauds-capitulum-st-benedict.yml's header. + const ordo = resolveOrdo('vespers', '2033-03-21'); + const responsory = ordo.parts.find((p) => p.kind === 'responsory'); + expect(responsory?.kind === 'responsory' ? responsory.text.text.la : undefined).toContain('Sancte Pater Benedícte'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Láudibus cives résonent canóris'); + }); + 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