<feed xmlns='http://www.w3.org/2005/Atom'>
<title>colitur.git/tools/extract_of_calendar.py, branch v1.2.0</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.0</id>
<link rel='self' href='https://git.labunix.xyz/colitur.git/atom?h=v1.2.0'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/'/>
<updated>2026-08-25T21:51:36Z</updated>
<entry>
<title>fix(of): correct subject over-match, provenance truth, and stale hazard comment</title>
<updated>2026-08-25T21:51:36Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-25T21:51:36Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=0994587b3694bb87d9a8ee32d60babf25c784acf'/>
<id>urn:sha1:0994587b3694bb87d9a8ee32d60babf25c784acf</id>
<content type='text'>
Four fixes from fix round 2 review:

classify_subject's "maria"/"b.m.v" substring test over-matched 12 saints
who merely carry "Maria" in their own name (Maximilian Mary Kolbe, John
Mary Vianney, Mary Magdalene among them) as Bvm. Replaced with an
explicit BVM_DATES table of the 13 genuinely Marian entries. Bvm 25 -&gt; 13.

The provenance header claimed lectio is "never a source", which omitted
that slugs and English names both come from it. Corrected to state
exactly what does (slugs, en names) and does not (every substantive
field) come from lectio. A missing lectio file used to degrade silently
to a different SHA-256 with no en names and no warning; it now fails
loudly. lectio's own SHA-256 is now pinned alongside the Missal PDF's.

Four more entries carried a second pdftotext artifact distinct from the
letter-spacing already handled -- a combining diacritic rendered as a
stray spacing character (Kim Taegŏn/Chŏng Ha-sang, Đũng Lạc, Makhlūf,
Kęty). Hand-repaired the same way Peter Damian was, each corroborated by
the identical corruption recurring in the Missal's own index.

precedence_of.ml's PHASE 3 HAZARD comment about All Souls (2 November)
was asserting a gap that no longer exists now that OF sanctoral data
ships. Added test_all_souls_beats_an_ordinary_sunday, which resolves the
shipped All Souls entry against a real per-annum Sunday (2025-11-02)
through the actual Precedence.resolve pipeline, and updated the comment
to record the resolution instead of demanding it.
</content>
</entry>
<entry>
<title>fix(of): add the Sacred Heart of Jesus and Immaculate Heart of Mary</title>
<updated>2026-08-25T21:25:56Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-25T21:25:56Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=98d698b261c75a287ba3992744032babfb6ad763'/>
<id>urn:sha1:98d698b261c75a287ba3992744032babfb6ad763</id>
<content type='text'>
Both are printed in the 2002 calendar table, immediately after 30 June, as
prose headings rather than (kalends, day) rows -- the shape parse_rows'
generic movable-heading skip branch was built for, which is why the first
pass silently dropped them. They belong in the transcription, not in
Temporal_of: adding them completes the table this file transcribes rather
than amending the temporal cycle.

Produced as Date_spec.Easter_offset entries (68 and 69 respectively), the
same variant already used for EF's Rogation Wednesday and needing no
kernel change. Pentecost is Easter+49, so the Friday and Saturday after
the Second Sunday after Pentecost are Easter+68/+69 -- verified against
three real Easter dates (2026, 2027, 2035), not merely computed on paper.

The extractor now recognises these two headings specifically among the
seven "Dominica/Feria/Sabbato ... :" headings the table contains; a full
audit of the other five confirms each is already covered by Temporal_of
and correctly stays excluded here. 206 -&gt; 208 entries.
</content>
</entry>
<entry>
<title>feat(of): transcribe the 2002 General Roman Calendar</title>
<updated>2026-08-25T21:14:13Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-25T21:14:13Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/colitur.git/commit/?id=d201028d71ad3f26d5ec0b9c12268475e0b70cfd'/>
<id>urn:sha1:d201028d71ad3f26d5ec0b9c12268475e0b70cfd</id>
<content type='text'>
Extracted from the Latin typical edition, which is the authority; lectio's
roman-calendar.ini is a cross-check only and every divergence is adjudicated
against the Missal in the provenance header.

A blank grade column means Memoria ad libitum, per the calendar's own
footnote, rather than a missing value. 206 entries; 1 January, 6 January and
25 December are deliberately excluded because Temporal_of.named already
computes them, and shipping them here too would create a duplicate
candidate for the same day.

Colour is derived from IGMR n. 346, cited per class in the extractor; the
lectio cross-check surfaces one rank divergence (22 July, Mary Magdalene --
lectio reflects the 2016 post-2002 elevation decree, out of scope here) and
17 colour divergences, all adjudicated in the provenance header.
</content>
</entry>
</feed>
