From d5df5e79c731ac7f7f89969c0cafe564fdc6e8ab Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 13 Aug 2026 16:10:00 +0200 Subject: docs: RG 91 entry 27 (BVM Saturday) resolved MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CLAUDE.md's "Unbuilt, recorded" list and Data section move to reflect the closed gap: a new item 9 records the office's own build, citations and measured blast radius; the allow-list counts move to 7 active lectio entries (C17 new) and 11 active missalemeum entries (M2 closed). docs/research/rules-register.md (gitignored, not tracked) gets the matching update: §4's entry marked RESOLVED with a cross-reference, the §6 open-item checkbox closed, and a new §6.4 with the full primary-source account -- every scan reading quoted, the blast-radius reconciliation, and the mutation-test record. --- CLAUDE.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 10 deletions(-) (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md index 68cb906..8cfa902 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -232,11 +232,11 @@ in its provenance header) · `data/ef/adjustments.sexp` (overlay — `Add` as we 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. +allow-lists, `expected-divergences.sexp` (7 active entries, vs lectio — C1, C6, +C8, C14, C15, C16, C17; several more closed and recorded in the register, not +deleted) and `expected-divergences-missalemeum.sexp` (11 active, vs the oracle — +M2 closed/M18 widened by the `ef-bvm-saturday` task; M12 closed/M19 opened by an +earlier one). Fixtures live in `test/fixtures/` with asserted SHA-256s. **CLI**: `colitur easter `, `temporal `, `day `. @@ -474,11 +474,12 @@ Boniface 14 May, Evaristus, Theodore); and `romanus`, which should not exist on 9 August. lectio's ini is **generated from missalemeum**, so the two are one lineage, not two independent sources. -**Unbuilt, recorded**: RG 91 entry 27's BVM Saturday Office; 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.** The Sacred Triduum's own identity is **RESOLVED — see item 5 below.** +**Unbuilt, recorded**: 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.** The Sacred +Triduum's own identity is **RESOLVED — see item 5 below.** RG 91 entry 27's +BVM Saturday Office is **RESOLVED — see item 9 below.** Major Litanies (25 April) and the Rogation-Wednesday commemoration are **NARROWED, still unbuilt — see item 5 below**: both rules are now scan-verified and register-cited, but neither is built, because both need the @@ -573,6 +574,68 @@ candidate is exactly one and already spoken for). Ascension Vigil by construction, so there is no `(month, day)` pair a `Fixed` spec could anchor to and no partial build exists at all. +9. **RG 91 entry 27, the votive Office of the BVM on Saturday — RESOLVED + (2026-08-13, `ef-bvm-saturday` task).** `Precedence_ef.band` already + routed a plain IV-class Saturday feria to entry 27's own band value + (312 966 times domain-wide), but `Temporal_ef.temporal` never + constructed the office itself. Caput IX of the Rubricae Generales, both + photographic scans and the electronic transcription, word for word (no + scan-vs-transcription conflict — RG 78/79 are General Rubrics prose, not + the Mass-propers body text the transcription is missing): *"78. In + sabbatis, in quibus occurrit Officium de feria IV classis, fit de + sancta Maria in sabbato."* RG 78's own protasis IS "otherwise unoccupied + IV-class Saturday" — decided entirely by the existing occurrence + machinery (`band`'s own entry-27 branch already reads + `rank = Class4 && weekday = Sat` unconditionally and only wins when + nothing outranks it), so **no change to `band`, `disposition` or + `admit` was needed** — rank stays Class4 either way, and none of the + three reads slug/colour/name to decide anything. Colour is white, + unconditionally (RG 120(b), not RG 119/127/128's seasonal rules — this + office is never "de Tempore" for colour). The slug is deliberately + UNCHANGED (reused from the ordinary `--` ferial + fallback), the same precedent the Sacred Triduum (item 5) already set — + identified structurally, never off the slug — and for a second, load- + bearing reason found while building it: a bespoke uniform slug would + have broken `Validate`'s own slug-uniqueness-per-liturgical-year + invariant (asserted with zero exceptions since Plan 2), since the + office recurs many times a year. Subject is tagged `Bvm` (a real + `Subject.t` variant that existed, unused, since the kernel's vocabulary + was designed — no kernel change needed) and the name is Latin only + ("Officium sanctae Mariae in sabbato", RG 91 entry 27's own table title + and RG 79's own heading), the same zero-circularity discipline items + 3–5 already established. The I–V numbered "Missae de sancta Maria in + sabbato" (both scans) are a Mass-propers selection detail (RG 309(a): + *"iuxta temporum diversitatem"*) governing which readings are said, not + which office is kept — out of scope until Plan 4's lectionary. + **Blast radius, measured (`git archive` pre-change binary vs HEAD, full + 1583–9999 `Calendar`-resolved sweep, diffed): 75 853 days, every single + one the identical single-field shape (`colour` alone, always on a + Saturday, always `class-4` on both sides) — no anomaly.** Reconciled + against the full 312 930-day eligible population on the same sweep + domain: 102 144 are actually observed (the office wins), split by + season — 63 195 Time after Pentecost + 7 643 Septuagesima + 5 015 Time + after Epiphany (75 853 total, all VISIBLE, green/violet → white) and + 14 213 Paschaltide + 12 078 Christmastide (26 291, all INVISIBLE — RG + 119 already made those seasons white); the remaining 210 786 are + impeded by a real sanctoral winner and genuinely unaffected. Both + allow-lists moved: the lectio differential gained a new cited entry + (C17, colitur, 416 rows — lectio builds no equivalent office); the + missalemeum oracle's own M2 (previously `verdict missalemeum`, "colitur + is missing a whole office") is **CLOSED, REMOVED** — the colour + divergence it named no longer occurs on any of its 22 dates, and what + is left (`Observed_identity_unresolved` alone, the office is temporal- + origin and deliberately unnamed in English) is exactly `M18`'s own + shape, not a distinct citation any more; `M18` widens 373 → 395 + accordingly. Mutation-tested: reverting the office to a constant-false + guard reddens the dedicated unit test, an end-to-end resolve test, a + golden pin, and both allow-list count pins (in both directions — the + fix present with M2 still declared fails identically to the fix absent + with M2 removed), while a second end-to-end test/golden pin (the office + losing to a real competing feast, 12 September, the one live data + witness that also carries `subject = Bvm`) is correctly untouched by + the mutation, proving RG 26's rank-keyed omission fires before any + subject-keyed rule ever could. + ## How to work here - **Superpowers workflow**: `brainstorming` → `writing-plans` → `executing-plans` -- cgit v1.3 From da0eca73fa2a7b2357bcc28c4dd7d8b001066685 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 13 Aug 2026 17:09:41 +0200 Subject: docs: fix round 1 ride-along findings (F2-F7) F2: test_christmastide_feria_slugs's 26 December assertions removed -- St Stephen/John/the Holy Innocents (RG 67-70) always outrank a Class4 Saturday candidate there, in every year, so the office can never actually be observed on any day in the 26-28 December stretch. 3 January (no competing sanctoral entry, any year) used for the "-1-" stretch demonstration instead, alongside the pre-existing 10 January one. F3: test_differential.ml's shared row type gains a subject field (populated for colitur's own rows only; lectio's fixture has no such column). C17's own predicate now also requires subject = "bvm" -- defence in depth against a future bug producing a white Class4 Saturday candidate some other way, particularly in Christmastide/ Paschaltide where colour alone could not catch it. F4: Precedence_ef.band's entry-27 comment gains its RG 78 citation, replacing "per the historical default that fills it". F5: two report inaccuracies corrected -- band was already receiving a real candidate 312,966 times pre-change (what was missing was its identity, not its reality); the "Missae de S. Maria in sabbato" heading quote was presented as "both scans, word for word" when both scans are OCR-noisy there AND genuinely differ in abbreviation from each other -- corrected in temporal_ef.ml's own comment and the register alongside the report. F6: the colour rule gains a tighter citation chain -- RG 431(e) (the Missal's own classification of this Mass as a "Missa votiva IV classis... de B. Maria Virg.") -> RG 121(a) (votive Masses take the colour of the feast-type they correspond to) -> RG 120(b) (BVM feasts are white) -- reaching the same conclusion through the category (votive) the Missal's own text actually places this Mass in, not by treating it as a festum RG 91's own table structure says it is not. F7: the oracle's real seasonal coverage recorded precisely in CLAUDE.md and the register -- of 26 BVM-Saturday-office days in the 2026-2027 fixture only 17 are colour-discriminating; Time after Epiphany (5,015 observed days domain-wide) has zero oracle witnesses. Full account in .superpowers/sdd/2026-08-12-colitur-rg16a/ bvm-saturday-report.md (local, gitignored). --- CLAUDE.md | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md index 8cfa902..7875fbe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -587,11 +587,16 @@ candidate is exactly one and already spoken for). IV-class Saturday" — decided entirely by the existing occurrence machinery (`band`'s own entry-27 branch already reads `rank = Class4 && weekday = Sat` unconditionally and only wins when - nothing outranks it), so **no change to `band`, `disposition` or - `admit` was needed** — rank stays Class4 either way, and none of the - three reads slug/colour/name to decide anything. Colour is white, - unconditionally (RG 120(b), not RG 119/127/128's seasonal rules — this - office is never "de Tempore" for colour). The slug is deliberately + nothing outranks it), so **`band` and `admit` needed no change** — rank + stays Class4 either way, and neither reads slug/colour/name to decide + anything (`disposition` DID need one, in a fix round — see below, RG + 112(d)). Colour is white, unconditionally — the tighter chain, found in + a fix round (RG 431(e), the Missal's own classification of this exact + Mass as a "Missa votiva IV classis... de B. Maria Virg.", → RG 121(a), + votive Masses take the colour of the feast-type they "respondent" → + RG 120(b), BVM feasts are white — see below), not RG 120(b) alone + (a stretch: this Office is not itself a *festum*, RG 120(b)'s own + "de festis") and never RG 119/127/128's seasonal rules either way. The slug is deliberately UNCHANGED (reused from the ordinary `--` ferial fallback), the same precedent the Sacred Triduum (item 5) already set — identified structurally, never off the slug — and for a second, load- @@ -636,6 +641,32 @@ candidate is exactly one and already spoken for). the mutation, proving RG 26's rank-keyed omission fires before any subject-keyed rule ever could. + **Fix round 1 (2026-08-13, coordinator review) — one blocking finding, + fixed.** RG 112(d) (Caput XVI): the Office, itself "de B. Maria Virg.", + excludes another commemoration invoking the SAME BVM's intercession — + violated live: `our-lady-of-mt-carmel` (16 July, `Commemoration_only`) + was wrongly commemorated on every 16-July-Saturday. Fixed in + `Precedence_ef.disposition` (`marian_slugs` ∪ `subject = Bvm` on both + sides of the collision — the disjunction matters, neither signal alone + identifies both real sides). Checked exhaustively, not merely for + Mt Carmel: only `Commemoration_only`-status Marian entries can ever + reach this live, and the ONLY other one, `our-lady-of-ransom` (24 + September), is PROVABLY unreachable (forces the September Ember + Saturday every time, by construction). Re-measured: the original + 75,853-day blast radius is unchanged in total, splitting into 74,633 + `colour`-only + 1,220 `colour+comms`. Mutation-tested: exactly 3 tests + redden. Six further ride-along findings closed the same round: a + test pin corrected (26 December can never hold the office, St Stephen + always wins there — 3 January used instead); C17 gained a `subject`- + based identity guard; `band`'s own entry-27 comment gained its RG 78 + citation; a tighter RG 431(e) → RG 121(a) → RG 120(b) colour chain + (conclusion unchanged); and the oracle's own coverage recorded + precisely — of 26 office days in the 2026-2027 fixture only 17 are + colour-discriminating, and **Time after Epiphany (5,015 observed days + domain-wide) has ZERO oracle witnesses**, resting on the scan and the + dedicated unit test alone. Full account: + `.superpowers/sdd/2026-08-12-colitur-rg16a/bvm-saturday-report.md`. + ## How to work here - **Superpowers workflow**: `brainstorming` → `writing-plans` → `executing-plans` -- cgit v1.3