summaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md114
1 files changed, 104 insertions, 10 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 68cb906..7875fbe 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 <year>`, `temporal <year>`, `day <year>`.
@@ -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,99 @@ 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 **`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 `<season>-<week>-<weekday>` 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.
+
+ **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`