Add St. Gabriel Archangel, the Annunciation, St. John Damascene,
Deploy / deploy (push) Successful in 1m5s

St. John Capistrano -- March complete

Finishes March's sweep of previously-never-added sanctoral content.
The Annunciation (Mar 25) was one of the two feasts literally named in
this app's original stale "fixed BVM feast, excluded per the usual
convention" note (alongside Purification, already fixed).

St. John Damascene is the first common-of-a-confessor-doctor saint;
his own Commune/C5a points its own Benedictus antiphon back at C4a's,
so he reuses the already-authored
benedictus-antiphon-common-of-a-confessor-bishop.yml directly rather
than duplicating it.

npm test (365 tests) and tsc --noEmit both pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 15:41:44 -04:00
parent aa19e1dc04
commit 9b06896391
15 changed files with 864 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/03-25.txt` -- "In Annuntiatione
# Beatæ Mariæ Virginis;;Duplex I classis;;6.92;;ex C11". Own proper
# [Oratio]/[Ant 1]/Nocturn 2-3 content of her own (real, unique text
# throughout), not a bare Common fallback -- same pattern as
# our-lady-of-the-snows.yml's siblings (assumption, immaculate-
# conception, nativity-bvm). One of the four "fixed BVM feast, excluded
# per the usual convention" items literally named alongside Purification
# in this app's original stale exclusion note.
id: annunciation
name: "The Annunciation of the Blessed Virgin Mary"
rank: duplex-1-classis
common: common-of-the-bvm
propers: "annunciation"
@@ -0,0 +1,12 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/03-24.txt` -- "ex Sancti/05-08;;
# Duplex majus;;4;;" (his own file redirects wholesale to the
# Apparition of St. Michael's own date, per its own [Rule] -- but this
# saint's real Officium/Oratio/Ant1/Matins content is proper to Gabriel
# specifically, not shared, unlike st-michael.yml's genuine content
# cross-reference). Real, unique collect/antiphon/Nocturn 2-3 content.
id: st-gabriel-archangel
name: "St. Gabriel the Archangel"
rank: duplex-majus
common: common-of-an-angel
propers: "st-gabriel-archangel"
@@ -0,0 +1,13 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/03-28.txt` -- "vide C5;;Semiduplex;;2.2;;".
# Own proper [Oratio] and Nocturn 2-3 content. No [Ant 1] of its own, so
# the Benedictus antiphon falls back to Common of a Confessor (C5),
# matching st-alexius.yml/st-john-bosco.yml/st-john-of-god.yml/
# st-gabriel-of-our-lady-of-sorrows.yml.
id: st-john-capistrano
name: "St. John Capistrano, Confessor"
rank: semiduplex
common: common-of-a-confessor
propers: "st-john-capistrano"
minorHoursCommon: common-of-a-confessor
benedictusCommon: common-of-a-confessor
@@ -0,0 +1,16 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/03-27.txt` -- "vide C5a;;Duplex;;3;;"
# ("Commune Doctoris non Pontificis" -- Common of a Doctor who is not a
# Bishop, since John Damascene was a monk-priest, not a bishop). Own
# proper [Oratio] and Nocturn 2-3 content. No [Ant 1] of its own; C5a's
# own [Ant 1] is itself a cross-reference to C4a (Common of a Confessor
# Bishop who is a Doctor) -- the underlying antiphon is shared
# regardless of episcopal rank, so benedictusCommon points at the
# already-authored `benedictus-antiphon-common-of-a-confessor-
# bishop.yml` directly rather than duplicating it under a new id.
id: st-john-damascene
name: "St. John Damascene, Confessor and Doctor of the Church"
rank: duplex
common: common-of-a-confessor-doctor
propers: "st-john-damascene"
benedictusCommon: common-of-a-confessor-bishop