Compare commits

..

2 Commits

Author SHA1 Message Date
will c1d99ea70b propers: add January's collect and antiphon text
Deploy / deploy (push) Successful in 41s
Real collect text for the 9 January saints that have one, plus a real
antiphon for the 3 that have one of their own (as opposed to falling back
to a generic Common-of-Saints text) — read directly from the reference
engine's fully-rendered output, not reconstructed from the raw source
files' own shorthand endings ($Per Dominum, $Qui vivis, etc.).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 15:26:16 -04:00
will 8c3b4f1768 calendar: pull January's sanctoral calendar (pre-1955 pull, 1/12)
20 saints for January, verified per-day against Divinum Officium (Monastic
Tridentinum 1617): 13 that actually win their day outright (rank pulled
from a live per-date query, since the static 1570/M1617 calendar text
files turned out unreliable once monastic-specific overrides apply) and
7 stubs for saints that only ever get commemorated, with an explicitly
flagged, unverified simplex rank guess pending correction.

Deliberately out of scope: pure octave-continuation days (In Octava S.
Stephani, the Epiphany-octave ferias) and fixed-date feasts of the
Lord/BMV (Circumcision, Epiphany) — sanctoral only, not temporal.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 15:25:56 -04:00
34 changed files with 496 additions and 0 deletions
@@ -0,0 +1,13 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-18, no Sunday collision) -- winner outright, Duplex majus.
# About St. Peter the apostle's office, not a feast of the Lord -- kept in the
# sanctoral store like the rest, distinct from the second Chair-of-Peter feast
# at Antioch (Feb 22, not yet pulled). Own proper collect and antiphon --
# the antiphon is a cross-reference in the source
# (web/www/horas/Latin/Sancti/01-18.txt's [Ant 1] points at Sancti/02-22.txt,
# since both Chair feasts share it).
id: chair-of-st-peter-at-rome
name: "The Chair of St. Peter at Rome"
rank: duplex-majus
common: common-of-an-apostle
propers: "chair-of-st-peter-at-rome"
@@ -0,0 +1,8 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-25, no Sunday collision) -- winner outright, Duplex majus. Own
# proper collect and antiphon.
id: conversion-of-st-paul
name: "The Conversion of St. Paul, Apostle"
rank: duplex-majus
common: common-of-an-apostle
propers: "conversion-of-st-paul"
@@ -0,0 +1,8 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-20, no Sunday collision) -- winner outright, Duplex. One feast
# shared by two martyrs. Own proper collect, no unique antiphon of their own.
id: ss-fabian-and-sebastian
name: "Ss. Fabian and Sebastian, Martyrs"
rank: duplex
common: common-of-several-martyrs
propers: "ss-fabian-and-sebastian"
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-19 (loses the day to St. Paul the First Hermit), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-19).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: ss-marius-martha-audifax-and-abachum
name: "Ss. Marius, Martha, Audifax, and Abachum, Martyrs"
rank: simplex
common: common-of-several-martyrs
propers: null
@@ -0,0 +1,8 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-22, no Sunday collision) -- winner outright, Semiduplex. Own
# proper collect, no unique antiphon of their own.
id: ss-vincent-and-anastasius
name: "Ss. Vincent and Anastasius, Martyrs"
rank: semiduplex
common: common-of-several-martyrs
propers: "ss-vincent-and-anastasius"
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-28 (loses the day to the Sunday in Septuagesima), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-28).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: st-agnes-secunda
name: "St. Agnes, Virgin and Martyr, Second Feast"
rank: simplex
common: common-of-a-virgin-martyr
propers: null
+9
View File
@@ -0,0 +1,9 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-21, no Sunday collision) -- winner outright, Duplex. Own
# proper collect and antiphon. Her second feast (Jan 28) is a separate record
# -- see st-agnes-secunda.yml.
id: st-agnes
name: "St. Agnes, Virgin and Martyr"
rank: duplex
common: common-of-a-virgin-martyr
propers: "st-agnes"
@@ -0,0 +1,12 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617,
# web/www/horas/Latin/Sancti/01-17.txt's untagged/default [Rank] block --
# Duplex;;3 -- ignoring its own "(sed rubrica cisterciensis)" alternate, same
# convention as every other saint file in this set). No unique Oratio/Antiphon
# in the source -- Common of an Abbot only. This is the same St. Anthony whose
# real occurrence-engine behavior was used earlier to calibrate the Duplex-vs-
# ordinary-Sunday precedence rule (calendar/commemorations.ts).
id: st-anthony-abbot
name: "St. Anthony, Abbot"
rank: duplex
common: common-of-an-abbot
propers: null
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-23 (loses the day to St. Hilary of Poitiers), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-23).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: st-emerentiana
name: "St. Emerentiana, Virgin and Martyr"
rank: simplex
common: common-of-a-virgin-martyr
propers: null
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-14 (loses the day to the Second Sunday after Epiphany), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-14).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: st-felix-presbyter
name: "St. Felix, Priest and Martyr"
rank: simplex
common: common-of-a-martyr
propers: null
@@ -0,0 +1,11 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-23, no Sunday collision) -- winner outright, Semiduplex. Own
# proper collect, no unique antiphon of his own. (Picked 2029 deliberately --
# 2027's Jan 23 turned out to already be governed by that week's temporal day
# instead, a reminder that a fixed fest's *rank* is year-independent but
# whether it actually wins isn't.)
id: st-hilary-of-poitiers
name: "St. Hilary of Poitiers, Bishop, Confessor and Doctor of the Church"
rank: semiduplex
common: common-of-a-confessor-bishop
propers: "st-hilary-of-poitiers"
+12
View File
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-11 (loses the day to the Epiphany octave's fifth day), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-11).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: st-hyginus
name: "St. Hyginus, Pope and Martyr"
rank: simplex
common: common-of-a-martyr-bishop
propers: null
@@ -0,0 +1,8 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-27, no Sunday collision) -- winner outright, Duplex. Own
# proper collect, no unique antiphon of his own.
id: st-john-chrysostom
name: "St. John Chrysostom, Bishop, Confessor and Doctor of the Church"
rank: duplex
common: common-of-a-confessor-bishop
propers: "st-john-chrysostom"
@@ -0,0 +1,10 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-16, no Sunday collision) -- winner outright, Semiduplex. Own
# proper collect (web/www/horas/Latin/Sancti/01-16.txt's [Oratio]) -- see
# propers/common/st-marcellus-i-collect.yml -- but no unique antiphon of his
# own (Terce/Sext/None's antiphon there is the generic Common one).
id: st-marcellus-i
name: "St. Marcellus I, Pope and Martyr"
rank: semiduplex
common: common-of-a-martyr-bishop
propers: "st-marcellus-i"
@@ -0,0 +1,11 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-15, no Sunday collision) -- winner outright, Duplex II. classis,
# a monastic-calendar-specific elevation (the base 1570 Tridentine calendar has
# him as a lesser commemoration on this date instead -- see M1617.txt's delta).
# No unique Oratio/Antiphon in the source (web/www/horas/Latin/Sancti/01-15.txt
# has only Lectio blocks) -- he uses the Common of an Abbot for everything.
id: st-maurus-abbot
name: "St. Maurus, Abbot"
rank: duplex-2-classis
common: common-of-an-abbot
propers: null
@@ -0,0 +1,8 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-19, no Sunday collision) -- winner outright, Semiduplex. Own
# proper collect, no unique antiphon of his own.
id: st-paul-the-hermit
name: "St. Paul the First Hermit, Confessor"
rank: semiduplex
common: common-of-a-confessor
propers: "st-paul-the-hermit"
+9
View File
@@ -0,0 +1,9 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-26, no Sunday collision) -- winner outright, Semiduplex.
# web/www/horas/Latin/Sancti/01-26.txt has no [Oratio]/[Ant] blocks -- Common
# of a Martyr Bishop only.
id: st-polycarp
name: "St. Polycarp, Bishop and Martyr"
rank: semiduplex
common: common-of-a-martyr-bishop
propers: null
+12
View File
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-18 (loses the day to the Chair of St. Peter at Rome), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-18).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: st-prisca
name: "St. Prisca, Virgin and Martyr"
rank: simplex
common: common-of-a-virgin-martyr
propers: null
@@ -0,0 +1,12 @@
# Secondary commemoration on 01-05 (loses the day to the Vigil of the Epiphany), pulled from
# Divinum Officium's kalendar headline (Monastic Tridentinum 1617, 2029-01-05).
# That query doesn't expose a secondary entry's rank, only its name -- simplex
# here is an unverified placeholder (the safest default, not a real reading),
# expected to need hand correction like the rest of this first-pass pull. No
# text pulled at all yet, matching the "first pass, detect but don't fully
# author" scope for merely-commemorated saints.
id: st-telesphorus
name: "St. Telesphorus, Pope and Martyr"
rank: simplex
common: common-of-a-martyr-bishop
propers: null
+9
View File
@@ -0,0 +1,9 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), live kalendar
# check (2029-01-24, no Sunday collision) -- winner outright, Semiduplex.
# web/www/horas/Latin/Sancti/01-24.txt has no [Oratio]/[Ant] blocks -- Common
# of a Martyr Bishop only.
id: st-timothy
name: "St. Timothy, Bishop and Martyr"
rank: semiduplex
common: common-of-a-martyr-bishop
propers: null
+24
View File
@@ -12,6 +12,30 @@
# privileged-day lists. `example-confessor` is deliberately NOT mapped to
# any day here — it's fictional, kept only to document the record shape.
days:
# January — first month of the pre-1955 pull (see the saint files' own
# comments for source/verification detail per entry). Deliberately
# excludes: pure octave-continuation days (In Octava S. Stephani, the
# several "die infra Octavam Epiphaniae" days, etc. — not sanctoral,
# out of scope per the Non-goals discussion) and fixed-date feasts of
# the Lord/BMV (Circumcision Jan 1, Epiphany Jan 6 — temporal, not
# sanctoral, and not modeled by this app at all yet, a separate gap).
"01-05": [st-telesphorus]
"01-11": [st-hyginus]
"01-14": [st-felix-presbyter]
"01-15": [st-maurus-abbot]
"01-16": [st-marcellus-i]
"01-17": [st-anthony-abbot]
"01-18": [chair-of-st-peter-at-rome, st-prisca]
"01-19": [st-paul-the-hermit, ss-marius-martha-audifax-and-abachum]
"01-20": [ss-fabian-and-sebastian]
"01-21": [st-agnes]
"01-22": [ss-vincent-and-anastasius]
"01-23": [st-hilary-of-poitiers, st-emerentiana]
"01-24": [st-timothy]
"01-25": [conversion-of-st-paul]
"01-26": [st-polycarp]
"01-27": [st-john-chrysostom]
"01-28": [st-agnes-secunda]
"08-09": [vigil-of-st-lawrence]
"08-10": [st-lawrence]
"08-15": [assumption]
@@ -0,0 +1,13 @@
# Verified against Divinum Officium (Latin/English Sancti/01-18.txt's own
# [Ant 1], which cross-references Sancti/02-22.txt for the actual text —
# the two Chair-of-Peter feasts, Rome and Antioch, share this antiphon).
# Not yet consumed by any hour's resolver (Terce/Sext/None only branch by
# weekday today — see hours/terce.ts) — stored ready for whenever a
# Lauds/Vespers-style commemoration or a feast-id override is built.
id: chair-of-st-peter-at-rome-antiphon
text:
la: "Tu es pastor óvium, * Princeps Apostolórum, tibi tráditæ sunt claves regni cælórum."
en: "Thou art the Shepherd * of the sheep, and the Prince of the Apostles, and unto thee are given the keys of the kingdom of heaven."
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-18, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: chair-of-st-peter-at-rome-collect
text:
la: |
Orémus.
Deus, qui beáto Petro Apóstolo tuo, collátis clávibus regni cæléstis, ligándi atque solvéndi pontifícium tradidísti: concéde; ut, intercessiónis ejus auxílio, a peccatórum nostrórum néxibus liberémur:
Qui vivis et regnas cum Deo Patre, in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
O God, Who hast given unto thy Blessed Apostle Peter the keys of the kingdom of heaven, and the power to bind and to loose, loose us, we beseech thee, at his mighty intercession, from all the bands of our sins.
Who livest and reignest with God the Father in the unity of the Holy Spirit, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,11 @@
# Verified against Divinum Officium (Latin/English Sancti/01-25.txt's own
# [Ant 1] — the Lauds-hour antiphon, not Terce's, which falls back to a
# generic Common-of-an-Apostle text instead. See chair-of-st-peter-at-
# rome-antiphon.yml's note on this not being consumed by any hour yet.
id: conversion-of-st-paul-antiphon
text:
la: "Vade, Ananía, * et quǽre Saulum: ecce enim orat: quia vas electiónis est mihi, ut portet nomen meum coram géntibus, et régibus, et fíliis Israël."
en: "Ananias, go thy way, * and seek Saul, for behold, he prayeth; for he is a chosen vessel unto me, to bear my name before the Gentiles, and kings, and the children of Israel."
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-25, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: conversion-of-st-paul-collect
text:
la: |
Orémus.
Deus, qui univérsum mundum beáti Pauli Apóstoli prædicatióne docuísti: da nobis, quǽsumus; ut, qui ejus hódie Conversiónem cólimus, per ejus ad te exémpla gradiámur.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
O God, Who, through the teaching of the Blessed Apostle Paul, hast caused the light of the Gospel to shine throughout the world, grant, we beseech thee, that we, having his wonderful conversion as on this day in remembrance, may show forth our thankfulness unto thee for the same, by following the holy example which he hath set.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-20, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: ss-fabian-and-sebastian-collect
text:
la: |
Orémus.
Infirmitátem nostram réspice, omnípotens Deus: et, quia pondus própriæ actiónis gravat, beatórum Mártyrum tuórum Fabiáni et Sebastiáni intercéssio gloriósa nos prótegat.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
Be mindful of our weakness, almighty God, and since the burden of our sins weighs heavily upon us, may the glorious intercession of thy holy Martyrs Fabian and Sebastian sustain us.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-22, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: ss-vincent-and-anastasius-collect
text:
la: |
Orémus.
Adésto, Dómine, supplicatiónibus nostris: ut, qui ex iniquitáte nostra reos nos esse cognóscimus, beatórum Mártyrum tuórum Vincéntii et Anastásii intercessióne liberémur.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
Let thy merciful ears, O Lord, be open unto our prayers, and whereas we do feel ourselves burdened by the guilt of our sins, do Thou graciously relieve us at the petition of thy blessed Martyrs, Vincent and Anastasius.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,11 @@
# Verified against Divinum Officium (Latin/English Sancti/01-21.txt's own
# [Ant 1] — the Lauds-hour antiphon, not Terce's, which falls back to a
# generic Common-of-Virgin-Martyrs text instead. See chair-of-st-peter-
# at-rome-antiphon.yml's note on this not being consumed by any hour yet.
id: st-agnes-antiphon
text:
la: "Beáta Agnes * in médio flammárum expánsis mánibus orábat: Te déprecor, omnípotens, adoránde, colénde, Pater metuénde, quia per sanctum Fílium tuum evási minas sacrílegi tyránni, et carnis spurcítias immaculáto calle transívi: et ecce vénio ad te, quem amávi, quem quæsívi, quem semper optávi."
en: "The blessed Agnes * stood in the midst of the fire, and stretched forth her hands, and prayed, saying: O Father! Who alone art almighty! Who alone art to be adored! Who alone art to be worshipped! Who alone art to be feared! I thank thee because that through thy Holy Son thou hast delivered me from the threatenings of the godless tyrant, and hast made me to walk with clean feet over the filthy slough of fleshly sin; and now, behold, I come unto thee, unto thee whom I have loved, whom I have sought, whom I have ever desired."
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-21, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: st-agnes-collect
text:
la: |
Orémus.
Omnípotens sempitérne Deus, qui infírma mundi éligis, ut fórtia quæque confúndas: concéde propítius; ut, qui beátæ Agnétis Vírginis et Mártyris tuæ solémnia cólimus, ejus apud te patrocínia sentiámus.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
O Almighty and everlasting God, Who hast chosen the weak things of the world to confound the things which are mighty, mercifully grant unto us that we who keep the solemn feast of thy blessed Virgin and Martyr Agnes, may feel the power of her intercession with thee.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-23, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: st-hilary-of-poitiers-collect
text:
la: |
Orémus.
Da, quǽsumus, omnípotens Deus: ut beáti Hilárii Confessóris tui atque Pontíficis veneránda solémnitas, et devotiónem nobis áugeat et salútem.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
Grant, we beseech thee, almighty God, that the venerable feast of Hilary thy blessed Confessor and Bishop may increase our devotion and promote our salvation.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-27, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: st-john-chrysostom-collect
text:
la: |
Orémus.
Ecclésiam tuam, quǽsumus, Dómine, grátia cæléstis amplíficet: quam beáti Joánnis Chrysóstomi Confessóris tui atque Pontíficis illustráre voluísti gloriósis méritis et doctrínis.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
May heavenly grace, we beseech thee, O Lord, prosper thy Church, which thou mercifully enlightened by the blessed virtues and teachings of glorious and blessed John Chrysostom, thy Confessor and Bishop.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-16, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: st-marcellus-i-collect
text:
la: |
Orémus.
Preces pópuli tui, quǽsumus, Dómine, cleménter exáudi: ut beáti Marcélli Mártyris tui atque Pontíficis méritis adjuvémur, cujus passióne lætámur.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
O Lord, we pray thee, mercifully give ear unto the prayers of thy people who rejoice at the memory of the victory through suffering of thy blessed Martyr and Bishop Marcellus, and for his sake succour us.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,19 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617) — read
# directly from the reference engine's own real-date output (2029-01-19, a
# year that date doesn't collide with a Sunday). Same convention as
# data/propers/temporal/*-collect.yml.
id: st-paul-the-hermit-collect
text:
la: |
Orémus.
Deus, qui nos beáti Pauli Confessóris tui ánnua solemnitáte lætíficas: concéde propítius; ut cujus natalítia cólimus, étiam actiónes imitémur.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
℟. Amen.
en: |
Let us pray.
O God, Who, year by year, dost gladden us by the solemn feast-day of thy blessed confessor Paul, mercifully grant unto all who keep his birthday, grace to follow after the pattern of his godly conversation.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
℟. Amen.
status:
la: verified
en: verified
+58
View File
@@ -0,0 +1,58 @@
import { describe, expect, it } from 'vitest';
import { resolveDay } from '../../src/calendar';
import { getDayCollect } from '../../src/hours/resolve-common';
// 2029 — every January date below is a clean per-annum year for these
// saints (no Sunday collision), verified against Divinum Officium
// (Monastic Tridentinum 1617) — see data/calendar/saints/*.yml for the
// per-saint source detail.
describe('January sanctoral pull (first pass)', () => {
it('a saint with real authored propers wins outright and resolves a verified collect', () => {
const day = resolveDay('2029-01-16');
expect(day.winner).toEqual({
kind: 'sanctoral',
id: 'st-marcellus-i',
name: 'St. Marcellus I, Pope and Martyr',
rank: 'semiduplex',
});
const collect = getDayCollect(day);
expect(collect.status.en).toBe('verified');
expect(collect.text.en).toContain('Marcellus');
});
it('a saint with no unique propers (Common of Saints only) still wins outright, honestly missing a collect', () => {
const day = resolveDay('2026-01-17'); // St. Anthony Abbot
expect(day.winner).toEqual({
kind: 'sanctoral',
id: 'st-anthony-abbot',
name: 'St. Anthony, Abbot',
rank: 'duplex',
});
const collect = getDayCollect(day);
expect(collect.status.en).toBe('missing');
});
it('resolves a real multi-saint day as a winner plus a commemoration, not a collision error', () => {
const day = resolveDay('2029-01-18'); // Chair of St. Peter at Rome + St. Prisca
expect(day.winner).toEqual({
kind: 'sanctoral',
id: 'chair-of-st-peter-at-rome',
name: 'The Chair of St. Peter at Rome',
rank: 'duplex-majus',
});
expect(day.commemorations).toEqual([
{ kind: 'sanctoral', id: 'st-prisca', name: 'St. Prisca, Virgin and Martyr', rank: 'simplex' },
]);
});
it('a simplex saint on an ordinary Sunday is commemorated, not dropped or made to win', () => {
// Jan 14, 2029 is the Second Sunday after Epiphany (ordinary, not
// privileged) — St. Felix (simplex) is commemorated per the ordinary-
// Sunday rule, matching the historical calendar exactly.
const day = resolveDay('2029-01-14');
expect(day.winner).toEqual({ kind: 'temporal', id: 'post-epiphany-2' });
expect(day.commemorations).toEqual([
{ kind: 'sanctoral', id: 'st-felix-presbyter', name: 'St. Felix, Priest and Martyr', rank: 'simplex' },
]);
});
});