Resolve 15 "unwinnable" stubs' Benedictus antiphons from source directly
Deploy / deploy (push) Successful in 55s

Direct feedback on the previous commit's framing: "unwinnable" was
describing an artifact of Divinum Officium's own single-winner
precedence model, not a real content gap -- this app already renders
commemorated saints on their own terms and doesn't need a saint to win
a live query to have real content. Fixed by reading each of the 15
saints' own already-validated fileref directly (the exact same fileref
their collect was already sourced from during the Kalendaria-table
pull) for its [Ant 1] section, falling back to whatever Common its own
[Rule]/[Rank] "vide"/"ex CXX" reference names when there isn't one --
the same proper-then-Common shape getDayCollect/collectCommon already
uses, just applied to the Benedictus antiphon too.

14 of the 15 had no [Ant 1] of their own at all -- clean Common
fallback, and every one of their C-numbers falls inside a family
already live-query-verified in the previous commit, so
minorHoursCommon/benedictusCommon were wired directly with full
confidence: St. Marcus, St. Felix (Presbyter), St. Hermes, St.
Saturninus, St. Prisca, St. Thecla, St. Catherine of Siena, Ss.
Machabees, Ss. Marius/Martha/Audifax/Abachum, Ss. Twelve Brothers, Ss.
Alexander/Eventius/Theodulus/Juvenal, Ss. Felix/Simplicius/
Faustinus/Beatrix, Ss. Nabor and Felix. St. Felicitas needed one new
category (C7), but it turned out to be a cross-reference resolving to
text byte-identical to the already-verified common-of-a-virgin.

The 1 remaining (Ss. Euphemia, Lucy, and Geminian) does have her own
real [Ant 1] -- but marked draft, not verified, on principle: St.
Alexius's own file also has a genuine [Ant 1] that his actual
live-rendered Benedictus antiphon doesn't use (common-of-an-abbot's
text instead), so a raw [Ant 1] read alone isn't sufficient proof, and
for a saint that can never be live-checked at all that uncertainty
can't be resolved either way -- used the text anyway, honestly flagged
rather than claimed as confirmed.

