summaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md20
1 files changed, 17 insertions, 3 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 39ca55a..f09c555 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -61,6 +61,18 @@ tool, not part of lectio.
Rite-agnostic **kernel** + **rite modules** (plug in via a signature) + **data
overlays**.
+- **`Date_spec` carries MOVABLE dates** (2026-08-17): `Fixed(month,day)` as
+ before, plus `Easter_offset of int` and `Nth_weekday of {month; nth;
+ weekday}` (negative `nth` counts from the end). `Fixed`'s sexp form is
+ unchanged, so all 327 sanctoral entries parse untouched. Easter comes from
+ the RITE (`Rite.t`'s `easter` field) — the kernel ships both Gregorian and
+ Julian and must not pick. `Layer` keeps a **split index**: fixed entries in
+ the year-independent `(month,day)` table, movable ones resolved per civil
+ year into a rata-die table, with the domain filter in `Layer.index` itself
+ (both edges, 1582 and 10000, bit during development). This unblocked
+ **Rogation Wednesday** (RG 87/88/89, register §6.10) and is what a
+ user-supplied overlay needs for a local movable feast. The `--overlay` CLI
+ plumbing is **not yet built**.
- **Kernel** (`lib/kernel`, pure, total, bounded 1583–9999): `Computus` (Gregorian
+ Julian Easter + anchors), `Date` (proleptic Gregorian arithmetic), `Overlay`
(ordered layer-merge algebra: field-level add/suppress/replace/edit, last-writer-
@@ -242,8 +254,8 @@ against missalemeum; layer 5 pins ~30 dates.
**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 (374 tests green, 375
-with the exhaustive sweep, as of `ef-oracle-2038`; this line is not kept in
+branches since — test count keeps climbing task by task (388 tests green, 389
+with the exhaustive sweep, as of the movable-date-specs task; 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
@@ -291,7 +303,9 @@ 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>`,
-`readings <year>`, `-h`/`--help`. Man page in `man/colitur.1`.
+`readings <year>`, `-h`/`--help`, `-V`/`--version`. Man page in
+`man/colitur.1`; `Makefile` installs binary + data + man page into `~/.local`
+by default. Tagged **v0.1.0**.
`--help` prints to **stdout** and exits **0**; a usage error prints one line
to **stderr** and exits **2**. The distinction is asserted in `test/cli.t`,