diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 37 |
1 files changed, 31 insertions, 6 deletions
@@ -224,13 +224,13 @@ against missalemeum; layer 5 pins ~30 dates. ever exercised between two `Commemoration_only` candidates, neither of which has any RG 91 table position to compare in the first place. -## Current state (Plans 1–3 DONE — verify with `git log`) +## Current state (Plans 1–3 + the EF lectionary DONE — verify with `git log`) **Plans 1 + 2 are on `main` (35 commits). Plan 3 and its follow-on fix/feature tasks (RG 16(a), Holy Family/RG 112(a), Holy Name/RG 110, the Sacred Triduum, the BVM Saturday Office, the Major Litanies) have landed on a chain of feature -branches since — test count keeps climbing task by task (325 tests green, 326 -with the exhaustive sweep, as of `ef-major-litanies`; this line is not kept in +branches since — test count keeps climbing task by task (369 tests green, 370 +with the exhaustive sweep, as of `ef-lectionary`; this line is not kept in lockstep with every task, `git log`/`dune test` are the actual source of truth).** The kernel, the **complete EF temporal cycle**, the **resolution engine**, the **sanctoral data**, and **all five @@ -277,7 +277,19 @@ earlier one; M5 corrected (a prior note had 2027's own outcome backwards) and M20 added by the `ef-major-litanies` task, M18 394 not 395 accordingly). Fixtures live in `test/fixtures/` with asserted SHA-256s. -**CLI**: `colitur easter <year>`, `temporal <year>`, `day <year>`. +**CLI**: `colitur easter <year>`, `temporal <year>`, `day <year>`, +`readings <year>`. + +`readings` is a **separate command, not extra columns on `day`**, for a +mechanical reason worth not rediscovering: a citation contains spaces and +commas (`Ezech 34:11-16`, `Ecclus 51:1-8, 12`) while a `day` row is +space-separated with a variable-length `+slug` commemoration tail, so +appending them there leaves the row unsplittable by field number. `day`'s +format is therefore **byte-identical** to what it was before the lectionary +existed (asserted in `test/cli.t`). Both are a **stopgap**, not the project's +answer to output: the design still calls for one schema rendered through a +logic-less template engine — two ad-hoc formats are easier to retire than one +overloaded format with unwritten parsing rules. `band` is **provably total** over everything the engine constructs: zero `unclassified` across all 8 417 years, for a 28-branch hand-transcribed table. @@ -304,8 +316,21 @@ dune exec colitur -- day 2026 | head ## What's next -- **Plan 4 — OF rite module** (proves `RITE` generalizes) → the lectionary - bootstrap and citations → full output/rendering → hardening and a first tag. +- **The EF lectionary is DONE** (branch `ef-lectionary`, 20 commits): the four- + step reading-resolution chain, its data (`data/ef/lectionary.sexp`, + `commons.sexp`, sanctoral propers), all five validation layers extended to + citations, and `colitur readings`. Layer 2 asserts that **every day of every + year 1583–9999 resolves exactly one Epistle and one Gospel** — measured, and + mutation-proved live rather than silently inert. **Chants (Psalm, Second, + Tract, Alleluia, Sequence) remain deliberately unbuilt**: no source, no + oracle, and `Validate`'s own `citations` check now *rejects* any part outside + First/Gospel, so one appearing would be a defect rather than a feature + arriving early. +- **Plan 4 — OF rite module** (proves `RITE` generalizes) → full output/ + rendering → hardening and a first tag. (The lectionary bootstrap and + citations this line used to defer to Plan 4 landed early, on + `ef-lectionary`; what remains here is OF's own lectionary, not the + mechanism, which is now built and rite-agnostic.) **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`; Holy Name of |
