diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-13 11:21:58 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-13 11:21:58 +0200 |
| commit | 204fd4e4a09a00e7edc240020249ffda5fd512b4 (patch) | |
| tree | 775773f5d7b1c0fa5e6f64e8124884496d0ec248 /CLAUDE.md | |
| parent | ee5c81e70adcd2ce6cecc57da4c416d482c187ca (diff) | |
| download | colitur-204fd4e4a09a00e7edc240020249ffda5fd512b4.tar.gz colitur-204fd4e4a09a00e7edc240020249ffda5fd512b4.zip | |
docs: close the Holy Name / RG 110 open items in CLAUDE.md
Both items this file tracked as open since branch ef-rg112-rg110
(Holy Name of Jesus's subject tag and missing RG 17(a) fallback; RG
110's inseparable Peter/Paul commemoration) are resolved. Adds item 4
to the behaviour-items list with the account and measured blast
radius, renumbers the structural items 5-7, and removes both from the
"Unbuilt, recorded" paragraph. Updates the two allow-list active-entry
counts (differential 5 -> 6 for C16; oracle stays 12, M12 closed and
M19 opened).
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 106 |
1 files changed, 68 insertions, 38 deletions
@@ -218,11 +218,15 @@ ferias, four Ember sets, Rogations, `anchors`) · `precedence_ef` (the full RG 9 commemorations RG 108–112, transfers RG 96–98) · `rite_ef` (the bundle). **Data**: `data/ef/sanctoral.sexp` (322 entries, bootstrapped from lectio, SHA-256 -in its provenance header) · `data/ef/adjustments.sexp` (overlay) · two cited -allow-lists, `expected-divergences.sexp` (5 active entries, vs lectio — C1, C6, -C8, C14, C15; several more closed and recorded in the register, not deleted) and -`expected-divergences-missalemeum.sexp` (12 active, vs the oracle). Fixtures -live in `test/fixtures/` with asserted SHA-256s. +in its provenance header) · `data/ef/adjustments.sexp` (overlay — `Add` as well +as `Suppress`/`Edit`: RG 110's own 30 June companion, `commemoration-of-st-peter`, +is genuinely missing from lectio's own source, not merely from colitur's +bootstrap, so it is hand-authored here rather than upstream) · two cited +allow-lists, `expected-divergences.sexp` (6 active entries, vs lectio — C1, C6, +C8, C14, C15, C16; several more closed and recorded in the register, not deleted) +and `expected-divergences-missalemeum.sexp` (12 active, vs the oracle — M12 +closed/M19 opened this task, net count unchanged). Fixtures live in +`test/fixtures/` with asserted SHA-256s. **CLI**: `colitur easter <year>`, `temporal <year>`, `day <year>`. @@ -253,9 +257,10 @@ dune exec colitur -- day 2026 | head - **Plan 4 — OF rite module** (proves `RITE` generalizes) → the lectionary bootstrap and citations → full output/rendering → hardening and a first tag. - **All three behaviour items below are now RESOLVED** (RG 16(a) and + **All four behaviour items below are now RESOLVED** (RG 16(a) and commemoration identity, closed on branch `ef-rg16a`; Holy Family/RG 112(a) - and observed identity, closed on branch `ef-rg112-rg110`) — kept here as + and observed identity, closed on branch `ef-rg112-rg110`; Holy Name of + Jesus/RG 110, closed on branch `ef-holyname-rg110`) — kept here as the record of what the five layers, taken together, used to sleep through, and as the shape a future gap of the same kind would need to be caught by. @@ -267,7 +272,7 @@ triage, and the whole-branch review — is in workspace is deliberately kept, because it and the register corrections exist nowhere in git (`docs/` is gitignored). -**The three behaviour items, in order:** +**The four behaviour items, in order:** 1. **RG 16(a) — RESOLVED (RG16(a) task, branch `ef-rg16a`, 2026-08-12; ONE FIX ROUND of review after the first pass — see register §6.0 for the full, @@ -372,37 +377,68 @@ nowhere in git (`docs/` is gitignored). was expected.** The differential's own C1 (the 6-13 January blanket) lost exactly those 7 (of the 1 220) rows within its 2005–2050 window and they were split into their own new cited entry (C15), not silently - re-absorbed — the same discipline the task brief demanded. Not built: - RG 110 (inseparable Peter/Paul, still open, M12) — out of this task's own - dispatched scope despite the branch name. Holy Name of Jesus (RG 17(a)) - has the identical "generic-Sunday-slug masking a real named feast" shape - Holy Family had — flagged as a new open item, not fixed here (no live - collision exists for it in today's data, so nothing is currently WRONG - about it the way Holy Family's own Baptism collision was). **A SECOND, - more severe Holy Name gap, found in review (fix round 1, coordinator - finding 9): unlike RG 17(b)'s own 7–13 January window (never empty), - RG 17(a)'s narrower 2–5 January window CAN be empty of a Sunday, and the - calendarium carries an explicit fallback ("vel, ea deficiente, die 2 - ianuarii") colitur does not implement at all — 3 619 of 8 417 years in - the domain (independently computed, matched exactly) have NO Holy Name - office whatsoever, a genuine missing II-class feast on 43% of years, not - merely an unnamed one. Recorded, not fixed — out of this task's own - dispatched scope. + re-absorbed — the same discipline the task brief demanded. Not built at + the time: RG 110 (inseparable Peter/Paul, still open, M12) — out of this + task's own dispatched scope despite the branch name. Holy Name of Jesus + (RG 17(a)) had the identical "generic-Sunday-slug masking a real named + feast" shape Holy Family had, PLUS a second, more severe gap (no RG 17(a) + fallback for its own 2–5 January window when empty of a Sunday — 3 619 of + 8 417 domain years). **Both are now RESOLVED — see item 4 below.** +4. **Holy Name of Jesus (RG 17(a)) + RG 110 — RESOLVED (2026-08-13, branch + `ef-holyname-rg110`; see register §6.3 for the full account).** Holy Name + gained the `subject = Lord` tag Holy Family already had (RG 91 entry 14), + plus a genuinely new office: RG 17(a)'s own fallback, *"secus die 2 + ianuarii"* — 2 January carries the feast whenever no Sunday falls 2–5 + January that year, tagged and ranked identically to the Sunday shape (ONE + feast, per the Mass propers' own single heading covering both dates, both + scans). Before this fix colitur emitted no Holy Name office at all in + 3 619 of 8 417 domain years — a genuine missing II-class feast, not + merely an unnamed one. A real asymmetry the fix's own synthetic + precedence tests found and kept honest rather than forced: a losing + Holy-Name-SUNDAY is RG 109(a)-privileged and survives RG 111(a)'s cap; a + losing Holy-Name-FALLBACK is not (2 January genuinely is not a Sunday, no + other RG 109 category names it) — both correct readings of RG 109/111's + own closed lists, no live witness for either today. + RG 110 (*"In Officio et Missa S. Petri semper fit commemoratio S. + Pauli, et vicissim... pro unica habeantur"*) gained a THIRD sub-clause + this register had not transcribed before, (c) — the same inseparable + commemoration also fires when one Apostle is admitted merely AS a + commemoration, not only when he is the day's own office. Three real + pairs in the 1962 calendar (25 January, 22 February, 30 June); the third + had no companion candidate anywhere — a genuine gap in lectio's own + source data AND in missalemeum's own oracle output, not only a colitur + bootstrap miss — closed via `data/ef/adjustments.sexp`'s own `Add` + directive. Built in `Precedence_ef.admit` (`rg110_additions`), layered on + AFTER `admit`'s own four RG 111 branches decide their ordinarily-capped + result, uncapped and additional, never competing for a slot. + **Blast radius, measured (`git archive` pre-change binary vs HEAD, full + 1583–9999 sweep, diffed): 14 627 days, ALL FOUR predicted shapes, zero + unclassified** — 3 619 the Holy Name fallback itself; 3 533 Paul wrongly + excluded from Chair of St Peter's own day by a competing privileged + feria (RG 110 shapes (a)/(b) — supersedes an earlier 852-day estimate + that measured only a delta between two older commits, not the rule's + full scope); 593 Chair of St Peter admitted only as an ordinary + commemoration, Paul entirely absent (shape (c) — a real 7% of the + domain, not a corner case); 6 882 the new 30-June companion. The lectio + differential needed no RG 110 change at all (it does not compare + commemorations); the oracle allow-list needed M12 removed, M15 widened + by one date (a newly-exposed instance of its own pre-existing limit), + and a new M19 for the 30-June gap. **Structural items, cheapest to fix before OF exists:** -4. **`Record` and `Liturgical_day` both claim to be "the single stable output +5. **`Record` and `Liturgical_day` both claim to be "the single stable output schema".** `Record` cannot express what the engine now computes (no observed celebration, no commemorations, no transfers), has **no test file**, and is used only by the legacy `colitur temporal` path — `day` hand-formats instead. Plan 2's carried item (add a `cycle` field for OF's Sunday A/B/C and weekday I/II) is still open and now costlier: it must pass through `Temporal.t`, which is embedded in the sexp-derived `Liturgical_day.t`. -5. **`Temporal.RITE` and `Rite.t` are two competing abstractions.** The module +6. **`Temporal.RITE` and `Rite.t` are two competing abstractions.** The module type still exists and `temporal_ef` still satisfies it, but it carries none of `rules`, `anchors`, `season_runs`, `transfer_target` — satisfying it now proves almost nothing. `Rite.t` is the load-bearing one. -6. **EF-shaped things still in "rite-agnostic" kernel code**: `validate.ml` +7. **EF-shaped things still in "rite-agnostic" kernel code**: `validate.ml` hardcodes Sunday as the week start; `Liturgical_day.transferred_in` is an `option` justified by RG 96; `Precedence.privilege` is defined by RG 111; `Repose` is EF vocabulary emitted by nothing. Each is one field short of the @@ -417,17 +453,11 @@ Boniface 14 May, Evaristus, Theodore); and `romanus`, which should not exist on lineage, not two independent sources. **Unbuilt, recorded**: the Sacred Triduum has no proper office (it uses ordinary -Passiontide ferial slugs); RG 91 entry 27's BVM Saturday Office; RG 110's -inseparable commemorations; Major Litanies (25 April); the Rogation-Wednesday -commemoration; Holy Name of Jesus (RG 17(a)) still carries `subject = Temporal` -like an ordinary Sunday, the same identity gap Holy Family had until this task, -found while closing it (register §6.2) but not itself fixed — no live collision -exists for it in today's data; **Holy Name of Jesus also has no RG 17(a) fallback -for its own 2–5 January window when it is empty of a Sunday (unlike RG 17(b)'s -7–13 January, never empty) — 3 619 of 8 417 domain years have no Holy Name office -at all, found in review (fix round 1, finding 9), a genuine missing II-class -feast, not merely an unnamed one.** Allow-list entries M11 and M13 are `verdict -open` by design. +Passiontide ferial slugs); RG 91 entry 27's BVM Saturday Office; Major Litanies +(25 April); the Rogation-Wednesday commemoration; RG 112(b)/(c)/(d) (only (a) +has a live witness this codebase's data can construct). Allow-list entries M11 +and M13 are `verdict open` by design. Holy Name of Jesus (RG 17(a)) and RG 110 +(inseparable Peter/Paul commemorations) are **RESOLVED — see item 4 above.** ## How to work here |
