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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
; data/ef/expected-divergences-missalemeum.sexp -- Task 16's cited allow-list
; for colitur's oracle harness against missalemeum (test/test_oracle.ml),
; 2026-2027. A SEPARATE file from data/ef/expected-divergences.sexp (the
; lectio allow-list, Task 15): the two oracles disagree with colitur in
; different places and for different reasons, so the two lists are kept
; apart rather than merged into one with two provenances tangled together.
;
; [verdict] names which side this task's own primary-source research backs
; -- NOT always "colitur", unlike the lectio file's own convention (that
; file's header: "every entry here is colitur"). Some of these entries are
; genuine DATA GAPS this task found and could not fix here (the sanctoral
; data is bootstrapped from lectio, which is itself missing several of
; these entries -- CLAUDE.md's binding decision 3, and this task does not
; touch ~/git/projects/lectio) or genuine CODE gaps (RG 91 entry 27's BVM-
; Saturday office, RG 110's inseparable Peter/Paul commemoration) this task
; did not build. Those are honestly verdicted [missalemeum] -- colitur is
; short a feature or a row, not correct -- and each is cross-referenced
; into docs/research/rules-register.md §6 as an open item, not silently
; absorbed as if colitur were right. TWO entries (M11 and M13) are
; [verdict open] -- corrected, final fix wave, item 7: this note previously
; said "one entry (M13)", missing M11 (whose own verdict changed from
; [colitur] to [open] in fix round 1, see M11's own entry below). Task B
; (branch ef-rg16a) briefly added a THIRD, M17, adjudicated [open] as a
; "genuine same-band tie RG 113 does not resolve" -- CORRECTED, Task B fix
; round 1: M17 was wrong. The tie was manufactured by Precedence_ef.band
; lending a Commemoration_only candidate the same table entry as a genuine
; Feast of its own rank (RG 91's table has no row for a bare commemoration
; at all); fixed in band itself, and the divergence disappears entirely --
; M17 was REMOVED, not re-adjudicated to a different verdict. ONE entry
; (M15) carries a fourth verdict, [unresolvable] -- a LIMIT of this
; comparator (no English name exists on colitur's side for a temporal-
; origin commemoration to compare), not a rubric dispute or a data gap
; either engine is wrong about; see M15's own note. All remaining OPEN
; entries are adjudicated as UNRESOLVED/UNRESOLVABLE after real
; primary-source effort, not defaulted past -- see each entry's own note
; and the task report for the full search.
;
; M18 -- ef-rg112-rg110 task (Holy Family, RG 17(b)): test_oracle.ml's own
; comparator was strengthened to compare the OBSERVED day's identity, not
; only its rank and colour (the gap that let the missing Holy Family go
; unnoticed by this layer for as long as it did -- rank 2/white on both
; sides purely by coincidence). [M18] is [verdict unresolvable], the SAME
; fourth verdict as M15, for the SAME reason: colitur's own resolved name is
; [None] for any TEMPORAL-origin observed day, the large majority of this
; window. M1, M2, M3, M13 and M16's own subsets were each widened to absorb
; this axis where it fires alongside their pre-existing citation (see each
; entry's own note) rather than being folded into M18's own count, which
; covers only rows where [Observed_identity_unresolved] is the SOLE
; disagreement.
;
; FIVE MORE REMOVED, ef-rebootstrap (2026-08-12), same shape as M17's own
; removal above -- not re-adjudicated to a different verdict, just gone,
; because the underlying divergence stopped occurring: M4 (second
; commemoration of St Agnes, 28 Jan), M6 (St Eusebius Confessor, 14 Aug),
; M7 (St Evaristus, 26 Oct), M9 (St Theodore, 9 Nov) and M14 (St Boniface
; Martyr, 14 May) were all recorded as genuine DATA GAPS traced upstream
; into lectio's own tridentine-calendar.ini and "cannot be fixed without
; touching lectio" -- true at the time, and no longer true: lectio's own
; generator was independently fixed in the same session (docs/research/
; rules-register.md's own transcription-audit record) and colitur's
; sanctoral data re-bootstrapped from the corrected source (SHA-256
; 1b303ef2..., tools/bootstrap_sanctoral.ml's own regenerated header). All
; five commemorations these entries named are now present in
; data/ef/sanctoral.sexp (agnes-secundo, boniface-martyr, eusebius-confessor,
; evaristus, theodore -- CORRECTED, fix round 1: this list previously
; dropped boniface-martyr, an omission with no other consequence, since the
; removal itself and the row-count check below were never driven by this
; prose list) and admitted through the ordinary pipeline with no code
; change -- re-run against the 2026-2027 fixture, each of the five now
; contributes ZERO rows to the comparator's own diff stream (verified: the
; day-by-day classification no longer reaches [layer_m_reason] for any of
; their dates at all, since [diffs = []] -- Matched, not Explained -- for
; every one). Removed rather than kept as a dead 0-row citation, matching
; the M17 precedent immediately below: the count pin now enforces that
; none of these five divergences can silently reappear.
;
; PROVENANCE, added ef-rebootstrap fix round 1 (F7): removing M4/M6/M7/M9/
; M14 deleted the only TRACKED primary-source citations for these five
; entries -- docs/research/ (where the full quotes and page cross-checks
; originally lived) is gitignored, and data/ef/sanctoral.sexp is generated
; data with no citations field of its own, so without this note the public
; repository would carry no record of why these five exist at all. Each
; quote below is verbatim from `missale-romanum-1962.pdf`'s own calendarium
; (the photographic scan, primary-source-verified 2026-08-12, per the same
; standard as every other citation in this file):
; - agnes-secundo (28 Jan): "S. Petri Nolasci Conf., III classis. /
; Com. S. Agnetis Virg. et Mart., secundo."
; - boniface-martyr (14 May): "Com. S. Bonifatii Mart."
; - eusebius-confessor (14 Aug): "Vigilia, II classis, Commemoratio
; S. Eusebii Conf.", with its own proper immediately following,
; "Eodem die 14 augusti / S. Eusebii Conf. / Commemoratio / Missa
; Iustus, ut in festo S. Pauli primi Eremitae, die 15 ianuarii..."
; -- the proper is also this entry's own colour citation: "Conf.", not
; "Mart.", borrowing a CONFESSOR's Mass -- see adjustments.sexp's own
; `Edit eusebius-confessor` entry (fix round 1, F3), which corrects the
; colour this bootstrap inherited (Red) against this same evidence.
; - evaristus (26 Oct): "Com. S. Evaristi Papæ et Mart."
; - theodore (9 Nov): "IN DEDICATIONE ARCHIBASILICÆ SANCTISSIMI
; SALVATORIS, II classis. / Com. S. Theodori Mart."
;
; [expected_rows] is the exact row count this entry accounts for over the
; fixture's 2026-2027 span: a REGRESSION PIN, not documentation --
; test_oracle.ml asserts actual counts equal these exactly, so an unnoticed
; behaviour change here fails loudly instead of silently changing what the
; harness accepts.
;
; Regenerate expected_rows only after re-adjudicating the change against
; the Missal/register -- never by re-running the comparator and copying its
; output back here (that would launder a regression into a new baseline).
((id M1)
(citation "RG 33, corrected (precedence_ef.ml's own [is_omissible_vigil], primary-source-verified 2026-08-12): \"Vigilia II aut III classis penitus omittitur, si occurrat in dominica quavis...\" -- a II or III class vigil is entirely omitted if it occurs on ANY Sunday")
(verdict colitur)
(note "missalemeum does not implement RG 33's Sunday-omission for II/III-class vigils. 28 June 2026 (Vigil of Sts Peter & Paul, II class): still shown as a commemoration on the V Sunday after Pentecost. 9 August 2026 (Vigil of St Lawrence, III class): shown as the day's FULL OBSERVED OFFICE, displacing the XI Sunday after Pentecost entirely, not merely surviving as a commemoration.")
(expected_rows 2))
((id M2)
(citation "RG 91 entry 27 (\"Officium sanctae Mariae in sabbato\") -- register §4")
(verdict missalemeum)
(note "Every otherwise-unoccupied IV-class Saturday should carry the votive Office of the BVM (white; missalemeum's own titles cycle \"I\"..\"V Mass of the B. V. M. -- Salve, Sancta Parens\"). precedence_ef.ml's [band] already has an entry-27 comment acknowledging this row exists (corrected attribution, final fix wave: this note previously said temporal_ef.ml, but [band] is precedence_ef.ml's own function), but [Temporal_ef.temporal] never actually CONSTRUCTS this office -- an unimpeded Time-after-Epiphany/-Pentecost Saturday gets a bare ferial slug and season green instead. A genuine feature gap, not a citation dispute; tracked in register §6, not built in this task. REFRESHED (ef-rg112-rg110 task): expected_rows moved 17 -> 22, for the SAME reason M1/M3/M16 below move too -- the new observed-identity axis (test_oracle.ml's own header) now ALSO fires on 5 Paschaltide BVM-Saturday dates that used to match CLEANLY (colour already white there, RG 119, so the pre-existing [Colour_f]-only check never even reached these 5 rows; M2's own comment already noted \"every Paschaltide occurrence... never reaches this predicate at all\" -- no longer true once [Observed_identity_unresolved] alone is enough to reach it). Not a new divergence, the identical feature gap surfacing on a second axis -- derived from the comparator's own failure output (test_layer_m_counts_match_citations), not hand-counted.")
(expected_rows 22))
((id M3)
(citation "RG 87 (Minor Litanies/Rogations, Mon/Tue before Ascension) -- the SAME citation as the lectio allow-list's own C8 (data/ef/expected-divergences.sexp)")
(verdict colitur)
(note "missalemeum, like lectio, computes no Rogation day at all and shows the plain paschaltide-week feria instead. Only 3 May 2027 (Rogation Monday) shows it in this window -- every other Rogation day here is won outright by a saint on both sides, so only the underlying temporal identity differs, which this comparator's axes do not expose.")
(expected_rows 1))
((id M5)
(citation "RG 80 (Major Litanies, 25 April) -- register §6's own pre-existing open item, \"Major Litanies (25 April, RG 80) are not computed\"")
(verdict missalemeum)
(note "Independently confirmed by the oracle, not a new finding: missalemeum's \"Pro rogationibus\" commemoration on St Mark's day (25 April, the Major Litanies' fixed date) is exactly the missing office register §6 already tracks. Only 2026 shows as a comparator MISMATCH: 25 April 2026 is a Saturday with Mark winning outright, so colitur's commemoration list is empty where the oracle's carries \"Pro rogationibus\" -- a real presence gap. 25 April 2027 is a Sunday: the Sunday wins on BOTH sides, and each side's own single commemoration slot goes to a DIFFERENT candidate (colitur: St Mark himself, an ordinary II-class sanctoral loser admitted under RG111(b)'s \"de festo II classis\" slot; missalemeum: the Major Litanies) -- both non-empty, same count, so this comparator's count-only axis (deliberately not slug-identity, see test_oracle.ml's own header) cannot see that mismatch; the underlying gap is the same, just invisible to this year's row.")
(expected_rows 1))
((id M8)
(citation "RG 109(a) (\"of a Sunday\" is always privileged) + RG 111(a) (\"I class: none save one privileged\")")
(verdict colitur)
(note "When a fixed I-class feast (All Saints 1 Nov; the Assumption 15 Aug) lands on an ordinary Sunday, the impeded Sunday IS the one privileged commemoration RG 111(a) admits -- already an established, independently-tested rule (test_precedence_ef.ml's RG95/RG109(a) row). missalemeum shows no commemoration at all on either occurrence in this window.")
(expected_rows 2))
((id M10)
(citation "RG 109(e), unqualified text: \"de feriis Adventus, Quadragesimae et Passionis\" -- of the FERIAS of Advent (not \"the Advent ferias 17-23 December only\", which is RG 91 entry 18's separate OCCURRENCE-table dignity, not a RG 109 privilege restriction)")
(verdict colitur)
(note "colitur commemorates the losing early-Advent feria (Monday after Advent I, 30 Nov; Tuesday/Wednesday after Advent II, 8 Dec) when a saint wins. missalemeum shows nothing on these 4 rows specifically, even though it DOES show equivalent later-Advent-feria commemorations elsewhere in the SAME window (2-21 December, matching colitur exactly there) -- read as a missalemeum-side inconsistency on these particular rows, not a textually narrower rule.")
(expected_rows 4))
((id M11)
(citation "CORRECTED, fix round 1 (F3): RG 67 (\"Dies infra octavam sunt II classis\" -- days within the Octave are II class) + RG 109(c) (\"de diebus infra octavam Nativitatis Domini\" -- privileged) + the 1962 calendarium's own explicit note under 26/27/28 December, primary-source-verified 2026-08-12: \"S. STEPHANI PROTOMARTYRIS, II classis. / Com. octavae Nativitatis.\" (same pattern, verbatim, under 27 and 28 December for John the Evangelist and the Holy Innocents) -- \"Commemoration of the Octave of the Nativity\", named explicitly, alongside each of the three named feasts")
(verdict open)
(note "This entry previously read \"No RG paragraph found to support this\" and verdict colitur -- WRONG, found by fix-round-1 review: RG 67/109(c) and the calendarium's own \"Com. octavae Nativitatis\" note both confirm a real commemoration is due here. It is ALSO a genuine REGRESSION Task 16's own commemoration-eligibility fix introduced: before that fix, colitur unconditionally commemorated the day's own losing temporal candidate (\"ef-christmas-0-<weekday>\", the generic Christmastide ferial slug 26-28 December falls through to since temporal_ef.ml's [named] does not cover those three dates), which happened to keep commemoration PRESENCE agreeing with missalemeum even though the underlying reasoning was wrong (a Task 16 review-round-1 finding elsewhere, F1/F2 fixed it for the general case) -- and Task 16's fix (and this fix round's RG 23-26 correction of it) both correctly stop commemorating that generic candidate, since [ferial_rank]'s Christmastide catch-all gives it Class4, which RG 26 never commemorates. The catch: RG 67 says days WITHIN the octave are II class, not IV -- the generic ferial construction 26-28 December falls through to has the WRONG rank for this specific window (a rank bug, not merely a missing-candidate one; 29-31 December already get the correct Class2 via [named]'s own \"ef-nativity-octave-day-{5,6,7}\" branch, so this is narrowly a 26-28-December gap). Fixing it properly also has to get RG 69 right (\"De dominica infra octavam Nativitatis Domini... semper fit Officium cum commemoratione FESTI FORTE OCCURRENTIS\" -- when the Sunday falls in this window, the SUNDAY is observed with a commemoration of THE FEAST ITSELF, Stephen/John/the Innocents by name -- NOT the generic octave placeholder), so a naive \"treat the octave commemoration as one more competing candidate\" fix would get the Sunday case backwards (confirmed by working through it: it would make the octave placeholder outrank the named saint for the Sunday's own privileged slot, when RG 69 names the SAINT, not the octave, for that slot). This needs either new architecture (a commemoration that attaches to whichever of Stephen/John/the Innocents is observed, not a competing candidate the way RG 92-95's occurrence framework models everything else) or a more careful RG-69-aware fix than this task attempted -- out of scope for this fix round. Verdict changed from colitur to open: neither side is confidently right without that fix, and the previous entry's \"colitur is correct, nothing to implement\" framing was itself the risk this review flagged. Register §6 open item.")
(expected_rows 4))
((id M12)
(citation "RG 110: \"In Officio et Missa S. Petri semper fit commemoratio S. Pauli, et vicissim\" -- in the Office and Mass of either Peter or Paul, a commemoration of the other is ALWAYS made (\"the inseparable commemoration\"), uncapped by RG 111's ordinary admission count")
(verdict missalemeum)
(note "Unimplemented in this codebase. 22 February 2027 (Chair of St Peter): colitur commemorates only the privileged Lent feria; missalemeum shows that AND \"St. Paul\". A genuine, primary-cited feature gap -- register §6 open item. Narrow: the only row in this window where it becomes visible against this comparator's axes (see the task report for the other Peter/Paul offices checked and found clean).")
(expected_rows 1))
((id M13)
(citation "OPEN -- not adjudicated. 1962 calendarium's March table: \"Feria VI post dominicam I Passionis: Commemoratio septem Dolorum B. Mariæ Virg.\" (confirmed real, every year) -- but RG 91's plain table (entry 11-13, Joseph, I class, vs entry 22, an ordinary III-class Passiontide feria) gives Joseph the day outright, with no RG 96 collision requiring a transfer, so the primary text found here does not by itself explain missalemeum's result")
(verdict open)
(note "19 March 2027: St Joseph (I class) falls on the Friday of Passion Week. missalemeum shows Joseph entirely displaced, with the Friday's own III-class violet office observed and the Seven Sorrows commemorated instead. Three possibilities, none confirmed: (a) colitur's plain RG 91 reading is right and missalemeum is wrong; (b) a more specific rubric attached to St Joseph's own Proprium Sanctorum entry (the same shape as the Annunciation's own Attamen clause) overrides the general table for this exact collision, and this task did not find its text; (c) the Seven Sorrows commemoration itself outranks an ordinary I-class feast on this one Friday, unsupported by anything found here either. Extensive but non-exhaustive primary-source search did not settle it -- register §6 open item, explicitly unresolved rather than defaulted to either side. Separately, but confirmed regardless: colitur does not implement the Seven-Sorrows-of-Passion-Friday commemoration at all, in any year -- a real, primary-attested gap on its own. CORRECTED 2026-08-12 (Task B, branch ef-rg16a, commemoration-identity comparison): this date now ALSO trips [Comm_identity_unresolved] (colitur's own commemorated candidate there, [ef-passiontide-1-friday], is temporal-origin and carries no English name) -- the SAME root cause as M15 below, folded into this entry's own subset check rather than a separate id, since it is the identical Seven-Sorrows gap this note already names, not a new finding.")
(expected_rows 1))
((id M15)
(citation "docs/research/rules-register.md §4's own \"THE MAPPING, AND EXACTLY WHAT IT CANNOT RESOLVE\" note (test_oracle.ml's own header) -- not an RG citation, a comparator LIMIT: Rite_ef.Temporal_ef never sets an English [names] field on any candidate it builds (temporal_ef.ml has no \"en ...\" string anywhere in it)")
(verdict unresolvable)
(note "19 rows where colitur's own admitted commemoration is TEMPORAL-origin (an impeded Advent or Lent feria) -- there is no English name on colitur's side to compare against missalemeum's title text at all, so identity cannot be attempted, only reported as unresolved. Not a rubric dispute and not a data gap either engine is wrong about. Every oracle title on these 19 rows reads as a plain prose description of the SAME temporal ferial slot colitur independently computes for that date (e.g. 2 Dec 2026: oracle \"Feria IV after I Sunday of Advent\" against colitur's own ef-advent-1-wednesday; 4 Dec 2027: oracle \"Sabbato after I Sunday of Advent\" against ef-advent-1-saturday) -- suggestive corroboration, recorded for a human reader, NOT claimed as a verified match: this comparator has no mechanism to verify English prose against an opaque slug. Fixing this at the root (an English name on every temporal-cycle candidate) is a data/lectionary-bootstrap task, not something this comparator can do for itself -- register §6, neighbouring the RG 113 tie-break section, records it as an open item. The 19 dates: 2026-02-24, 2026-03-19, 2026-03-25, 2026-12-02, 2026-12-03, 2026-12-04, 2026-12-07, 2026-12-11, 2026-12-21, 2027-02-24, 2027-12-02, 2027-12-03, 2027-12-04, 2027-12-06, 2027-12-07, 2027-12-11, 2027-12-13, 2027-12-16, 2027-12-21.")
(expected_rows 19))
((id M16)
(citation "1962 calendarium's March table (same primary text as M13's own citation): \"Feria VI post dominicam I Passionis: Commemoratio septem Dolorum B. Mariae Virg.\" -- a fixed commemoration of Our Lady's Seven Sorrows for the Friday of Passion Week, every year, confirmed real")
(verdict missalemeum)
(note "27 March 2026 (Friday of Passion Week): colitur admits \"St. John Damascene\" (a real Class3 universal feast that genuinely falls that day, data/ef/sanctoral.sexp's own john-damascene entry, 27 March); missalemeum shows \"For Our Lady of the Seven Sorrows\" instead. The SAME standing gap M13 already names: the Seven-Sorrows-of-Passion-Friday commemoration is confirmed real in the primary text but not implemented anywhere in temporal_ef.ml, so colitur has no candidate for it and falls back to whichever ordinary Class3 saint actually wins that Friday. Verdict missalemeum: colitur is missing a real, primary-cited office, not differently opinioned. Register §6 open item (the same one M13's own note already tracks). Only 2026 shows here as an IDENTITY mismatch -- 2027's Friday of Passion Week IS 19 March, M13's own date, where identity comparison cannot even be reached (M13's own rank/colour mismatch already excludes that day from count-matched identity comparison, folded into M13's own widened subset above). NOTE for whoever builds the office (fix round 1, coordinator finding 7): 27 March 2026 is a III-class day, where RG 111(d) admits TWO commemorations -- yet missalemeum admits only the Seven Sorrows and DISPLACES John Damascene entirely, not merely drops him to second place. A naive implementation (one more ordinary III-class commemoration competing for the day's two slots) would give colitur two commemorations where missalemeum shows one; whatever privilege the Seven Sorrows carries must itself explain the exclusion, not just win admission.")
(expected_rows 1))
((id M18)
(citation "test_oracle.ml's own header, \"COMMEMORATION IDENTITY\" section, restated for the OBSERVED axis (ef-rg112-rg110 task) -- not an RG citation, a comparator LIMIT: Rite_ef.Temporal_ef never sets an English [names] field on any candidate it builds, the SAME limit M15 already names for a commemoration, now visible for the OBSERVED day itself now that the observed-identity axis exists")
(verdict unresolvable)
(note "373 of the 730 days in this window carry this shape alone (M1/M2/M3/M16 absorb a further 26 where it fires ALONGSIDE their own pre-existing citation -- see each entry's own widened note; 373+26=399 is the axis's own full unresolved population). CORRECTED, fix round 1 (coordinator finding 8) -- the full breakdown, precisely: of 730 days, 331 are RESOLVED (colitur's own observed celebration carries a name) -- 330 resolved-and-MATCHING, 1 resolved-and-MISMATCHED (M13, Joseph vs the Seven Sorrows, already its own entry above) -- and 399 are UNRESOLVED (colitur's own name is [None]), split between this entry's own 373 and the 26 absorbed elsewhere. The BLIND SPOT this axis exists to close, stated precisely: a TEMPORAL-origin observed day silently replaced by a DIFFERENT temporal-origin observed day of the SAME RANK AND COLOUR -- exactly the shape that hid Holy Family from every layer before this task (rank 2/white on both sides, purely coincidental). This count PIN is what stands guard against that population growing silently in either direction: an implementation change that made MORE days temporal-origin-and-unresolvable, or fewer, changes 373 and fails the pin, even though the axis itself cannot say WHICH specific day moved or why. The overwhelming majority of days whose observed celebration is TEMPORAL-origin (an ordinary Sunday, a feria, a movable named feast including Holy Family itself) never carry an English name on colitur's side -- not a rubric dispute and not a data gap either engine is wrong about, a LIMIT of this comparator, honestly counted rather than silently passed, per the brief's own explicit instruction (\"a day whose observed identity cannot be resolved must be a counted, allow-listed outcome, never a silent skip\"). Gated on the diff SHAPE alone (exactly, and only, observed-identity-unresolved), not a literal date list the way every other entry in this file is -- at this population size a date list would itself be the \"pattern that could silently widen\" this file's own header warns against, for the opposite reason a date RANGE is normally risky: the predicate (colitur's own resolved name is [None]) is the precise, falsifiable evidence, the same shape M2's own title-substring predicate already uses instead of enumerating dates, just keyed on presence-of-a-name rather than a title string. Building an English name onto every temporal-cycle candidate (a data/lectionary-bootstrap task, Plan 4, out of this task's scope -- register §6, the same open item M15's own note already tracks) would resolve this entry to Matched for every one of these days it does not instead expose as a REAL divergence (Holy Family's own two dates in this window, 2026-01-11 and 2027-01-10, are counted here, not separately -- the name comparison genuinely cannot distinguish \"Holy Family\" from any other unnamed Sunday, so proving Holy Family's own correctness rests on the golden pins and the differential's own C15, not this axis). Derived directly from the comparator's own failure output (test_layer_m_counts_match_citations), not hand-counted first and cross-checked after: 373.")
(expected_rows 373))
|