feat: explain colour and season in the resolution trace (#235) #433

Merged
manlycucumber merged 1 commit from feature/235-trace-colour-season into develop 2026-07-02 19:08:59 +00:00
manlycucumber commented 2026-07-02 19:07:33 +00:00 (Migrated from github.com)

Second of Epic #233. Closes #235. Builds on #234.

Extends the resolution trace so it explains not just the office but the day's colour and season.

  • colour — the celebrated office's base colour + rose permission, reason colour-of-celebration ("the liturgical colour of the celebrated office").
  • season — the season of the day's temporal office (e.g. green/pentecost, white/christmastide, white/eastertide), reason season-of-temporal-office; a day with no temporal office honestly carries an uncited no-temporal-season.

Both reasons live on the edition rules object (explainColour / explainSeason), keeping every edition-specific citation in one place. They cite the Codex Rubricarum at the document level (rg-1960) rather than inventing a paragraph number — consistent with the project's citation-integrity standard.

Example (June feria):

"colour": {"base":"green","roseAllowed":false,"rule":"colour-of-celebration","summary":"green: the liturgical colour of the celebrated office","citation":"rg-1960"},
"season": {"value":"pentecost","rule":"season-of-temporal-office","summary":"pentecost: the season of the day's temporal office","citation":"rg-1960"}

Trace stays opt-in → default contract and golden digest unmoved.

Gate: lint clean · analyse [OK] · test 654 (+2) · golden unchanged.

Next: #236 (citation-completeness hardening), #240 (golden trace fixtures).

Second of Epic #233. Closes #235. Builds on #234. Extends the resolution trace so it explains not just the office but the day's **colour** and **season**. - **colour** — the celebrated office's base colour + rose permission, reason `colour-of-celebration` ("the liturgical colour of the celebrated office"). - **season** — the season of the day's temporal office (e.g. green/pentecost, white/christmastide, white/eastertide), reason `season-of-temporal-office`; a day with no temporal office honestly carries an uncited `no-temporal-season`. Both reasons live on the edition rules object (`explainColour` / `explainSeason`), keeping every edition-specific citation in one place. They cite the Codex Rubricarum at the **document level** (`rg-1960`) rather than inventing a paragraph number — consistent with the project's citation-integrity standard. Example (June feria): ```json "colour": {"base":"green","roseAllowed":false,"rule":"colour-of-celebration","summary":"green: the liturgical colour of the celebrated office","citation":"rg-1960"}, "season": {"value":"pentecost","rule":"season-of-temporal-office","summary":"pentecost: the season of the day's temporal office","citation":"rg-1960"} ``` Trace stays **opt-in** → default contract and golden digest unmoved. Gate: `lint` clean · `analyse` [OK] · `test` 654 (+2) · golden unchanged. **Next:** #236 (citation-completeness hardening), #240 (golden trace fixtures).
Sign in to join this conversation.
No reviewers
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!433
No description provided.