diff options
| -rw-r--r-- | data/ef/adjustments.sexp | 44 | ||||
| -rw-r--r-- | test/test_rite_ef.ml | 24 |
2 files changed, 60 insertions, 8 deletions
diff --git a/data/ef/adjustments.sexp b/data/ef/adjustments.sexp index 05ee401..68ab590 100644 --- a/data/ef/adjustments.sexp +++ b/data/ef/adjustments.sexp @@ -50,6 +50,50 @@ ; the user's ruling resolves that disagreement in the oracle's favour for ; this codebase's own purposes, not by declaring the calendarium argument ; wrong. See register §6.0 for the full account of both sides. +; +; ef-rebootstrap (2026-08-12): both directives re-examined against the +; regenerated source (tridentine-calendar.ini, SHA-256 1b303ef2...), which +; independently fixed several of the same defects this file was written to +; patch. Neither directive was removed -- reasoning below, per the task's +; own instruction to decide deliberately rather than delete on sight. +; +; `Edit most-holy-name-of-mary` -- the base bootstrap no longer needs this +; correction: the regenerated INI's own `[most-holy-name-of-mary]` section +; has DROPPED its `class = lord` field entirely (confirmed by direct grep +; against the source), so `tools/bootstrap_sanctoral.ml`'s `parse_subject` +; now falls through to its own default, `Subject.Saint` -- not `Lord` -- +; before this overlay ever runs. Checked what {!Overlay.apply}'s [Edit] +; actually does with a directive whose target slug is present but whose +; field is no longer wrong, rather than assuming: [Edit] has no notion of +; "already correct" -- it looks up the slug, and if found (as this one +; still is) unconditionally folds every field_edit over the current value, +; firing NO diagnostic either way (overlay.ml's [apply_directive], the +; [Edit] branch: the only diagnostic is "slug not present", never "already +; matches"). So this is not a no-op: it still forces `Saint -> Bvm` on +; every run, identically to before, just starting from a different base +; value than it used to. Decision: KEEP, for two independent reasons, not +; one -- (1) DATA PRECISION, unaffected by the base bootstrap's own fix: +; the calendarium's "Sanctissimi Nominis Mariae" title names Mary +; specifically, so [Bvm] remains the more accurate tag than the generic +; [Saint] default, on the same textual grounds as the original entry +; above, regardless of what lectio's own `class` field happens to say this +; week. (2) REGRESSION DEFENCE: because [Set_subject] is unconditional, it +; also now stands as a guard against `class = lord` ever being +; RE-introduced for this slug by a future lectio regeneration -- the +; overlay would still force the result away from [Lord] (the one subject +; value {!Precedence_ef.band}'s RG 16(a) branch behaviourally reads), +; rather than silently letting a re-introduced bootstrap defect through. +; Removing the directive now would trade a currently-harmless redundancy +; for the loss of that guard. +; +; `Suppress vigil-of-christmas` -- re-verified, not assumed: `[vigil-of- +; christmas]` (24 Dec) is still present, unchanged, in both the +; regenerated INI and the regenerated `data/ef/sanctoral.sexp` (still the +; same duplicate of `rite_ef/temporal_ef.ml`'s own `ef-nativity-vigil` +; this directive was written to remove), so `Layer.mem` still finds it and +; {!Overlay.apply}'s [Suppress] branch still fires its ordinary +; slug-present path (no diagnostic) exactly as before. Nothing about this +; regeneration touched the reason this directive exists; kept unchanged. ((id ef-adjustments) (directives ((Suppress vigil-of-christmas) diff --git a/test/test_rite_ef.ml b/test/test_rite_ef.ml index 84dc060..45aa918 100644 --- a/test/test_rite_ef.ml +++ b/test/test_rite_ef.ml @@ -88,14 +88,22 @@ let test_vigil_of_christmas_suppressed () = appears_anywhere (* RG16(a) task (register §6.0 + the sanctoral subject audit, this task's - own report). data/ef/sanctoral.sexp is left untouched (still a faithful - mirror of lectio, subject `Lord` for every entry below except - `most-holy-name-of-mary` -- see test_sanctoral_ef.ml's own "explicit - class = lord" spot-check, which loads that file WITHOUT applying this - overlay and still passes); the one real correction lives entirely in - data/ef/adjustments.sexp's single remaining [Edit] directive, the same - mechanism [test_vigil_of_christmas_suppressed] above already proves for - a sibling bootstrap defect. + own report). data/ef/sanctoral.sexp is a faithful mirror of lectio, not + hand-patched (see test_sanctoral_ef.ml's own "explicit class = lord" + spot-check, which loads that file WITHOUT applying this overlay and + still passes) -- the one live correction, `most-holy-name-of-mary` -> + `Bvm`, lives entirely in data/ef/adjustments.sexp's [Edit] directive. + + CORRECTED, ef-rebootstrap (2026-08-12): this comment previously said the + base file itself carries `subject Lord` for `most-holy-name-of-mary`, + which this overlay then corrects. That stopped being true the moment + lectio's own generator was fixed (source SHA-256 1b303ef2...): the + regenerated INI dropped `class = lord` for that slug outright, so the + base bootstrap now already produces `Saint`, and this overlay's [Edit] + forces `Saint -> Bvm` instead of `Lord -> Bvm` -- same final answer, + different starting point. See adjustments.sexp's own "ef-rebootstrap" + note for why the directive is kept anyway (data precision + a + regression guard against `class = lord` being reintroduced upstream). CORRECTED, fix round 1 (CRITICAL finding, item 1): this test used to also assert `purification-of-the-blessed-virgin-mary` was retagged |
