Implement the Cum sanctissima resolution toggle #85

Open
opened 2026-07-01 00:53:27 +00:00 by manlycucumber · 1 comment
manlycucumber commented 2026-07-01 00:53:27 +00:00 (Migrated from github.com)

Problem

The 2020 Cum sanctissima instruction permits optional handling of third/fourth-class feasts on ferias. The engine needs a toggle that alters resolution when enabled, without affecting default 1962 behaviour.

Acceptance criteria

  • A toggle enables Cum sanctissima options at resolve time
  • When enabled, eligible feasts on ferias resolve per the instruction
  • When disabled, behaviour is unchanged from baseline 1962
  • Unit tests cover an affected date both ways

Notes

Expose as an option flag stamped into the output contract.

## Problem The 2020 Cum sanctissima instruction permits optional handling of third/fourth-class feasts on ferias. The engine needs a toggle that alters resolution when enabled, without affecting default 1962 behaviour. ## Acceptance criteria - [ ] A toggle enables Cum sanctissima options at resolve time - [ ] When enabled, eligible feasts on ferias resolve per the instruction - [ ] When disabled, behaviour is unchanged from baseline 1962 - [ ] Unit tests cover an affected date both ways ## Notes Expose as an option flag stamped into the output contract.
manlycucumber commented 2026-07-10 20:48:42 +00:00 (Migrated from github.com)

Deferred from v0.2.0 to v2.3.0 (its data milestone).

Researching the actual decree during v0.2 surfaced a hard dependency: Cum sanctissima (CDF, 22 Feb 2020) is fundamentally about permitting saints canonized after 26 July 1960 — saints not in the 1962 General Calendar — to be celebrated or commemorated on 3rd/4th-class days, subject to a protected list of ~90 III-class feasts that may never be impeded. With no post-1960-saints corpus yet, the toggle would have nothing eligible to resolve — it could only be a no-op or a scope-jumping partial build.

The post-1960 canonized-saints corpus is martyrology-adjacent and lives here in v2.3.0 (alongside #274). So this issue moves here, to build after / with that corpus, when the toggle can resolve real eligible saints and be tested both ways per its acceptance criteria.

Two design notes for when it is picked up:

  • It introduces the first resolve-time option into the output contract. Design the options block shape as part of the v1.0 contract-freeze work (#88/#90) so the first fill does not lock a wrong shape.
  • Model the decree's protected III-class feast list (Art. 8) as data so an eligible post-1960 saint can never impede a protected feast.

The '#87 Cum sanctissima dedicated resolution test' acceptance item travels with this issue (the test cannot exist without the toggle).

**Deferred from v0.2.0 to v2.3.0 (its data milestone).** Researching the actual decree during v0.2 surfaced a hard dependency: *Cum sanctissima* (CDF, 22 Feb 2020) is fundamentally about permitting saints **canonized after 26 July 1960** — saints *not* in the 1962 General Calendar — to be celebrated or commemorated on 3rd/4th-class days, subject to a protected list of ~90 III-class feasts that may never be impeded. With no post-1960-saints corpus yet, the toggle would have nothing eligible to resolve — it could only be a no-op or a scope-jumping partial build. The post-1960 canonized-saints corpus is martyrology-adjacent and lives here in v2.3.0 (alongside #274). So this issue moves here, to build **after / with** that corpus, when the toggle can resolve real eligible saints and be tested both ways per its acceptance criteria. Two design notes for when it is picked up: - It introduces the **first resolve-time option** into the output contract. Design the `options` block shape as part of the v1.0 contract-freeze work (#88/#90) so the first fill does not lock a wrong shape. - Model the decree's **protected III-class feast list** (Art. 8) as data so an eligible post-1960 saint can never impede a protected feast. The '#87 Cum sanctissima dedicated resolution test' acceptance item travels with this issue (the test cannot exist without the toggle).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core#85
No description provided.