<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur.git, branch v0.10.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=v0.10.1</id>
<link rel='self' href='https://git.labunix.xyz/colitur.git/atom?h=v0.10.1'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/'/>
<updated>2026-08-21T13:29:47Z</updated>
<entry>
<title>release: v0.10.1</title>
<updated>2026-08-21T13:29:47Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:29:47Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=4f87cbde4ee79ac96aa7ebfed105b3a5ec02be43'/>
<id>urn:sha1:4f87cbde4ee79ac96aa7ebfed105b3a5ec02be43</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG entry for 0.10.1</title>
<updated>2026-08-21T13:28:13Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:28:13Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=43bea0b314c902e148f0ad9154a2ef05fd459d9a'/>
<id>urn:sha1:43bea0b314c902e148f0ad9154a2ef05fd459d9a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs(C39): day-level confirmation from the LMS Ordo</title>
<updated>2026-08-21T13:12:08Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:12:08Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=d129b9b9a766c3530d2dd6ac131ebafd1bddf7a5'/>
<id>urn:sha1:d129b9b9a766c3530d2dd6ac131ebafd1bddf7a5</id>
<content type='text'>
The Latin Mass Society Ordo 2024-2025 for England and Wales (v2.21,
compiled by Peter Day-Milne) gives 9 August 2025 as "OUR LADY on SATURDAY
IV Cl W / V Mass of BVM / Commem of St Romanus M at Low Mass" -- no vigil
-- and 10 August as the 9th Sunday after Pentecost with St Laurence
commemorated. That is colitur's output on both days, field for field.

It is discriminating where the Ordo already in docs/research was not. This
edition lists six vigils as the day's office across its year, including the
Assumption's on 14 August 2025, and its footnotes discuss arranging a
diocesan feast around the Vigil of St Laurence in other years. Its absence
on 9 August 2025 is an application of the rule, not a data gap. The
extraordinaryform.org Ordo omits that vigil on every date it covers,
including 2027-08-09 where the clause says to keep it, which is why it
witnesses nothing here.

Also confirms the Vigil of the Assumption as II Cl violet, the RG 128
colour this project corrected from the bootstrap's White.

The clause's other shape -- feast transferred away, 2022/2033/2038/2044 --
remains unwitnessed; no accessible Ordo covers those years. Stated in the
note rather than left implied.
</content>
</entry>
<entry>
<title>merge: RG 33's third omission trigger</title>
<updated>2026-08-21T13:07:44Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=35c11c7ccf95acfb35a7ec34edfa86d92da60e4a'/>
<id>urn:sha1:35c11c7ccf95acfb35a7ec34edfa86d92da60e4a</id>
<content type='text'>
The last unbuilt clause in the EF module. A II/III-class vigil is omitted
entirely when the feast it precedes fails to keep its own day -- 1 744 days
across 1583-9999, three verified shapes, zero unexplained.

Rule and vigil inventory independently confirmed by O'Connell 1964, outside
the Divinum Officium -&gt; missalemeum -&gt; lectio lineage. The 10 affected days
in 2005-2050 are allow-listed as C39; no external day-level witness exists,
which the note states rather than glosses.
</content>
</entry>
<entry>
<title>docs(C39): O'Connell 1964 confirms the rule and the vigil inventory</title>
<updated>2026-08-21T13:04:52Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:04:52Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=f3ac69d0a679200a48716be065a0fa2e70a2c6da'/>
<id>urn:sha1:f3ac69d0a679200a48716be065a0fa2e70a2c6da</id>
<content type='text'>
Replaces the withdrawn Ordo claim with a real one of a different kind.
O'Connell, The Celebration of Mass (4th ed., 1964) -- a rubrics commentary
contemporary with the 1960 Code, outside the Divinum Officium -&gt;
missalemeum -&gt; lectio lineage, already cited here for RG 128 -- states all
three of RG 33's triggers in English, the third included, verbatim in
substance with the Latin.

The same passage confirms vigil_feast_table's membership independently:
Christmas Eve and Pentecost I class and so outside the rule; Ascension,
Assumption, John the Baptist and Peter &amp; Paul II class; St Lawrence the
sole III-class vigil. Five entries, the same five, same class split.

It confirms the RULE and the ENTITY LIST, not the 10 days -- O'Connell
publishes no day-by-day calendar. The distinction is stated in the note
rather than blurred, since blurring it is what the withdrawn Ordo
paragraph did.
</content>
</entry>
<entry>
<title>docs(C39): withdraw the Ordo corroboration claim</title>
<updated>2026-08-21T13:00:03Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T13:00:03Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=afd82f97ff440add51ea3e87c7ab53938443d5a0'/>
<id>urn:sha1:afd82f97ff440add51ea3e87c7ab53938443d5a0</id>
<content type='text'>
C39 and the 2025 golden pin both claimed the published Ordo independently
confirms RG 33's third trigger, because it omits St Lawrence's vigil on
2025-08-09 where lectio and missalemeum keep it.

It does not. The Ordo omits that vigil on 2027-08-09 as well, where the
clause says to keep it (10 August is a Tuesday, the feast holds its day),
and 2026-08-09 is a Sunday where the rule's first trigger omits it anyway.
The 2024 date has no row. So the Ordo never shows St Lawrence's vigil on
any date it covers, and the 2025 agreement is a blanket gap coinciding with
the right answer, not evidence.

