Sweep minorHoursCommon (P/T/S/N) across the whole calendar, not just the 94-saint batch
Deploy / deploy (push) Successful in 56s
Deploy / deploy (push) Successful in 56s
The original 29-saint P/T/S/N pass only ever covered duplex-majus+ saints; every below-majus saint from the *original*, pre-94-batch 109-saint pass had never had Prime/Terce/Sext/None attempted at all -- same gap already found and fixed for the 94-batch's own below-majus saints, now closed for the rest of the calendar too. Reused the Kalendaria-table-validated fileref approach rather than a blind Sancti/MM-DD.txt read -- a real near-miss caught this early: St. Apollonia's Sancti/02-09.txt is currently St. Cyril of Alexandria's (a 19th-century addition to that filename slot); blind reading would have silently attributed his Doctor-of-the-Church Common to her. Also fixed a regex bug the same pass turned up: the "vide"/"ex CXX" pattern matched the bare word "Commune" (no number) and reading-specific sub-references like "ex C4 in 2 loco" -- found via St. Clement, whose Monastic-specific [Rule] override has neither a clean "vide CXX" nor a number after "Commune." 90 below-majus saints swept, ~82 wired directly into the categories already established in the previous commits -- no new content needed, every C-number variant found already falls inside an already-verified family. A real bug this pass caught and fixed in its own output: Ss. Ursula and Companions (deliberately left minorHoursCommon-unwired) got swept up and wrongly wired, since she has collectCommon set despite propers: null and being a genuine commemoration-only stub -- the Kalendaria lookup silently defaulted to St. Hilarion's own primary slot at her shared date. Caught by cross-checking every swept saint's propers field for this exact pattern; reverted. A real new category found: Doctors of the Church are not one thing. 6 of the 7 saints whose own [Rule] says "vide C4a" (Athanasius, Augustine, Basil the Great, Hilary of Poitiers, John Chrysostom, Leo I) render P/T/S/N byte-identical to the already-verified common-of-a-confessor-bishop -- wired directly. St. Gregory the Great is the one genuine exception: his own live-rendered P/T/S/N is real, unique proper text (his own election, his Liber Regulae Pastoralis, the dove-and-quill legend, the "non Angli sed Angeli" episode) -- 7 new files, English translated throughout since the source rendered none. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,42 @@ describe('genuinely unwinnable stubs still get a Benedictus antiphon (2026-08)',
|
||||
const ben = getBenedictusAntiphon(syntheticSanctoralDay('st-frances-of-rome'));
|
||||
expect(ben.status).toEqual({ la: 'verified', en: 'verified' });
|
||||
});
|
||||
});
|
||||
|
||||
describe('minorHoursCommon for the *whole* calendar, not just the 94-saint batch (2026-08)', () => {
|
||||
it("reuses another saint's own proper P/T/S/N wholesale when [Rule] points at their file directly, not a Commune category", () => {
|
||||
// Finding of St. Stephen -- her own [Rule] is "vide Sancti/12-26"
|
||||
// (St. Stephen Protomartyr's own Dec 26 file), not a Commune
|
||||
// reference at all, so minorHoursCommon is his own id
|
||||
// (st-stephen-protomartyr) -- reuses his already-authored proper
|
||||
// files directly, same pattern as common-of-st-peter earlier.
|
||||
const day = resolveDay('2026-08-03');
|
||||
expect(day.winner).toMatchObject({ kind: 'sanctoral', id: 'finding-of-st-stephen' });
|
||||
expect(resolveMinorHourAntiphon('prime', day, {}).status.la).toBe('verified');
|
||||
});
|
||||
|
||||
it('a Doctor of the Church can have genuinely unique proper P/T/S/N, not shared with any Common', () => {
|
||||
// St. Gregory the Great -- his own [Rule] says "vide C4a" (Doctor),
|
||||
// the same reference 5 of the 6 other Doctor saints on this
|
||||
// calendar have too, but his own live-rendered P/T/S/N is real,
|
||||
// unique text ("Beátus Gregórius in cáthedra Petri...") -- not
|
||||
// shared with common-of-a-confessor-bishop.yml the way St. Hilary
|
||||
// of Poitiers's, St. Athanasius's, etc. all are (see
|
||||
// st-hilary-of-poitiers.yml's own comment).
|
||||
const day = resolveDay('2033-03-12');
|
||||
expect(day.winner).toMatchObject({ kind: 'sanctoral', id: 'st-gregory-the-great' });
|
||||
const prime = resolveMinorHourAntiphon('prime', day, {});
|
||||
expect(prime.status.la).toBe('verified');
|
||||
expect(prime.text.la).toContain('Gregórius');
|
||||
});
|
||||
|
||||
it('most Doctor-of-the-Church saints share common-of-a-confessor-bishop despite their own [Rule] pointing at C4a (Doctor)', () => {
|
||||
const day = resolveDay('2026-01-14'); // St. Hilary of Poitiers
|
||||
expect(day.winner).toMatchObject({ kind: 'sanctoral', id: 'st-hilary-of-poitiers' });
|
||||
const prime = resolveMinorHourAntiphon('prime', day, {});
|
||||
expect(prime.status.la).toBe('verified');
|
||||
expect(prime.text.la).toContain('Ecce sacérdos magnus');
|
||||
});
|
||||
|
||||
it("resolves its own file's [Ant 1] as draft, not verified, when it can't be checked against a live rendering", () => {
|
||||
// Ss. Euphemia, Lucy, and Geminian -- her own file *does* have an
|
||||
|
||||
Reference in New Issue
Block a user