summaryrefslogtreecommitdiff
path: root/tools/dune
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-15 03:40:19 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-15 03:40:19 +0200
commitb0ff86ae552b90613be21c52433f4180deba7758 (patch)
tree5d3e41886ded15231da10d06659eb24cc106650f /tools/dune
parent459d2c74711e6a152fb338f88d2327f12180b61f (diff)
downloadcolitur-b0ff86ae552b90613be21c52433f4180deba7758.tar.gz
colitur-b0ff86ae552b90613be21c52433f4180deba7758.zip
test(differential): fix round 1 -- Holy Week, Lent Ember, RG 69
Two Critical findings, both real: Holy Week (including the entire Sacred Triduum) was reading Passion Week's Masses -- the original colitur_keys widened lectio's single, conflated ini section into both weeks instead of Passion week alone. Narrowed to Passion week only; Holy Week's own four cleanest days (Monday, Tuesday, Thursday, Saturday) are hand-authored directly from the Missal, verified twice against both scans (C23); Holy Wednesday and Good Friday are genuinely multi-lesson liturgies with no single Epistle slot and are deliberately left unanswered, not guessed (C24). The Lenten Ember days were still dead keys: Temporal_ef computes ef-lent-ember-{wed,fri,sat}, lectio's ini names the same data ef-lent-1-{wednesday,friday,saturday}, and colitur_keys never translated it -- both engines independently fell through to the same wrong ferial answer, so even the differential stayed green (C22, a genuine lectio bug recorded for upstream). Fixed the instance and the class: colitur_keys gained the rename, and tools/bootstrap_lectionary.ml gained assert_reachable, sweeping Rite_ef.Temporal_ef.temporal at generation time so a translation table entry naming a slug colitur never computes dies loudly instead of shipping silently, plus an informational log of every real slug with no entry at all. C21 ("colitur's step 3 cannot reach a correct answer for the fixed Christmastide slugs") is retired, superseded rather than merely patched: the Nativity-Octave days now have their own direct Missal formulary (Tit. 3,4-7/Luc. 2,15-20, "Diebus infra octavam Nativitatis Domini"), resolved at step 2, not step 3 at all. That surfaced a real RG 69 gap underneath it: a Sunday landing 26-31 December should keep its own Office, not the fixed weekday placeholder, which Temporal_ef does not currently distinguish. C6's verdict is re-opened (open, not colitur) for the 19 of its 138 rows where this applies directly, and a new entry C25 (57 rows) records the same gap propagating one hop further through step 3 into Holy Name week. Both are out of this task's own scope -- a behaviour change to a shared, multi-round-reviewed kernel-adjacent function -- and recorded, not fixed, per the coordinator's own instruction. C6's own note is rewritten in full rather than layered with another correction; C18's stale trailing count is fixed to match its own pin; the Vigil-misapplication risk flagged as a Minor closed itself once the Nativity-Octave fix landed, confirmed by inspection rather than assumed. dune test: 358/358. COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force: 359/359.
Diffstat (limited to 'tools/dune')
-rw-r--r--tools/dune8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/dune b/tools/dune
index fa6943d..96b6b36 100644
--- a/tools/dune
+++ b/tools/dune
@@ -13,6 +13,12 @@
; Run via `dune exec tools/bootstrap_lectionary.exe -- <source.ini> <dest.sexp>`.
; Same `unix` usage as bootstrap_sanctoral above: shells out to `sha256sum`
; for the provenance header only, never a new opam dependency.
+;
+; `rite_ef` added (task 8 fix round 1, coordinator review, Critical 2):
+; the generator's own [assert_reachable] sweeps Rite_ef.Temporal_ef.temporal
+; directly to catch a translation table entry that names a slug colitur
+; never actually computes -- no new dependency, bootstrap_sanctoral above
+; already links this same library for the identical "code, not data" reason.
(executable
(name bootstrap_lectionary)
- (libraries colitur_kernel unix sexplib))
+ (libraries colitur_kernel rite_ef unix sexplib))