Full precedence sweep of temporal-categories.yml, two more real bugs
Deploy / deploy (push) Successful in 1m27s

Following the Ascensiontide fix, swept every remaining unverified Sunday/
feria precedence tier against the live reference engine:

- commemorations.ts's privileged-sunday rule was itself wrong: a
  duplex-majus+ candidate was given a bare commemoration instead of
  transferring, never actually verified. Live-checked the Immaculate
  Conception (transfers off Advent II) and the Annunciation (transfers
  off Palm/Easter Sunday) - confirmed correct by direct instruction.
  privileged-sunday now transfers every rank unconditionally.

- eastertide's own Sunday tier was backwards (privileged-sunday instead
  of ordinary-sunday) for the ordinary Sundays after Easter - live-
  verified twice (Finding of the Holy Cross, St. Mark both win outright).
  Easter Day itself still needs the stronger tier, now special-cased
  directly since Sundays never consult the offset table.

Six existing tests updated to reflect real, live-verified behavior - each
had the old wrong "commemorated in place" assumption baked into its
expected value. Remaining unverified entries (Vigil of Pentecost/
Christmas, Corpus Christi/Sacred Heart) documented as such rather than
silently assumed correct.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017XMSokiTD2Qc5vPP2YQu3Q
This commit is contained in:
2026-09-01 11:45:04 -04:00
parent 6b66999908
commit 4adbb71ddf
10 changed files with 190 additions and 63 deletions
+16 -7
View File
@@ -188,13 +188,22 @@ export function decideOccurrence(
};
case 'privileged-sunday':
if (isAtLeast(sanctoral.rank, 'duplex-majus')) {
// Never displaced, but a sufficiently high feast still gets a nod.
return { winner: temporalWinner, commemorations: [sanctoralCommemoration(sanctoral)] };
}
// Below duplex-majus, a privileged Sunday wants nothing at all —
// not even the bare commemoration an ordinary Sunday would allow a
// Simplex — so everything here transfers.
// A privileged Sunday wants nothing at all, no matter how high the
// candidate ranks — not even the bare commemoration an ordinary
// Sunday would allow a Simplex, and no exception for duplex-majus+ —
// everything transfers. Live-verified 2026-09-01, three independent
// dates: the Immaculate Conception (Duplex I. classis) transfers off
// Advent II with no commemoration at all (real dates 2024/2030/2041),
// and the Annunciation (also Duplex I. classis) transfers off both
// Palm Sunday and Easter Sunday itself the same way (2029/2035/2040/
// 2046) — confirmed by direct instruction as the correct behavior,
// correcting an earlier, never-actually-verified "duplex-majus+
// still gets a nod" guess. (Where a transferred candidate actually
// lands is a separate, still-generic `transferDirectionOf`/next-
// open-day mechanism — the Annunciation's own real rule of jumping
// *past* the whole Easter Octave rather than landing inside it is a
// known follow-on, blocked on the not-yet-built Easter-octave
// mechanism; see TODO.md.)
return {
winner: temporalWinner,
commemorations: [],