aboutsummaryrefslogtreecommitdiff
path: root/test/fixtures/lectio-ef-2005-2050.provenance
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-15 02:58:00 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-15 02:58:00 +0200
commit459d2c74711e6a152fb338f88d2327f12180b61f (patch)
tree0151a76e7157b727457e39ba4622feff8faea3da /test/fixtures/lectio-ef-2005-2050.provenance
parent6b41415f17f3264454f6dcc13898948fd1902d0b (diff)
downloadcolitur-459d2c74711e6a152fb338f88d2327f12180b61f.tar.gz
colitur-459d2c74711e6a152fb338f88d2327f12180b61f.zip
test(differential): compare reading citations, 16 801 days
Layer 3 is NOT blind to the ferial resumption rule, unusually for this project: lectio implements the same rubric independently, so the differential checks colitur's rule against a second implementation rather than against silence. It IS blind to the Commons -- lectio has no such concept -- so chain step 4 rests on layer 4 alone. Divergence triage, 1 532 of 16 801 days differ (15 269 match exactly), 0 unexplained: - A genuine colitur bug found and fixed: data/ef/lectionary.sexp carried lectio's own ini section names verbatim, never translated into the slugs Temporal_ef actually computes for the identical office. Data the bootstrap already held (Passiontide both weeks, the Pentecost Ember days, Holy Name Sunday) was unreachable by chain step 2, silently falling through to a wrong step-3 answer -- invisible until citation content became comparable. tools/bootstrap_lectionary.ml gained colitur_keys (rename/widen), a hand-authored ef-nativity-vigil entry cross-sourced from lectio's own sanctoral calendar and corroborated by colitur's own (overlay-suppressed) sanctoral bootstrap of the same source, and a derived ef-holy-name entry (RG 17(a)'s single Mass heading covers both the Sunday and 2-January shapes). One guess (giving the fixed Nativity-Octave days Holy Name Sunday's own citation uniformly) was tried and reverted once measured against the fixture -- Missal-verified to be right only for the genuine "Sunday within the Octave" case, wrong whenever the true preceding Sunday is Christmas Day or Advent IV instead. - 10 existing/widened Layer C entries (C1/C6/C8/C14/C15/C16/C17/C18 -- C6 and C17 narrowed with the removed population accounted for, not silently re-absorbed) plus two new ones: C19 (the already-adjudicated Time-after-Epiphany week-numbering offset, now visible in citation content), C20 (lectio computes no reading at all for the seven readingless saints Task 6 gave a Common or proper -- colitur is more complete, not wrong). - One entry, C21, is a genuine colitur LOGIC limitation found but not fixed: Lectionary_ef.readings' step 3 is a single hop to the preceding Sunday, insufficient for a run of colitur-only fixed Christmastide slugs whose own preceding Sunday is itself another entry-less fixed slug. Recorded verdict open (data/ef/expected-divergences-missalemeum.sexp's own established precedent for this shape), not left silently failing -- fully diagnosed in task-8-report.md, recommended as a dedicated follow-up task rather than a hasty fix to a shared, multi-round-reviewed kernel-adjacent function.
Diffstat (limited to 'test/fixtures/lectio-ef-2005-2050.provenance')
-rw-r--r--test/fixtures/lectio-ef-2005-2050.provenance95
1 files changed, 54 insertions, 41 deletions
diff --git a/test/fixtures/lectio-ef-2005-2050.provenance b/test/fixtures/lectio-ef-2005-2050.provenance
index e05adb5..a86b7be 100644
--- a/test/fixtures/lectio-ef-2005-2050.provenance
+++ b/test/fixtures/lectio-ef-2005-2050.provenance
@@ -1,24 +1,37 @@
Fixture: lectio-ef-2005-2050.txt
-Task: 2026-08-12-colitur-rg16a, fixture refresh (differential-oracle regeneration
-after lectio's "seven EF calendar defects" fix wave; branch ef-rebootstrap).
+Task: 2026-08-14-colitur-ef-lectionary, Task 8 (fixture refresh -- lectio's
+lectio-ef-dump gained two new columns, Epistle/Lesson and Gospel citations;
+branch ef-lectionary).
Produced by the sibling project ~/git/projects/lectio at commit:
- 3b32c00 Merge branch 'fix/ef-precedence-defects': seven EF calendar defects
- (branch polish-ui-and-calendar at the time; see that repo's own log)
+ 3ad70f0 lectio-ef-dump: emit the Epistle and Gospel citations
Previous provenance (superseded by this refresh):
- 2386a45 cmd(lectio-ef-dump): new EF calendar dumper for colitur's differential oracle
- SHA-256 was 2ca3eeeda4e7a0406c4d004c1b2003fc0df671aca9af18a1b506543a721c8bac.
- Between 2386a45 and 3b32c00, lectio fixed seven EF calendar defects (Sunday
- I-class ranks incl. Rose Sundays, Holy Thursday's colour, Ember-day rank,
- the September-Ember-vs-St-Matthew/Thomas occurrence, the Joseph-on-a-Lent-
- Sunday transfer, the 2011 Precious-Blood transfer, and the Nativity-octave
- III-class-feast bootstrap gap) and root-caused its sanctoral generator.
- 806 of the 16801 rows changed field-for-field (fields 1-7) between the two
- fixtures -- see .superpowers/sdd/2026-08-12-colitur-rg16a/fixture-refresh-report.md
- for the full before/after account.
+ 3b32c00 Merge branch 'fix/ef-precedence-defects': seven EF calendar defects
+ SHA-256 was fc4832f1bc1bdfd322e808ae4929487628981792c23f959c1764c8eaedbfaf7f.
+ Between 3b32c00 and 3ad70f0, lectio's own calendar/precedence logic did NOT
+ change at all (verified: fields 1-7, date through colour, are byte-for-byte
+ identical row for row against the prior fixture) -- only the dumper itself
+ changed, appending two new columns ("first", "gospel": the day's resolved
+ Epistle/Lesson and Gospel citations, via the same caldata.Readings the CLI
+ and calfeed use, not a raw per-slug lookup -- see cmd/lectio-ef-dump/main.go's
+ own doc comment). Column count: 9 -> 11 fixed fields (name_en/name_pl/first/
+ gospel now sit between colour and any trailing "+other-slug" tokens).
-SHA-256: fc4832f1bc1bdfd322e808ae4929487628981792c23f959c1764c8eaedbfaf7f
+ Previous refresh (2026-08-12, task 2026-08-12-colitur-rg16a, branch
+ ef-rebootstrap), for reference:
+ 2386a45 cmd(lectio-ef-dump): new EF calendar dumper for colitur's differential oracle
+ SHA-256 was 2ca3eeeda4e7a0406c4d004c1b2003fc0df671aca9af18a1b506543a721c8bac.
+ Between 2386a45 and 3b32c00, lectio fixed seven EF calendar defects (Sunday
+ I-class ranks incl. Rose Sundays, Holy Thursday's colour, Ember-day rank,
+ the September-Ember-vs-St-Matthew/Thomas occurrence, the Joseph-on-a-Lent-
+ Sunday transfer, the 2011 Precious-Blood transfer, and the Nativity-octave
+ III-class-feast bootstrap gap) and root-caused its sanctoral generator.
+ 806 of the 16801 rows changed field-for-field (fields 1-7) between the two
+ fixtures -- see .superpowers/sdd/2026-08-12-colitur-rg16a/fixture-refresh-report.md
+ for the full before/after account.
+
+SHA-256: 8c0b9d9fc284138e69dbbbd87e9153a17f1abb69a39928464d83d248a819f376
(same digest as [fixture_sha256] in test/test_differential.ml, ASSERTED by
that suite's own "fixture SHA-256 matches its provenance note" test -- this
line documents the pin for a reader who never runs the suite; that test is
@@ -38,32 +51,32 @@ relies on: the trailing "+other-slug" tokens are LOSING candidates (lectio
has no RG 111 admission logic), and lectio's own EF oracle test asserts
season only, for 2025-2026 only (rank/colour are logged, not asserted).
-Column count changed since the previous fixture: the dumper at 2386a45
-printed 7 space-separated fields (date weekday season week slug rank
-colour) plus any trailing "+other-slug" tokens; at 3b32c00 it prints 9
-(the same 7, PLUS name_en and name_pl -- the observed celebration's own
-display name in each language, "_"-for-space, "-" for empty) before the
-"+other-slug" tail. DECISION (this refresh): keep the fixture as the
-dumper's raw, unedited stdout, name columns included -- do not strip them
-back to 7 fields. Reasons: (1) this file's own contract is "the exact
-command's output, verbatim" -- stripping columns would mean the committed
-bytes no longer equal what the command above produces, forcing an
-undocumented post-processing step into what is supposed to be a one-line
-regeneration; (2) test/test_differential.ml's row_of_line already matches
-`date :: weekday :: season :: week :: slug :: rank :: colour :: _others`,
-so any extra trailing fields land in the ignored `_others` tail with no
-code change needed -- positions 1-7 (everything the comparator actually
-reads) are unaffected by the two new columns appended after them; (3) the
-names make the fixture usefully human-readable for manual triage (matching
-a slug like `ef-lent-sunday-1` against its own "First_Sunday_of_Lent" is
-faster than cross-referencing sanctoral data by hand). Cost: name_en/pl
-now sit in the same unparsed trailing region as the real "+other-slug"
-losing-candidate tokens, since neither is "+"-prefixed -- harmless today
-because nothing reads `_others` at all, but worth knowing if a future task
-ever wants to parse that tail: field 8 and 9 are names, not candidates,
-and only tokens from field 10 onward (or 9 onward on a line with no name_pl
-edge case -- there is none; both name fields are always present, "-" when
-empty) are "+"-prefixed losing candidates.
+Column count history: the dumper at 2386a45 printed 7 space-separated
+fields (date weekday season week slug rank colour) plus any trailing
+"+other-slug" tokens; at 3b32c00 it grew to 9 (the same 7, PLUS name_en
+and name_pl -- the observed celebration's own display name in each
+language, "_"-for-space, "-" for empty); at 3ad70f0 (this refresh) it
+grew to 11, appending "first" and "gospel" -- the day's RESOLVED Epistle/
+Lesson and Gospel citations (caldata.Readings, the same fallback-applying
+function the CLI and calfeed use, not a raw per-slug lectionary lookup),
+same "_"-for-space/"-"-for-absent encoding as the name columns. DECISION
+(unchanged since the first refresh): keep the fixture as the dumper's raw,
+unedited stdout -- do not strip or reorder columns. This file's own
+contract is "the exact command's output, verbatim"; editing it would mean
+the committed bytes no longer equal what the command above produces,
+forcing an undocumented post-processing step into what is supposed to be
+a one-line regeneration.
+
+Task 8 (this refresh) widened test/test_differential.ml's own row_of_line
+to read fields 8-11 too, not only 1-7: name_en/name_pl (8-9) are parsed
+and immediately discarded (still no code reads them -- the names remain
+useful for manual triage only, matching a slug like `ef-lent-sunday-1`
+against its own "First_Sunday_of_Lent" is faster than cross-referencing
+sanctoral data by hand); first/gospel (10-11) are decoded ("_" back to
+space) and carried into the comparator's own `row.first`/`row.gospel`
+fields, compared against colitur's own resolved citations. Only tokens
+from field 12 onward are the real "+"-prefixed losing-candidate tail
+`_others` still captures and still never reads.
Regenerate with the same command if lectio's EF calendar logic changes and
the fixture needs updating; do not hand-edit this file.