calendar: give Advent's ordinary ferias their own precedence tier
Deploy / deploy (push) Successful in 44s

Found while starting the December sanctoral pull: Advent's plain
(non-Ember) weekday ferias have real standing in the live Monastic 1617
engine that the existing ordinary-feria category couldn't represent --
a Simplex saint (St. Bibiana, Dec 2) is merely commemorated there rather
than winning outright, while a Semiduplex+ saint (St. Nicholas, Dec 6)
wins with the feria itself commemorated back. Adds a third, weaker
privileged-feria-minor tier (Semiduplex+ threshold, vs. privileged-
feria's Duplex+) rather than reusing either existing tier, mirroring how
privileged-feria/privileged-feria-major were split in March. Lent's own
ordinary ferias likely share this property but are left as-is, unverified
this session.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 06:23:35 -04:00
parent 7cc6adfb55
commit 08f94823f7
6 changed files with 59 additions and 3 deletions
+12
View File
@@ -84,6 +84,18 @@ export function decideOccurrence(
// feast, however low-ranked, is kept in its place.
return { winner: sanctoralWinner(sanctoral), commemorations: [] };
case 'privileged-feria-minor':
// Advent's own ordinary ferias (verified: St. Bibiana, Simplex,
// merely commemorated under an Advent feria; St. Nicholas,
// Semiduplex, wins outright with the feria commemorated in return).
// Weaker than `privileged-feria`'s Duplex+ threshold — Semiduplex is
// already enough here — and unlike every other feria tier, nothing
// ever transfers: whichever side loses still gets a commemoration.
if (isAtLeast(sanctoral.rank, 'semiduplex')) {
return { winner: sanctoralWinner(sanctoral), commemorations: [{ kind: 'temporal', id: temporalId }] };
}
return { winner: temporalWinner, commemorations: [sanctoralCommemoration(sanctoral)] };
case 'privileged-feria':
// The lesser of the two privileged-feria tiers (Ember days outside
// Holy Week/the Easter Octave, etc.) — behaves exactly like an