aboutsummaryrefslogtreecommitdiff
path: root/data/ef/expected-divergences-missalemeum.sexp
blob: afc793ef3bc63750852ab05773c2811e5e48c31a (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
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
; 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 this task did not build
; (RG 110's inseparable Peter/Paul commemoration -- closed by a later task,
; see the ef-holyname-rg110 paragraph below; RG 91 entry 27's BVM-Saturday
; office -- closed by a later task still, see the ef-bvm-saturday paragraph
; further below, after M18's own). 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, M3 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.
; UPDATED, ef-bvm-saturday task: M2 used to belong on this list too (RG 91
; entry 27's own BVM-Saturday office had not been built yet), but M2 is now
; CLOSED, REMOVED (see the ef-bvm-saturday paragraph below, after the FIVE
; MORE REMOVED note) -- its former 22 dates fall through to THIS entry
; instead now, moving M18's own count from 373 to 395 (see M18's own sexp
; note below for the precise derivation).
;
; ef-holyname-rg110 task (RG 110, the inseparable Peter/Paul commemoration --
; PART of RG 91 entry 27's neighbour list this file's own header names above
; as unbuilt at the time; RG 91 entry 27 itself, the BVM-on-Saturday office,
; was closed by a LATER task, see the ef-bvm-saturday paragraph below):
; [M12] CLOSED, REMOVED (same shape as
; M17's own removal above, not re-adjudicated) -- 22 February 2027 no
; longer diverges on [Comm_count], since colitur now admits Paul
; unconditionally alongside whatever else the day's own privileged
; commemoration is (precedence_ef.ml's own [rg110_additions]). [M15]'s own
; date list gained a 20th entry, 2027-02-22 -- M12's own former date, now
; reaching the comparator's IDENTITY axis for the first time (count
; agrees), and landing on M15's own PRE-EXISTING, unrelated limit (one of
; the two admitted commemorations is temporal-origin and unresolvable) --
; see M15's own note for the full account. [M19] is NEW: RG 110's other
; direction (Paul's own office commemorating Peter, not Peter's own office
; commemorating Paul), 30 June, both years -- missalemeum has the SAME gap
; this task found in lectio's own source data (checked directly, not
; assumed), so this is verdict colitur, not colitur short a feature the way
; M12 used to be.
;
; 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."
;
; ef-bvm-saturday task: RG 91 entry 27 ("Officium sanctae Mariae in
; sabbato") is now built (Rite_ef.Temporal_ef's own [bvm_saturday_names]
; citation has the full RG 78/RG 120(b) argument -- white, unconditionally,
; on every otherwise-unoccupied IV-class Saturday). [M2] is CLOSED, REMOVED
; -- same shape as M4/M6/M7/M9/M12/M14/M17's own removals above/below, not
; re-adjudicated to a different verdict: the divergence M2 used to name
; ([Colour_f], alone or alongside [Observed_identity_unresolved]) no longer
; occurs on any of its former 22 dates (checked directly: 0 of them retain
; [Colour_f] now). What is left on all 22 is [Observed_identity_unresolved]
; ALONE -- colitur's own BVM-Saturday candidate is temporal-origin and
; deliberately carries no ENGLISH name (Latin only, the same
; zero-circularity discipline Holy Family/Holy Name/the Sacred Triduum
; already established) -- which is [M18]'s own shape exactly, not a
; distinct citation any more (keeping M2 as a separate id here would have
; been the SAME "count proving cardinality where identity was required"
; trap this project's review process watches for: [subset]'s own diff-set
; test admits a SMALLER set than the one named, so M2's predicate would
; have kept silently absorbing these 22 rows under a stale "colour differs"
; citation whose own reason had stopped firing). [M18]'s own expected_rows
; therefore moves 373 -> 395 (373 + M2's former 22), derived directly from
; test_oracle.ml's own [test_layer_m_counts_match_citations] failure output
; after removing the M2 predicate branch, not computed by hand first.
;
; [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 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/81 (Major Litanies, Caput X \"De Litaniis maioribus et minoribus\") + RG 109(f) (Caput XVI \"De Commemorationibus\") -- now BUILT (ef-major-litanies task): Rite_ef.Precedence_ef's own [major_litanies_slug]/[disposition]/[privilege_of]/[transfer_target], data/ef/adjustments.sexp's matching `Add` entry")
 (verdict colitur)
 (note "CORRECTED (ef-major-litanies task): this entry's own PRIOR text claimed missalemeum's single admitted commemoration on 25 April 2027 was \"the Major Litanies\" -- checked directly against the raw fixture row while adjudicating a new divergence this task found (test/fixtures/missalemeum-ef-2026-2027.txt, the 2027-04-25 line: \"...|IV Sunday after Easter|-|St. Mark|Pro rogationibus|1|sancti:04-25:2:r\") and found BACKWARDS: missalemeum's own [commemorations] field there is \"St. Mark\", and \"Pro rogationibus\" (the Litanies) is the one listed in [displaced]. A genuine source-fidelity slip in this entry's own prior authorship, corrected here; see [M20] below for the divergence this correction actually motivates (2027's own now-real colitur-vs-missalemeum disagreement, adjudicated separately with its own RG citation). This entry (M5) now covers only 25 April 2026 (the ordinary, non-Sunday shape -- Mark wins the day outright on both sides, uncontested): both engines now admit a commemoration there (colitur: major-litanies; missalemeum: \"Pro rogationibus\"), so PRESENCE agrees (the register §6 gap this entry used to track is closed), but the two engines name the same real-world observance in different registers -- colitur's own English descriptive name (data/ef/adjustments.sexp's own honestly-flagged, not-primary-sourced \"The Major Litanies\") against missalemeum's Latin-ish \"Pro rogationibus\" -- never going to match as literal strings, and not a rubric dispute: RG 80/81 prescribe no English title for this observance at all. The SAME declared comparator limit M15/M18 already document for a temporal-origin candidate's identity, hit here for a different structural reason (a real candidate on BOTH sides now, just two different vocabularies, not an unresolvable name). Identity-gated (test_oracle.ml's own [m5_commemoration_matches]): pins that colitur's own sole admitted commemoration really is [major-litanies], not merely that some [Comm_identity_mismatch] diff exists on this date, the same discipline M19's own identity guard already established.")
 (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 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 "20 rows where at least one of colitur's own admitted commemorations is TEMPORAL-origin -- there is no English name on colitur's side to compare against missalemeum's title text at all, so identity cannot be attempted for the WHOLE row, only reported as unresolved (test_oracle.ml's own [identity_diff]: any unresolved name bails the whole comparison out, regardless of how many others resolve cleanly). Not a rubric dispute and not a data gap either engine is wrong about. 19 of the 20 rows carry exactly ONE admitted commemoration, an impeded Advent or Lent feria, each reading 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. ADDED, ef-holyname-rg110 task: 2027-02-22 -- the closed M12's own date (immediately above this entry's own former position), now admitting TWO commemorations (RG 110's own [paul], sanctoral-origin and resolvable, AND the pre-existing [ef-lent-2-monday], temporal-origin and not) -- newly reaches identity comparison only because RG 110 fixed the [Comm_count] mismatch that used to mask it, and lands on this SAME pre-existing limit, not a new one. 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 20 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-22, 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 20))
 ((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 "REVISED AGAIN, ef-major-litanies task: 394, down by exactly 1 from the ef-bvm-saturday task's own 395 (breakdown below unchanged in kind, only this one row moved). 25 April 2027 used to carry [Observed_identity_unresolved] ALONE (the Sunday itself is temporal-origin, unresolved; commemoration identity agreed by coincidence -- Mark on both sides, pre-Litanies) and so fell into this entry's own bucket; now that the Major Litanies are built, that same date ALSO carries [Comm_identity_mismatch] (colitur admits the Litanies, missalemeum still admits Mark -- see [M20]'s own new entry), so it moves OUT of this bucket and into M20's own single-row citation instead. Verified directly from the comparator's own failure output, not merely arithmetic (395-1=394 is necessary but not sufficient: the mechanism above is why it left, not merely that some count decreased).

REVISED, ef-bvm-saturday task: 395 of the 730 days in this window used to carry this shape alone (M1/M3/M16 absorb a further 4 where it fires ALONGSIDE their own pre-existing citation -- see each entry's own widened note; 395+4=399 is the axis's own full unresolved population, UNCHANGED from before that task -- only the SPLIT moved, since M2 (closed above) used to separately absorb 22 of the 26 that used to be \"elsewhere\"). Before that revision the split was 373 alone / 26 elsewhere (373+26=399) -- 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 (then 395, now 394) and the 4 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 the ef-rg112-rg110 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 this number and fails the pin, even though the axis itself cannot say WHICH specific day moved or why -- exactly the guard that caught this task's own -1 shift, which HAD to be traced to a specific date and mechanism (above) rather than merely re-baselined. 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).")
 (expected_rows 394))
 ((id M19)
 (citation "RG 110's OTHER direction: \"In Officio et Missa S. Petri semper fit commemoratio S. Pauli, ET VICISSIM\" -- the SAME rule M12 used to cite, applied here to Paul's own office commemorating Peter, not Peter's own office commemorating Paul; confirmed a third time by the calendarium's own June table, both photographic scans, word for word: \"In Commemoratione S. Pauli Ap., III classis. / Commemoratio S. Petri Ap.\"")
 (verdict colitur)
 (note "30 June, both years in this window (2026-06-30, 2027-06-30): colitur now shows +commemoration-of-st-peter (data/ef/adjustments.sexp's own `Add` directive) where missalemeum shows nothing at all -- not even Peter listed under \"displaced\", meaning missalemeum's own engine never constructs a candidate for this commemoration in the first place, the SAME shape this task found in lectio's own source data (`~/git/projects/lectio/internal/caldata/tridentine-calendar.ini` has no 06-30 companion entry either -- an upstream data gap both reference engines share, not a colitur bootstrap miss). Verdict colitur, the same shape as M1/M3/M8/M10 above (each already \"missalemeum does not implement X\"): the calendarium's own text is unconditional and confirmed on both photographic scans, and colitur's own machinery for the other two RG 110 pairs (25 January, 22 February) already produces the identical shape correctly. Diff shape [Comm_presence] alone: rank/colour/observed-identity all already agreed before this fix (the OBSERVED celebration on both dates is unchanged, `in-commemoratione-sancti-pauli-apostoli`, sanctoral-origin with a resolvable name matching missalemeum's own title exactly on both rows) -- only the new commemoration's PRESENCE is new, so identity comparison is never even reached (this file's own header: identity is only attempted once presence and count already agree). 2, one per year, independently re-derived against the fixture's own two 06-30 rows before being set here, not assumed from the citation's own two-pair symmetry.")
 (expected_rows 2))
 ((id M20)
 (citation "RG 109(f) + RG 111(b), Caput XVI \"De Commemorationibus\" (docs/research/rules-register.md §4, both primary-source-verified word for word, all three documents): RG 109(f) lists \"de Litaniis maioribus, in Missa\" in the SAME closed privileged list as (a)-(e); RG 111(b): \"in dominicis II classis, una tantum admittitur commemoratio, scilicet de festo II classis, QUÆ TAMEN OMITTITUR SI COMMEMORATIO PRIVILEGIATA FACIENDA SIT\" -- the II-class-feast commemoration is dropped if a privileged one is due")
 (verdict colitur)
 (note "NEW (ef-major-litanies task). 25 April 2027: RG 80's own transfer condition (25 April = Easter Sunday or Monday) does NOT fire this year, so the Litanies stay on 25 April itself -- which this year happens to be an ordinary II-class Sunday (RG 91 entry 15). St Mark (II class, entry 16) also loses to the Sunday. Two losing candidates, ONE slot (RG 111(b)): colitur admits the Litanies, not Mark; missalemeum's raw fixture row shows the reverse (verified directly against test/fixtures/missalemeum-ef-2026-2027.txt's own 2027-04-25 line -- see [M5]'s own corrected note above for the exact text, which previously mis-transcribed this same row backwards). ADJUDICATED, not merely asserted: {!Precedence_ef.admit}'s [Class2, true] branch already implements RG 111(b)'s privilege-overrides-ordinary clause exactly as quoted above, and this project's own prior work (precedence_ef.ml's \"Fix, Task 16\" comment) already primary-source-verified that same clause independently of this task -- the Litanies winning here is the SAME mechanism, not a special case written for it; St Mark meets the fate any ordinary Class2 commemoration meets when a privileged one is also due (RG 16(a)'s Transfiguration/Sixtus shape is the nearest existing witness, though there the privileged side wins the whole DAY, not merely the commemoration slot). HONESTLY FLAGGED: this is the first real (non-synthetic) data point this codebase has for \"an ordinary Class2 feast and a privileged non-feast commemoration both losing to the identical Sunday\" -- every other witness for this admit branch in test_precedence_ef.ml is hand-built. Read plainly, RG 111(b)'s text supports colitur's outcome here; missalemeum's divergence is consistent with this project's already-documented pattern of RG 108-111 gaps in that oracle (M1, M8, M10 above each already \"missalemeum does not implement X\") -- plausibly one more instance of the same generator not modelling RG 109(f)'s privilege for this rare, single-date observance, not evidence the RG 111(b) mechanism itself is mis-read. Recorded as an adjudicated verdict, not a certainty -- revisit first if a future primary-source pass finds textual grounds narrowing RG 109(f)'s privilege specifically. Identity-gated (test_oracle.ml's own [m20_commemoration_matches]): pins that colitur's own sole admitted commemoration really is [major-litanies].")
 (expected_rows 1))