St. Frances of Rome and St. Bibiana (the older, pre-Kalendaria-table
109-saint pass) are good candidates for this same fix but weren't
touched here, since their own fileref was never derived by this
session's work.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 09:38:12 -04:00
parent 9faa7168bc
commit ea15e909df
17 changed files with 229 additions and 16 deletions
@@ -12,3 +12,8 @@ name: "Ss. Alexander I, Eventius, and Theodulus, Martyrs, and Juvenal, Bishop an
rank: simplex
common: common-of-several-martyrs
propers: "ss-alexander-eventius-theodulus-and-juvenal"
# No [Ant 1] of its own in the source (05-03r.txt) -- [Rule]/[Rank] point to
# Commune/C3 instead, the same C-number family already live-query-verified
# for common-of-several-martyrs.yml (see that section of TODO.md).
minorHoursCommon: common-of-several-martyrs
benedictusCommon: common-of-several-martyrs
@@ -12,3 +12,8 @@ name: "Ss. Felix, Simplicius, Faustinus, and Beatrix, Martyrs"
rank: simplex
common: common-of-several-martyrs
propers: "ss-felix-simplicius-faustinus-and-beatrix"
# No [Ant 1] of its own in the source (07-29cc.txt) -- [Rule]/[Rank] point to
# Commune/C3a instead, the same C-number family already live-query-verified
# for common-of-several-martyrs.yml (see that section of TODO.md).
minorHoursCommon: common-of-several-martyrs
benedictusCommon: common-of-several-martyrs
@@ -7,3 +7,8 @@ name: "Ss. Machabees, Martyrs"
rank: simplex
common: common-of-several-martyrs
propers: "ss-machabees"
# No [Ant 1] of its own in the source (08-01r.txt) -- [Rule]/[Rank] point to
# Commune/C3 instead, the same C-number family already live-query-verified
# for common-of-several-martyrs.yml (see that section of TODO.md).
minorHoursCommon: common-of-several-martyrs
benedictusCommon: common-of-several-martyrs
@@ -10,3 +10,8 @@ name: "Ss. Marius, Martha, Audifax, and Abachum, Martyrs"
rank: simplex
common: common-of-several-martyrs
propers: "ss-marius-martha-audifax-and-abachum"
# No [Ant 1] of its own in the source (01-19.txt) -- [Rule]/[Rank] point to
# Commune/C3a instead, the same C-number family already live-query-verified
# for common-of-several-martyrs.yml (see that section of TODO.md).
minorHoursCommon: common-of-several-martyrs
benedictusCommon: common-of-several-martyrs
@@ -12,3 +12,8 @@ name: "Ss. Nabor and Felix, Martyrs"
rank: simplex
common: common-of-several-martyrs
propers: "ss-nabor-and-felix"
# No [Ant 1] of its own in the source (07-12o.txt) -- [Rule]/[Rank] point to
# Commune/C3a-1 instead, the same C-number family already live-query-verified
# for common-of-several-martyrs.yml (see that section of TODO.md).
minorHoursCommon: common-of-several-martyrs
benedictusCommon: common-of-several-martyrs
@@ -7,3 +7,8 @@ name: "Ss. Twelve Brothers, Martyrs"
rank: simplex
common: common-of-several-martyrs
propers: "ss-twelve-brothers"
# No [Ant 1] of its own in the source (09-01cc.txt) -- [Rule]/[Rank] point to
# Commune/C3 instead, the same C-number family already live-query-verified
# for common-of-several-martyrs.yml (see that section of TODO.md).
minorHoursCommon: common-of-several-martyrs
benedictusCommon: common-of-several-martyrs
@@ -11,3 +11,8 @@ name: "St. Catherine of Siena, Virgin"
rank: simplex
common: common-of-a-virgin
propers: "st-catherine-of-siena"
# No [Ant 1] of its own in the source (04-30.txt) -- [Rule]/[Rank] point to
# Commune/C6a instead, the same C-number family already live-query-verified
# for common-of-a-virgin.yml (see that section of TODO.md).
minorHoursCommon: common-of-a-virgin
benedictusCommon: common-of-a-virgin
@@ -7,3 +7,10 @@ name: "St. Felicitas, Martyr"
rank: simplex
common: common-of-a-martyr
propers: "st-felicitas"
# No [Ant 1] of its own in the source (11-23cc.txt) -- [Rule]/[Rank] point to
# Commune/C7 instead, the same C-number family already live-query-verified
# for common-of-a-virgin.yml (see that section of TODO.md). C7 itself
# resolves via a cross-reference to Commune/C6:Ant 2, confirmed byte-
# identical to common-of-a-virgin's own already-verified text.
minorHoursCommon: common-of-a-virgin
benedictusCommon: common-of-a-virgin
@@ -10,3 +10,8 @@ name: "St. Felix, Priest and Martyr"
rank: simplex
common: common-of-a-martyr
propers: "st-felix-presbyter"
# No [Ant 1] of its own in the source (01-14cc.txt) -- [Rule]/[Rank] point to
# Commune/C2a instead, the same C-number family already live-query-verified
# for common-of-a-martyr.yml (see that section of TODO.md).
minorHoursCommon: common-of-a-martyr
benedictusCommon: common-of-a-martyr
+5
View File
@@ -7,3 +7,8 @@ name: "St. Hermes, Martyr"
rank: simplex
common: common-of-a-martyr
propers: "st-hermes"
# No [Ant 1] of its own in the source (08-28cc.txt) -- [Rule]/[Rank] point to
# Commune/C2a-1 instead, the same C-number family already live-query-verified
# for common-of-a-martyr.yml (see that section of TODO.md).
minorHoursCommon: common-of-a-martyr
benedictusCommon: common-of-a-martyr
+5
View File
@@ -8,3 +8,8 @@ name: "St. Marcus, Pope and Confessor"
rank: simplex
common: common-of-a-confessor-bishop
propers: "st-marcus"
# No [Ant 1] of its own in the source (10-07t.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 that section of TODO.md).
minorHoursCommon: common-of-a-confessor-bishop
benedictusCommon: common-of-a-confessor-bishop
+5
View File
@@ -10,3 +10,8 @@ name: "St. Prisca, Virgin and Martyr"
rank: simplex
common: common-of-a-virgin-martyr
propers: "st-prisca"
# No [Ant 1] of its own in the source (01-18r.txt) -- [Rule]/[Rank] point to
# Commune/C6-1 instead, the same C-number family already live-query-verified
# for common-of-a-virgin.yml (see that section of TODO.md).
minorHoursCommon: common-of-a-virgin
benedictusCommon: common-of-a-virgin
@@ -7,3 +7,8 @@ name: "St. Saturninus, Martyr"
rank: simplex
common: common-of-a-martyr
propers: "st-saturninus"
# No [Ant 1] of its own in the source (11-29r.txt) -- [Rule]/[Rank] point to
# Commune/C2a-1 instead, the same C-number family already live-query-verified
# for common-of-a-martyr.yml (see that section of TODO.md).
minorHoursCommon: common-of-a-martyr
benedictusCommon: common-of-a-martyr
+5
View File
@@ -7,3 +7,8 @@ name: "St. Thecla, Virgin and Martyr"
rank: simplex
common: common-of-a-virgin-martyr
propers: "st-thecla"
# No [Ant 1] of its own in the source (09-23cc.txt) -- [Rule]/[Rank] point to
# Commune/C6 instead, the same C-number family already live-query-verified
# for common-of-a-virgin.yml (see that section of TODO.md).
minorHoursCommon: common-of-a-virgin
benedictusCommon: common-of-a-virgin
@@ -0,0 +1,22 @@
# Pulled directly from her own source file's [Ant 1]
# (Sancti/09-16cc.txt, the same fileref her collect was verified against
# -- see her own saint record's comment) -- NOT live-query-verified, and
# marked `draft` rather than `verified` for that reason: she can never
# be the day's own rendered title (always commemorated under Ss.
# Cornelius and Cyprian, see her own file's comment), so there is no
# live Lauds page to confirm this [Ant 1] text is actually what's used
# at the Benedictus specifically, rather than elsewhere (Vespers'
# Magnificat, say) -- a real, demonstrated risk: St. Alexius's own file
# likewise has a real [Ant 1] ("Similábo eum...") that his live-rendered
# Benedictus antiphon does *not* use (it draws from common-of-an-abbot
# instead, confirmed live) -- so a raw [Ant 1] read is not on its own
# sufficient proof for a *winnable* saint either, let alone one that can
# never be checked. English translated (the source's own English page
# had no rendering at all), same `draft` reasoning applies twice over.
id: ss-euphemia-lucia-and-geminianus-antiphon
text:
la: "Gaudent in cælis * ánimæ Sanctórum, qui Christi vestígia sunt secúti: et quia pro ejus amóre sánguinem suum fudérunt, ídeo cum Christo exsúltant sine fine."
en: "The souls of the Saints rejoice in heaven, * who have followed the footsteps of Christ: and because for love of him they shed their blood, therefore they exult with Christ without end."
status:
la: draft
en: draft