The rule itself is unaffected: it rests on RG 33's text, which admits no
latitude, and on lectio not evaluating the clause at all -- "RG 33" appears
nowhere in its production code, and the third trigger cannot emerge from
per-day rank comparison because it turns on what is observed the following
day. The divergence is architectural, not a disagreement about the rubric.

Recorded rather than deleted: the withdrawn claim is why this entry was
first written up as unusually well corroborated.
</content>
</entry>
<entry>
<title>docs(C39): correct the shape split, 7/3 -&gt; 6/4</title>
<updated>2026-08-21T12:46:34Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T12:46:34Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=8072287da9d8e8a9e2de8b7845923f5d576dea55'/>
<id>urn:sha1:8072287da9d8e8a9e2de8b7845923f5d576dea55</id>
<content type='text'>
The note apportioned the entry's ten rows as seven commemoration-reduced
and three transferred, counting 2038-06-23 in both halves to make the
arithmetic work. It is six and four; the row count itself was always
right, and is pinned by the comparator.
</content>
</entry>
<entry>
<title>chore: gitignore .superpowers working artifacts</title>
<updated>2026-08-21T12:42:36Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T12:42:36Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=651eb993240164123067001c053c9e0b8d970459'/>
<id>urn:sha1:651eb993240164123067001c053c9e0b8d970459</id>
<content type='text'>
Agent research reports, SDD ledgers and review packages, same local-only
reasoning as docs/. Untracked but not ignored until now, so they showed up
in every git status.
</content>
</entry>
<entry>
<title>feat(ef): implement RG 33's third omission trigger</title>
<updated>2026-08-21T12:42:30Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T12:42:30Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=12b97761019cfa02ca0da8a5fb50ef815d07685c'/>
<id>urn:sha1:12b97761019cfa02ca0da8a5fb50ef815d07685c</id>
<content type='text'>
RG 33 omits a II/III-class vigil in three cases: it falls on a Sunday, it
falls on a I-class feast, "vel si festum cui praemittitur in alium diem
transferri aut ad commemorationem reduci contingat". Only the first two
were built; the third was recorded in precedence_ef.ml as unimplemented on
the grounds that no witness existed in the shipped data. That reasoning was
wrong, and the rule fires on 1 744 days across 1583-9999.

Both halves of the clause reduce to one observable question -- is the feast
the OBSERVED office on the following day (RG 34 puts it there) -- so the
kernel asks it once per candidate, after place_transfers has settled the
year. No fixed point is needed: a vigil is a candidate only on its own day,
never on its feast's, so suppressing it cannot change what the next day
observes. Precedence.rules gains vigil_feast, which returns the slug of the
feast a vigil precedes; the kernel cannot infer that itself, because only
two of the five vigil/feast pairs share a slug stem.

Blast radius, measured pre-change binary vs HEAD over the whole domain and
classified: 1 744 days, three shapes, zero unexplained. 1 199 are the feast
reduced to a commemoration (10 August on a Sunday, St Lawrence); 478 and 67
are the feast transferred under RG 96 after the Sacred Heart or Corpus
Christi takes its day. The Assumption's and the Ascension's vigils never
qualify -- their I-class feasts always keep their own day.

Independently witnessed, which is unusual here. The published Ordo -- the
only witness outside the Divinum Officium -&gt; missalemeum -&gt; lectio lineage
-- omits St Lawrence's vigil on 2025-08-09, agreeing with colitur against
both engines. That date had been read earlier as an Ordo gap; the Ordo was
right, and correcting the misreading is what surfaced this clause. On
2027-08-09 the feast does keep its day and the Ordo omits a vigil colitur
correctly keeps, which is a genuine Ordo gap.

Allow-lists: C39 (lectio, 10 rows) and a 2038 oracle class citing the
register, the 2026-2027 window having no instance. The golden pin asserting
St Lawrence's vigil is violet moved 2025 -&gt; 2027; its own comment had
reasoned about the vigil's weekday and missed that RG 33 also looks at the
feast's. Two new pins cover both shapes of the clause.

The vigil/feast table is built with Slug.of_string_exn: mutation testing
showed that of_string plus Result.to_option turns a typo into None, which
this hook's contract reads as "not a vigil", switching the rule off in
silence. Two tests assert the table against the shipped data in both
directions.
</content>
</entry>
<entry>
<title>docs(config): document the flavour key</title>
<updated>2026-08-21T10:33:30Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-21T10:33:30Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=0eae32f67145065b0e4960650ae06c293fd9f272'/>
<id>urn:sha1:0eae32f67145065b0e4960650ae06c293fd9f272</id>
<content type='text'>
colitur.1 documented the flag and colitur-config(5) documented every
[defaults] key except this one, which the previous commit added.

Says what a flavour IS rather than only listing the values: the set of
characters that must be neutered so a value cannot corrupt its target.
A semicolon is ordinary text in LaTeX and a field separator in
iCalendar; an unescaped &amp; or _ does not look wrong in LaTeX, it aborts
the build. Also why unset means INFER rather than 'no escaping', and why
there is no silent fallback.
</content>
</entry>
</feed>
