diff --git a/src/data/propers/common/lauds-capitulum-st-gabriel-archangel.yml b/src/data/propers/common/lauds-capitulum-st-gabriel-archangel.yml index df63424..55486ce 100644 --- a/src/data/propers/common/lauds-capitulum-st-gabriel-archangel.yml +++ b/src/data/propers/common/lauds-capitulum-st-gabriel-archangel.yml @@ -1,12 +1,20 @@ -# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds -# live query, 2026-05-08, clean year. +# Was a copy-paste bug carrying Apparition of St. Michael's own capitulum +# ("Significávit Deus...") under Gabriel's id -- found in passing while +# authoring his Matins psalmody (see matins-psalmody-overrides/saints/ +# st-gabriel-archangel.yml's own header). His real capitulum, read +# directly from the reference engine's `web/www/horas/{Latin,English}/ +# Sancti/03-24.txt` (`[Capitulum Laudes]`), is proper to Gabriel +# specifically -- Daniel's own account of the angel's visitation, not +# shared with Apparition. `03-24.txt`'s whole-file default is "ex +# Sancti/05-08" but this block is one of its own explicit overrides, +# same pattern as his Matins antiphons. id: lauds-capitulum-st-gabriel-archangel text: - la: "Significávit Deus, quæ opórtet fíeri cito, loquens per Angelum suum servo suo Joánni, qui testimónium perhíbuit verbo Dei, et testimónium Jesu Christi, quæcúmque vidit." - en: "God gave unto Jesus Christ to show unto His servants the things which must shortly come to pass and He sent and signified it by His Angel unto His servant John, who bare witness of the Word of God and of the testimony of Jesus Christ, of all the things which he saw." + la: "Ecce vir Gábriel, quem víderam in visióne a princípio, cito volans tétigit me in témpore sacrifícii vespertíni. Et dócuit me, et locútus est mihi, dixítque: Dániel, nunc egréssus sum ut docérem te, et intellégeres." + en: "Behold, the man Gabriel, whom I had seen in the vision at the beginning, being caused to fly swiftly, touched me about the time of the evening oblation; and he informed me, and talked with me, and said: O Daniel, I am now come forth to give thee skill and understanding." citation: - la: "Apo 1:1-2" - en: "Rev 1:1-2" + la: "Dan 9:21-22" + en: "Dan 9:21-22" status: la: verified en: verified diff --git a/tests/hours/lauds.test.ts b/tests/hours/lauds.test.ts index 47a6ada..f0ba5bb 100644 --- a/tests/hours/lauds.test.ts +++ b/tests/hours/lauds.test.ts @@ -261,10 +261,11 @@ describe('resolveOrdo("lauds", ...)', () => { // source's own SanctiM/10-02.txt cross-references St. Michael's // Apparition (Sancti/05-08) directly for the chapter/responsory at // every hour -- real proper content, not a Common fallback. See - // lauds-capitulum-guardian-angels.yml's header. + // lauds-capitulum-guardian-angels.yml's header. St. Gabriel is NOT + // part of this group (see below) -- his own chapter is genuinely + // proper, not shared, despite sharing the same hymn. for (const [date, id] of [ ['2026-10-02', 'guardian-angels'], - ['2026-03-24', 'st-gabriel-archangel'], ['2026-10-24', 'st-raphael-archangel'], ] as const) { const ordo = resolveOrdo('lauds', date); @@ -275,6 +276,22 @@ describe('resolveOrdo("lauds", ...)', () => { } }); + it("resolves St. Gabriel's own genuinely proper chapter (Dan 9:21-22), not Apparition's", () => { + // lauds-capitulum-st-gabriel-archangel.yml previously carried + // Apparition's own capitulum ("Significávit Deus...") under + // Gabriel's id by mistake -- a copy-paste bug found while authoring + // his Matins psalmody (2026-08-28). His real Lauds/Vespers capitulum, + // read directly from Sancti/03-24.txt's own [Capitulum Laudes] + // block, is Daniel's account of the angel's visitation -- shares the + // hymn with the other Archangel feasts, but not this chapter. + const ordo = resolveOrdo('lauds', '2026-03-24'); + const chapter = ordo.parts.find((p) => p.kind === 'chapter'); + expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Dan 9:21-22'); + expect(chapter?.kind === 'chapter' ? chapter.text.text.la : undefined).toContain('Ecce vir Gábriel'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Christe sanctórum decus Angelórum'); + }); + it("uses common-of-several-confessors's real office bundle (= Confessor-Not-Bishop content) on Ss. Seven Founders' own day", () => { // Read directly from the source (Sancti/02-12.txt): its own [Rule] // says plain "vide C5" -- see lauds-capitulum-common-of-several-