Fix St. Gabriel's Lauds/Vespers capitulum copy-paste bug
Deploy / deploy (push) Successful in 1m31s

lauds-capitulum-st-gabriel-archangel.yml carried Apparition of St.
Michael's own capitulum ("Significávit Deus...") under Gabriel's id --
found in passing while authoring his Matins psalmody. His real
capitulum, read directly from the reference engine's Sancti/03-24.txt
([Capitulum Laudes]), is Daniel's own account of the angel's visitation
(Dan 9:21-22), genuinely proper to Gabriel, not shared with Apparition
despite sharing the same hymn. No separate vespers-capitulum file exists
for this id, so the fix covers both hours via vespersCapitulumForOverride.

Updated tests/hours/lauds.test.ts: removed Gabriel from the shared-
chapter assertion loop (Guardian Angels/Raphael still legitimately share
Apparition's chapter, confirmed via their own saint files' explicit
source cross-references) and added a dedicated test for his own chapter.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PhysogLP9eCeKS7JEwRi6y
This commit is contained in:
2026-08-28 04:31:47 -04:00
parent 0725019e67
commit 87d28a14bd
2 changed files with 33 additions and 8 deletions
@@ -1,12 +1,20 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds # Was a copy-paste bug carrying Apparition of St. Michael's own capitulum
# live query, 2026-05-08, clean year. # ("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 id: lauds-capitulum-st-gabriel-archangel
text: 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." 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: "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." 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: citation:
la: "Apo 1:1-2" la: "Dan 9:21-22"
en: "Rev 1:1-2" en: "Dan 9:21-22"
status: status:
la: verified la: verified
en: verified en: verified
+19 -2
View File
@@ -261,10 +261,11 @@ describe('resolveOrdo("lauds", ...)', () => {
// source's own SanctiM/10-02.txt cross-references St. Michael's // source's own SanctiM/10-02.txt cross-references St. Michael's
// Apparition (Sancti/05-08) directly for the chapter/responsory at // Apparition (Sancti/05-08) directly for the chapter/responsory at
// every hour -- real proper content, not a Common fallback. See // 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 [ for (const [date, id] of [
['2026-10-02', 'guardian-angels'], ['2026-10-02', 'guardian-angels'],
['2026-03-24', 'st-gabriel-archangel'],
['2026-10-24', 'st-raphael-archangel'], ['2026-10-24', 'st-raphael-archangel'],
] as const) { ] as const) {
const ordo = resolveOrdo('lauds', date); 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", () => { 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] // Read directly from the source (Sancti/02-12.txt): its own [Rule]
// says plain "vide C5" -- see lauds-capitulum-common-of-several- // says plain "vide C5" -- see lauds-capitulum-common-of-several-