<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur.git/tools/extract_litcal_ordo.py, branch v1.2.1</title>
<subtitle>deterministic OCaml engine to compute and validate liturgical calendars for multiple rites, template-driven output to year 9999</subtitle>
<id>https://git.labunix.xyz/colitur.git/atom?h=v1.2.1</id>
<link rel='self' href='https://git.labunix.xyz/colitur.git/atom?h=v1.2.1'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/'/>
<updated>2026-08-25T14:31:15Z</updated>
<entry>
<title>test(of): validate Phase 1's Ordinary Time resumption against litcal</title>
<updated>2026-08-25T14:31:15Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-25T14:31:15Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=b9cb5060d2ba5aa7f7a9d6d97e3bced112e30fed'/>
<id>urn:sha1:b9cb5060d2ba5aa7f7a9d6d97e3bced112e30fed</id>
<content type='text'>
Adds a sixth-lineage external validation layer for the OF rite module's
Phase 1 temporal cycle, targeting the single highest-risk function that
report named: the two-block Ordinary Time week arithmetic (Normae n. 44),
which has no external witness anywhere in Phase 1's own suite and whose
output selects the Mass formulary, not merely a label.

Witness: litcal (Liturgical Calendar API), Apache-2.0, already archived
and SHA-256-pinned by the sibling lectio project. AELF was considered and
correctly excluded earlier (its CGU forbids redistribution) -- litcal is
what it was replaced with.

- tools/extract_litcal_ordo.py verifies all twelve archived
  calendar-YYYY-en.json files (2024-2035; the task brief said eleven,
  but twelve are actually pinned in lectio's manifest -- all twelve are
  used) against lectio's own manifest.tsv, then builds one fixture
  spanning the contiguous 4382-day range those twelve liturgical-year
  files cover.
- test/fixtures/litcal-temporal-2024-2035.sexp: one row per day, season
  and (where witnessed) Ordinary Time week, with full provenance,
  licence, per-year Easter dates and the row-selection rules in its own
  header.
- test/test_litcal_of.ml calls Temporal_of.temporal directly (no Rite.t)
  and compares 1:1 against the fixture: zero Ordinary Time week
  mismatches on all 1876 witnessed days (zero tolerance, no allow-list);
  the only season divergence class is the Sacred Triduum, which litcal
  tags with a season value colitur's vocabulary deliberately has none of
  -- one cited allow-list entry, data/of/expected-divergences-litcal.sexp,
  36 rows, exact.
- Mutation-tested: dropping the backward-from-34 adjustment reddens this
  layer (1511 of 1876 days) plus three pre-existing Phase 1 tests; the
  mutation was not committed.

Does not touch lib/rites/rite_ef/, data/ef/, or lib/rites/rite_of/ --
this validates Phase 1, it does not change it. Full suite: 786 tests via
dune test, 791 via make check, exit 0 both; lib/bin diff empty throughout.
</content>
</entry>
</feed>
