aboutsummaryrefslogtreecommitdiff
path: root/test/fixtures/lectio-ef-2005-2050.provenance
blob: db9707a35a03fe828d2962ef49c540663cb00d64 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Fixture: lectio-ef-2005-2050.txt
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:
  3ad70f0 lectio-ef-dump: emit the Epistle and Gospel citations

Previous provenance (superseded by this refresh):
  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).

  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: b6c259f4fe498a141bf9f2229a1933488feed5bf9084834a1893781507fda730

REFRESH 2026-08-18 (branch main, after lectio adopted colitur's EF
corrections). THE LINEAGE INVERTED HERE. Every previous refresh of this
fixture carried lectio's answers TO colitur, because colitur's data was
bootstrapped from lectio. This one carries colitur's answers BACK: lectio
merged eight field corrections colitur had argued from the 1962 Missal --
ubaldus and didacus promoted from commemoration to III-class feast on the
Missal's own calendarium, both August vigils recoloured violet under RG 128,
and both Ember Saturdays' readings, which lectio had carrying St Thomas's and
St Matthew's Masses respectively.

Produced by ~/git/projects/lectio at commit:
  7792ad3 merge: adopt colitur's EF corrections
Previous SHA-256 was a3092e3f465c2a369ae060c2c310cd3087918b821ea839bf06276ab9d82a10ce.

REFRESH 2 (same day, after lectio adopted three FURTHER corrections: the
twelve RG 124 colours, Good Friday's black under RG 128(b)/RG 132, and RG 72's
Christmas Time boundary). 864 more rows changed. C18 (450 rows, the RG 124
colours -- the largest single class in the file) and C36 (46, Good Friday's
colour) went to ZERO and are closed; C1 fell 159 -> 35 as the season boundary
stopped differing; C23 returned 184 -> 230 as Good Friday's rows folded back
into it. Cited classes 24 -> 19, divergent rows 2252 -> 1521, agreement
86.6% -> 90.9%.

227 of the 16801 rows changed. FOUR cited divergence classes went to ZERO and
are closed: C27 and C28 (the two Ember Saturday readings), C37 (the vigil
colours) and C38 (the promoted feasts). They are removed rather than
re-adjudicated, the same discipline C2-C5, C7, C9-C13, C21, C22 and C25
already record, and their citations are preserved in
docs/research/rules-register.md.

Worth being precise about what closing them means. The two engines now agree
on those 227 days FOR THE RIGHT REASON -- both follow the Missal -- rather
than by the shared inheritance that made them agree before colitur found the
errors. That is the opposite of the failure mode CLAUDE.md's lineage note
warns about, and it is the first time this project has resolved one rather
than merely documenting it.
(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
what actually enforces it. Regenerate both together, deliberately, after
re-running the exact command below -- never by copying a mismatch's actual
value back in, which would defeat the pin's purpose.)

Exact command:
  cd ~/git/projects/lectio && go run ./cmd/lectio-ef-dump 2005 2050

Output: one line per civil day, 2005-01-01 through 2050-12-31 inclusive
(16801 lines = 46*365 + 11 leap days), in lectio's OWN vocabulary --
season/slug/rank/colour spellings are lectio's, not translated to colitur's.
See cmd/lectio-ef-dump/main.go's own doc comment for the exact column
format and the caveats this repo's comparator (test/test_differential.ml)
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 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.