Add July sanctoral content: 11 saints/feasts, fix St. Leo II's wrong date
Deploy / deploy (push) Successful in 1m6s

Continues the full-year sanctoral import: the Most Precious Blood of Our
Lord (Duplex I Classis, full proper office, elevated by Pius XI for the
1933 Redemption jubilee), the Visitation of the BVM (Duplex II Classis,
full proper office), St. Leo II, St. Anthony Mary Zaccaria, the Octave
Day of Ss. Peter and Paul (own real content, not a bare continuation),
Ss. Cyril and Methodius, St. Elizabeth of Portugal, St. Henry, Our Lady
of Mount Carmel, St. Vincent de Paul, and St. Ignatius of Loyola.

Also fixes a real pre-existing bug surfaced while authoring St. Leo II:
an earlier June sanctoral pull had mapped him to "06-28" (his own vita
text mentions his burial "upon the 28th day of June," but his actual
liturgical feast, per the reference engine's Sancti/07-03.txt, is July
3) with no saints/st-leo-ii.yml ever authored for it -- a wrong-date
stub, same class of artifact as the pre-existing St. Apollinaris
wrong-date bug already documented in july-sanctoral.test.ts. Removed
the stale June 28 entry now that he's correctly authored on July 3.

Two day-label tests pinned to Trinity-Sunday-relative dates that now
collide with new fixed feasts (Jul 6: Octave Day of Ss. Peter and Paul)
were moved to collision-free years/dates, and the July stub test
covering "pure octave-continuation days" was updated to a date (July 4)
that's still genuinely unmapped, since most of that range turned out to
have real content after all.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 16:43:28 -04:00
parent 0b8529e04b
commit 22917c0068
41 changed files with 1997 additions and 82 deletions
@@ -0,0 +1,14 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-01.txt` -- "Duplex I
# classis;;6;;" (`[Rule]` says `proprium` -- "Festum Domini"). A fully
# proper feast of the Lord with real, complete unique text throughout
# (own Oratio, own Ant 1, full 9-lesson Matins), same pattern as
# transfiguration.yml/finding-of-the-holy-cross.yml. Instituted by Pius
# IX in 1849, raised to Duplex I Classis by Pius XI for the 1933
# nineteen-century jubilee of the Redemption (see the feast's own
# Lectio6, quoted in nocturn-readings).
id: most-precious-blood
name: "The Most Precious Blood of Our Lord Jesus Christ"
rank: duplex-1-classis
common: proper-to-the-most-precious-blood
propers: "most-precious-blood"
@@ -0,0 +1,23 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-06.txt` -- "In Octava Ss.
# Apostolorum Petri et Pauli;;Duplex majus;;4.1;;vide C1" (Common of
# Apostles). The Octave Day itself of Ss. Peter and Paul (June 29 + 7),
# with its own real proper [Oratio] and own Nocturn 2-3 content
# (Chrysostom's sermon on both Apostles; Jerome's homily on Christ
# walking on the water). Its [Ant 1]/[Ant 2]/[Ant 3] are all a
# cross-reference (`@Sancti/07-03oct`) to the file for the Octave's
# 5th day, which has its own real proper antiphon text -- authored
# here directly since it is the actual text this day uses, not a
# private duplicate (the Matins nocturn-readings mechanism has no
# cross-id lookup the way collect/antiphon do via `propers`, so this
# mirrors the same reasoning as exaltation-of-the-holy-cross.yml's
# collect/antiphon pointer, just inlined since there's no saint id to
# point at here). Rest of the Octave's own continuation days (July 4,
# 7-8 minus named saints) aren't modeled -- pure octave-continuation
# content remains a separate, not-yet-built mechanism (see
# vu-sanctoral-sweep-progress memory).
id: octave-of-ss-peter-and-paul
name: "The Octave Day of Ss. Peter and Paul, Apostles"
rank: duplex-majus
common: common-of-apostles
propers: "octave-of-ss-peter-and-paul"
@@ -0,0 +1,15 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-16.txt` -- "In
# Commemoratione Beatæ Mariæ Virgine de Monte Carmelo;;Duplex majus;;
# 4;;ex C11". Own real [Oratio] and own untagged [Ant 1] ("Sancta
# María, succúrre míseris..." -- a separate `(rubrica cisterciensis)`
# variant cross-references `@CommuneCist/C11` instead, ignored per the
# untagged-block convention). Own Nocturn 2 vita content. No Lectio7-9
# in her own file (only a `Responsory7` cross-ref) -- defers to the
# Common of the BVM's own Nocturn 3, not transcribed here, same pattern
# as our-lady-of-the-snows.yml/presentation-of-the-bvm.yml.
id: our-lady-of-mount-carmel
name: "Our Lady of Mount Carmel"
rank: duplex-majus
common: common-of-the-bvm
propers: "our-lady-of-mount-carmel"
@@ -0,0 +1,17 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-07.txt` -- "Duplex;;3;;vide
# C4-1" (a variant Oratio of the Common of a Confessor Bishop, C4 --
# same non-distinct-category reasoning as st-augustine-of-canterbury.yml).
# Own real proper [Oratio] and own Nocturn 2 content (Leo XIII's own
# encyclical letter). No [Ant 1] of its own -- benedictusCommon/
# minorHoursCommon fall back to the plain Common of a Confessor
# Bishop. Nocturn 3 is a direct `@Commune/C1a:LectioN` cross-reference
# (Common of Apostles variant), not this saint's own content -- not
# transcribed, per the bare-cross-reference convention.
id: ss-cyril-and-methodius
name: "Ss. Cyril and Methodius, Bishops and Confessors"
rank: duplex
common: common-of-a-confessor-bishop
propers: "ss-cyril-and-methodius"
benedictusCommon: common-of-a-confessor-bishop
minorHoursCommon: common-of-a-confessor-bishop
@@ -0,0 +1,14 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-05.txt` -- "Duplex;;3;;vide
# C5" (Common of a Confessor Not a Bishop). Own real proper [Oratio]
# and own Nocturn 2-3 content (Nocturn 3 is St. Augustine's own
# homily, not a cross-reference). No [Ant 1] of his own --
# benedictusCommon/minorHoursCommon fall back to the plain Common of a
# Confessor.
id: st-anthony-mary-zaccaria
name: "St. Anthony Mary Zaccaria, Confessor"
rank: duplex
common: common-of-a-confessor
propers: "st-anthony-mary-zaccaria"
benedictusCommon: common-of-a-confessor
minorHoursCommon: common-of-a-confessor
@@ -0,0 +1,16 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-08.txt` -- "Semiduplex;;2.2;;
# vide C7a" (Commune non Virginum non Martyrum). Own real proper
# [Oratio] and own [Ant 1]. benedictusCommon/minorHoursCommon fall
# back to the Common of a Virgin, same C-number-family fallback
# already established for st-monica.yml/st-margaret-of-scotland.yml
# (no benedictus-antiphon-common-of-a-widow.yml exists). No Lectio7-9
# in her own file -- defers to the Common's own Nocturn 3, not
# transcribed here.
id: st-elizabeth-of-portugal
name: "St. Elizabeth of Portugal, Queen and Widow"
rank: semiduplex
common: common-of-a-widow
propers: "st-elizabeth-of-portugal"
benedictusCommon: common-of-a-virgin
minorHoursCommon: common-of-a-virgin
+13
View File
@@ -0,0 +1,13 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-15.txt` -- "Semiduplex;;2.2;;
# vide C5" (Common of a Confessor Not a Bishop). Own real proper
# [Oratio]. No [Ant 1] of his own -- benedictusCommon/minorHoursCommon
# fall back to the plain Common of a Confessor. No Lectio7-9 in his own
# file -- defers to the Common's own Nocturn 3, not transcribed here.
id: st-henry
name: "St. Henry, Emperor and Confessor"
rank: semiduplex
common: common-of-a-confessor
propers: "st-henry"
benedictusCommon: common-of-a-confessor
minorHoursCommon: common-of-a-confessor
@@ -0,0 +1,15 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-31.txt` -- "Duplex majus;;4;;
# vide C5" (Common of a Confessor Not a Bishop). Own real proper
# [Oratio]. No [Ant 1] of his own -- benedictusCommon/minorHoursCommon
# fall back to the plain Common of a Confessor. Nocturn 3 is a direct
# `@Commune/C1a:LectioN` cross-reference (Common of Apostles variant),
# not this saint's own content -- not transcribed, per the
# bare-cross-reference convention.
id: st-ignatius-of-loyola
name: "St. Ignatius of Loyola, Confessor"
rank: duplex-majus
common: common-of-a-confessor
propers: "st-ignatius-of-loyola"
benedictusCommon: common-of-a-confessor
minorHoursCommon: common-of-a-confessor
+10 -12
View File
@@ -1,17 +1,15 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2035-06-28, no Sunday collision) -- winner outright, Semiduplex.
# A different pope from St. Leo I (April 11, Duplex, Doctor of the
# Church) -- kept as a separate record. Own proper collect; his only
# [Ant 1] is tagged for a different rubric ("rubrica cisterciensis") and is
# itself a cross-reference with a name-substitution pattern for a
# different saint entirely, so no antiphon is recorded.
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-03.txt` -- "Semiduplex;;2.2;;
# vide C4b" (Common of Confessor Popes, same category as
# st-pius-v.yml). Own real proper [Oratio]. No [Ant 1] of his own --
# benedictusCommon/minorHoursCommon fall back to the plain Common of a
# Confessor Bishop, same fallback reasoning as st-pius-v.yml. No
# Lectio7-9 in his own file -- defers to the Common's own Nocturn 3,
# not transcribed here.
id: st-leo-ii
name: "St. Leo II, Pope and Confessor"
rank: semiduplex
common: common-of-a-confessor-bishop
common: common-of-a-confessor-pope
propers: "st-leo-ii"
# P/T/S/N: no [Ant Prima]/etc of its own in the source (06-28t.txt) --
# [Rule]/[Rank] point to Commune/C4b instead, the same C-number family
# already live-query-verified for common-of-a-confessor-bishop.yml (see
# TODO.md's 'minor hour content gaps' section).
benedictusCommon: common-of-a-confessor-bishop
minorHoursCommon: common-of-a-confessor-bishop
@@ -0,0 +1,17 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-19.txt` -- "Duplex;;3;;vide
# C5-1" (a variant Oratio of the Common of a Confessor, C5 -- not a
# distinct Common category, same non-distinct-category reasoning as
# st-augustine-of-canterbury.yml/ss-cyril-and-methodius.yml's C4-1).
# Own real proper [Oratio]. No [Ant 1] of his own -- benedictusCommon/
# minorHoursCommon fall back to the plain Common of a Confessor.
# Nocturn 3 is a direct `@Commune/C1a:LectioN` cross-reference (Common
# of Apostles variant), not this saint's own content -- not
# transcribed, per the bare-cross-reference convention.
id: st-vincent-de-paul
name: "St. Vincent de Paul, Confessor"
rank: duplex
common: common-of-a-confessor
propers: "st-vincent-de-paul"
benedictusCommon: common-of-a-confessor
minorHoursCommon: common-of-a-confessor
@@ -0,0 +1,13 @@
# Read directly from the reference engine: untagged/default [Rank]
# block of `web/www/horas/Latin/Sancti/07-02.txt` -- "In Visitatione
# Beatæ Mariæ Virginis;;Duplex II classis;;5.1;;ex C11" -- but unlike
# the plain-Common BVM feasts (Our Lady of the Snows etc.), this file
# has full, real, proper content throughout: own [Oratio], own [Ant 1],
# and a full nine-lesson Matins office of her own (Nocturn 1, the Song
# of Songs, isn't modeled -- see queenship-of-the-bvm.yml's own note on
# this app's Nocturn-2/3-only convention).
id: visitation-of-the-bvm
name: "The Visitation of the Blessed Virgin Mary"
rank: duplex-2-classis
common: proper-to-the-visitation-of-the-bvm
propers: "visitation-of-the-bvm"
+32 -8
View File
@@ -150,7 +150,14 @@ days:
# two normally blocked by the generic Saturday-of-Mary votive). 06-27
# (the 4th day of St. John the Baptist's octave) is a pure temporal
# continuation with no named secondary saint, so it's excluded, same as
# every other octave-continuation day this pull has skipped.
# every other octave-continuation day this pull has skipped. (A
# "06-28": [st-leo-ii] entry from that original pull was a wrong-date
# artifact -- his own vita text mentions his burial "upon the 28th day
# of June," but his real liturgical feast day, per
# web/www/horas/Latin/Sancti/07-03.txt, is July 3; removed here now
# that he's properly authored there, same class of fix as St.
# Apollinaris's wrong-date artifact noted in
# tests/calendar/july-sanctoral.test.ts.)
"06-01": [st-angela-merici]
"06-02": [ss-marcellinus-peter-and-erasmus]
"06-04": [st-francis-caracciolo]
@@ -172,22 +179,38 @@ days:
"06-24": [nativity-of-st-john-the-baptist]
"06-25": [st-william-abbot]
"06-26": [ss-john-and-paul]
"06-28": [st-leo-ii]
"06-29": [ss-peter-and-paul]
"06-30": [commemoration-of-st-paul]
# July — 7/12 of the pre-1955 pull. 07-01 through 07-06 are all pure
# octave-continuation labels (St. John the Baptist's own octave, then
# Ss. Peter and Paul's) with no independently named saint at all, so
# they're excluded, same as every other octave-continuation day this
# pull has skipped. Five stubs this month, all genuinely unwinnable —
# see their own files for which fixed-date competitor blocks each.
# July — 7/12 of the pre-1955 pull. Five stubs this month, all
# genuinely unwinnable — see their own files for which fixed-date
# competitor blocks each. Separately, the full-year sanctoral import
# (see vu-sanctoral-sweep-progress memory) added 07-01 through 07-08
# and 07-15/07-16/07-19/07-31 — previously excluded entirely under a
# stale "pure octave-continuation label, no independently named
# saint" note, which was wrong for these dates: each has real,
# complete own content (the Most Precious Blood and the Visitation
# of the BVM are fully proper Duplex-class feasts of their own; the
# Octave Day of Ss. Peter and Paul, July 6, likewise has real proper
# content even though it's an octave day). The remaining days within
# those two octaves (July 4, 7, 9) genuinely are bare
# octave-continuation with no independent content, and stay excluded.
"07-01": [most-precious-blood]
"07-02": [visitation-of-the-bvm]
"07-03": [st-leo-ii]
"07-05": [st-anthony-mary-zaccaria]
"07-06": [octave-of-ss-peter-and-paul]
"07-07": [ss-cyril-and-methodius]
"07-08": [st-elizabeth-of-portugal]
"07-10": [ss-seven-brothers-rufina-and-secunda]
"07-11": [st-pius-i]
"07-12": [st-john-gualbert, ss-nabor-and-felix]
"07-13": [st-anacletus]
"07-14": [st-bonaventure]
"07-15": [st-henry]
"07-16": [our-lady-of-mount-carmel]
"07-17": [st-alexius]
"07-18": [ss-symphorosa-and-seven-sons]
"07-19": [st-vincent-de-paul]
"07-20": [st-margaret-of-antioch]
"07-21": [st-praxedes]
"07-22": [st-mary-magdalene]
@@ -199,6 +222,7 @@ days:
"07-28": [ss-nazarius-celsus-victor-and-innocent]
"07-29": [st-martha, ss-felix-simplicius-faustinus-and-beatrix]
"07-30": [ss-abdon-and-sennen]
"07-31": [st-ignatius-of-loyola]
# August — 8/12 of the pre-1955 pull. Four pre-existing entries from
# before this pull initiative (vigil-of-st-lawrence, st-lawrence,
# assumption, st-augustine) got their propers backfilled this month; see