summaryrefslogtreecommitdiff
path: root/data/ef
diff options
context:
space:
mode:
Diffstat (limited to 'data/ef')
-rw-r--r--data/ef/expected-divergences-missalemeum.sexp31
-rw-r--r--data/ef/expected-divergences.sexp14
2 files changed, 37 insertions, 8 deletions
diff --git a/data/ef/expected-divergences-missalemeum.sexp b/data/ef/expected-divergences-missalemeum.sexp
index 30187de..b5374ab 100644
--- a/data/ef/expected-divergences-missalemeum.sexp
+++ b/data/ef/expected-divergences-missalemeum.sexp
@@ -157,6 +157,25 @@
; 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).
+;
+; STEP 4 (the Commons/propers, Rite_ef.Lectionary_ef.readings) HAS NO
+; WITNESS HERE, Task 9 (branch ef-lectionary, layer-4 oracle): confirmed
+; empirically (a scratch resolver sweep over 2026-01-01 through
+; 2027-12-31, checking every one of the 15 Commons/proper saints' own
+; slugs against LD.observed.slug on every civil day; not re-asserted from
+; task-6-report.md's own claim without checking) that NONE of the 15 is
+; ever the observed office anywhere in this window -- corroborating that
+; report's own §4 independently. No entry in this file names step 4:
+; layer 4 never reaches it here, the same "structurally blind" shape the
+; Major Litanies task already established for layer 3 (CLAUDE.md's own
+; "know what each layer cannot see" section). Chain step 4's own
+; regression net rests entirely on Task 6's own unit pins
+; (test_lectionary_ef.ml) -- NOT on layer 5 either: test_golden.ml's own
+; [describe] carries no citation field at all, so golden pins see no
+; readings whatsoever, for any office. If a future oracle refresh or a
+; different 2-year window ever DOES observe one of the 15, this
+; comment -- not a passing test -- is what a reader would otherwise have
+; to infer the absence from.
((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)
@@ -223,7 +242,9 @@ WIDENED, Task 9 (branch ef-lectionary, layer-4 oracle): [First_mismatch]/[Gospel
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).
-REVISED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): 352, down by 42 from 394. NOT a change to this entry's own guard (still, and only, [diffs = [ Observed_identity_unresolved ]] exactly) -- this task compared reading citations for the first time, and 42 of the former 394 rows now ALSO carry a real [First_mismatch]/[Gospel_mismatch] alongside the pre-existing observed-identity gap, so they escape this entry's own EXACT-match guard and move to the six new entries below (M23 2, M24 4, M25 4, M26 30, M27 2 -- 2+4+4+30+2=42, exactly accounting for the drop, verified against the comparator's own failure output, not assumed from the arithmetic alone). The remaining 352 are every temporal-origin observed day whose reading citation ALREADY agreed with missalemeum before this task and still does -- unaffected by this task's own fixes, since those fixes only ever touched a citation, never an identity.")
+REVISED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): 352, down by 42 from 394. NOT a change to this entry's own guard (still, and only, [diffs = [ Observed_identity_unresolved ]] exactly) -- this task compared reading citations for the first time, and 42 of the former 394 rows now ALSO carry a real [First_mismatch]/[Gospel_mismatch] alongside the pre-existing observed-identity gap, so they escape this entry's own EXACT-match guard and move to the FIVE new entries below (M23 2, M24 4, M25 4, M26 30, M27 2 -- 2+4+4+30+2=42, exactly accounting for the drop, verified against the comparator's own failure output, not assumed from the arithmetic alone -- CORRECTED, fix round 1, coordinator review: this note previously miscounted them as \"six\").
+
+CORRECTED, fix round 1 (coordinator review): the remaining 352 were previously described as every day whose citation \"ALREADY agreed with missalemeum before this task and still does\" -- imprecise for 18 of them. Before this task the citation axis did not exist at all, so NO row's citation was ever actually checked; \"already agreed\" wrongly implies the pre-task VALUE was correct on all 352, when for 18 it was not -- it only became correct, and therefore only started agreeing, because of this task's own three fixes (Holy Name Sunday's own two dates, 2026-01-04/2027-01-03; 12 more January-window ferias across the three RG-17(a)/Holy-Family-propers-rubric families that now resolve at step 2 instead of the walkback, one full list: 2026-01-02/05/07/08/09/12, 2027-01-04/05/07/08/11/12; and Corpus Christi/Sacred Heart in both years, 2026-06-04/06-12, 2027-05-27/06-04 -- 2+12+4=18, independently re-derived against the real resolver, not merely arithmetic). The other 334 were genuinely unaffected by this task, matching both before and after (or, more precisely, would have matched on the day this axis existed either way).")
(expected_rows 352))
((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.\"")
@@ -257,7 +278,13 @@ REVISED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): 352, down by 42 fr
((id M26)
(citation "{!Rite_ef.Lectionary_ef.readings}'s own header comment (not an RG citation, a comparator/architecture LIMIT): step 3's own WARRANT is \"lectio's own observed behaviour... not a confirmed Missal citation\" -- register's own standing note; RG 309(a) (\"iuxta temporum diversitatem\", the season-keyed votive-Mass selection this task's own investigation confirmed missalemeum implements and colitur does not, corroborating Task 6's own already-recorded open item)")
(verdict open)
- (note "Task 9 (branch ef-lectionary, layer-4 oracle): 30 rows, ONE root cause, THREE confirmed shapes, none built here. (1) RG 78's own rotating votive Mass of the BVM (\"Missae de sanctae Mariae in sabbato\" and its Time-after-Pentecost siblings, missalemeum's own \"II/III/V Mass of the B. V. M.\" titles) on an otherwise-unoccupied feria -- Task 6's own already-named open item (\"the BVM Saturday Office still emits its feria's Mass... needs... a season-keyed selection among five formularies\"), confirmed live on four Saturdays here (2026-01-03/01-10, 2027-01-02/01-09 -- `ef-christmas-1-saturday`/`ef-christmas-2-saturday`, this task's own deliberately-unentered slugs, C25's unchanged population in the sibling lectio differential) and on every ordinary Time-after-Pentecost weekday feria in this entry's own remaining population (2026-02-14/06-20/06-27/07-04/07-11/08-01/10-31/11-07/11-28, 2027-07-17/07-24/09-04/09-11/10-30/11-06/11-13/11-27). (2) A named weekly formula distinct from the plain Sunday-repeat rule, found by accident while researching Corpus Christi's own Mass (docs/research/scan1.txt, \"Missa dominicae I post Pentecosten\", 1 Ioann. 4:8-21/Luc. 6:36-42, printed immediately before Corpus Christi's own heading) but NOT independently verified as a general \"every week has its own named formula\" rule the way the January window (this task's own [epiphanytide_opening_entries]) was -- 2026-06-02/06-03 and 2027-05-24 show it. (3) Later Time-after-Pentecost weeks (2026-10-26 through 2026-10-30, 2027-11-03/11-05) whose own votive/ferial answer this task's own investigation did not narrow to a single citable rule at all. None is safe to fix piecemeal inside this task's own scope (extending layer 4 + triage) without the same real, dedicated, TDD/mutation-tested unit of work data/ef/expected-divergences.sexp's own C6/C25 and Task 6's own open item already call for -- a season-keyed ferial/votive-Mass-selection mechanism, new behaviour, not new data. Verdict open, the SAME fourth verdict M15/M18 already establish for a genuine comparator/architecture LIMIT, honestly counted rather than silently absorbed or left failing without explanation. A literal date list, not a shape predicate: no single structural signal (unlike C17's own [subject = bvm]) distinguishes this population from a genuinely new, unrelated citation bug on some other Time-after-Pentecost feria. Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 30.")
+ (note "Task 9 (branch ef-lectionary, layer-4 oracle): 30 rows, one root cause, TWO NAMEABLE SHAPES -- CORRECTED, fix round 1 (coordinator review, Important 3): a prior version of this note described three shapes, the third an unexplained \"23-row residue... not narrowed to a single citable rule at all\". That bucket was EMPTY: every one of the 30 dates classifies into one of the two shapes below, and describing it as unknown buried a real, nameable defect (layer 3 is blind to it too -- lectio makes the identical mistake -- so this entry is the only place either engine's own gap here is written down).
+
+SHAPE 1 -- 21 rows: RG 78's own rotating votive Mass of the BVM (\"Missae de sanctae Mariae in sabbato\" and its Time-after-Pentecost siblings, missalemeum's own \"II/III/V Mass of the B. V. M.\" titles) on an otherwise-unoccupied feria -- Task 6's own already-named open item (\"the BVM Saturday Office still emits its feria's Mass... needs... a season-keyed selection among five formularies\"), confirmed live on four Saturdays here (2026-01-03/01-10, 2027-01-02/01-09 -- `ef-christmas-1-saturday`/`ef-christmas-2-saturday`, this task's own deliberately-unentered slugs, C25's unchanged population in the sibling lectio differential) and on 17 ordinary Time-after-Pentecost weekday ferias (2026-02-14/06-20/06-27/07-04/07-11/08-01/10-31/11-07/11-28, 2027-07-17/07-24/09-04/09-11/10-30/11-06/11-13/11-27).
+
+SHAPE 2 -- 9 rows, a SECOND, DIFFERENT gap: ferias of a week whose own Sunday was DISPLACED that year by a movable named temporal-cycle feast, where the Missal requires the DISPLACED Sunday's own Mass to continue informing that week's ferias, but step 3 walks back to the DISPLACING feast's citation instead. Two witnessed instances: (a) 2026-06-02/03 and 2027-05-24 (the ferias between Trinity Sunday and Corpus Christi) -- the Missal prints a named formula for exactly this week, \"Missa Dominicae I post Pentecosten\" (1 Ioann. 4,8-21/Luc. 6,36-42, docs/research/scan1.txt:21758-21830, found while researching Corpus Christi's own Mass immediately following it), but colitur's step 3 walks back to Trinity SUNDAY's own generic citation instead, since [ef-corpus-christi] (this task's own fix) now correctly interrupts the week at step 2, one Sunday short of what the week's own ferias actually need; (b) 2026-10-26/27/29/30 and 2027-11-03/05 (the ferias of the week Christ the King, I class movable, \"Dominica ultima octobris\", displaces) -- colitur's own citation on all six is LITERALLY Christ the King's own Gospel (John 18:33-37, \"Art thou a king?\"), confirming step 3 walked back to the DISPLACING feast, not the displaced ordinary Sunday; missalemeum shows a different citation each row. No Missal-propers rubric for Christ the King's own week ferias was found the way Holy Name/Holy Family's own each carry one (checked: no rubric text precedes Christ the King's own Mass heading, scan1.txt:39140-39163) -- this half is named from the OBSERVED citation evidence itself, not from a located propers rubric; no citation SPECIFIC to Christ the King's own week is claimed.
+
+Neither shape is safe to fix inside this task's own scope (extending layer 4 + triage) without the same real, dedicated, TDD/mutation-tested unit of work data/ef/expected-divergences.sexp's own C6/C25 and Task 6's own open item already call for -- a season-keyed ferial/votive-Mass-selection mechanism, new behaviour, not new data. Verdict open, the SAME fourth verdict M15/M18 already establish for a genuine comparator/architecture LIMIT, honestly counted and NAMED rather than silently absorbed, left failing, or buried in an unexplained residue. A literal date list, not a shape predicate: no single structural signal (unlike C17's own [subject = bvm]) distinguishes this population from a genuinely new, unrelated citation bug on some other Time-after-Pentecost feria. Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 30.")
(expected_rows 30))
((id M27)
(citation "tools/extract_missalemeum_oracle.py's own header (the extraction script, not an RG citation): Christmas Day has THREE Masses in the 1962 Missal (Midnight/Dawn/Day), each with its own distinct Epistle+Gospel; this fixture's own entry[0] convention (verified, and documented, for every OTHER field it reads) takes the Midnight Mass, while colitur's own citation (bootstrapped from lectio) reflects the Day Mass -- two DIFFERENT, both genuine, Masses of the identical civil day")
diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp
index 8522da5..836ebed 100644
--- a/data/ef/expected-divergences.sexp
+++ b/data/ef/expected-divergences.sexp
@@ -72,7 +72,7 @@
(verdict colitur)
(note "6-13 January is Christmastide in colitur, matching RG 72-73's explicit boundary at 13 January (corroborated independently by RG 119a's colour rule, §3b). lectio's efSeason switches to time-after-epiphany on 6 January. The season disagreement cascades into colour (green vs white) and, on 7-12 January specifically, into the ferial slug family name (colitur's ef-christmas-2-<weekday> vs lectio's ef-time-after-epiphany-1-<weekday> for those days). REFRESHED (ef-rebootstrap fixture refresh, 2026-08-12): expected_rows moved 361 -> 368. NOT a new divergence -- the closed C13's own 7 rows (13 January in the 7 years it falls on a Sunday) fold back in here: lectio's fix wave independently fixed its own equivalent of the RG16(a) defect C13 used to allow-list, so on all 7 of those Sunday years lectio's slug now matches colitur's `commemoration-of-the-baptism-of-the-lord` too (not just rank/colour), leaving season as the ONLY residual difference on those rows -- squarely inside C1's own existing shape (diffs subset of [Season;Colour;Slug] with the Slug-diff escape clause unused). REFRESHED AGAIN (ef-rg112-rg110 task, branch ef-rg112-rg110): expected_rows moved 368 -> 361, back to its PRE-ef-rebootstrap value, but for a THIRD, different reason -- SPLIT OUT to its own new entry, C15, not silently re-absorbed: colitur now BUILDS Holy Family (RG 17(b)) and, on these same 7 dates, correctly observes it in the fixed Baptism's place (RG 91 entry 14, RG 112(a)), so colitur's own slug there changes from `commemoration-of-the-baptism-of-the-lord` (which happened to already match lectio's own slug) to `ef-time-after-epiphany-sunday-1` (Holy Family's own, lectio has no equivalent) -- a genuine SLUG divergence now, no longer inside C1's own [Season]-only shape. See C15's own entry for the full account. PROVENANCE, fix round 1 (coordinator finding 6, restoring the discipline this entry's own prior refresh recorded and this round's rewrite had dropped): 361 read directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations's `Received` array, run against the widened C15 predicate/allow-list together, not before it existed) -- not hand-counted first and cross-checked after, and not 368 minus 7 taken on faith: the arithmetic matches C15's own independently-derived 7, which is corroboration, not the derivation itself.
-REFRESHED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 361 -> 173. NOT a data change -- this entry's OWN diff-set guard (`subset diffs [Season;Colour_f;Slug_f]`) never accepted a citation diff, and this task gave the `ef-christmas-2-<weekday>` and `ef-time-after-epiphany-1-<weekday>` families their OWN direct citations for the first time (RG 17(a)'s own \"diebus ferialibus\" rubric, tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) -- every row in this window that ALSO now carries a real First_f/Gospel_f divergence escapes this entry's own subset guard and moves to the new C31/C32 instead (not silently re-absorbed: C31/C32's own [subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]] guard is what actually catches them, checked BEFORE this entry no longer applies, not assumed). What remains here is every 6-13 January row this task's own fix did NOT touch: Epiphany itself, the fixed Baptism commemoration, and any day a competing saint or the BVM Saturday Office already wins outright (unaffected by a lectionary citation either way). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 173.")
+REFRESHED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 361 -> 173. NOT a data change -- this entry's OWN diff-set guard (`subset diffs [Season;Colour_f;Slug_f]`) never accepted a citation diff, and this task gave the `ef-christmas-2-<weekday>` and `ef-time-after-epiphany-1-<weekday>` families their OWN direct citations for the first time (the Missal's own Mass-propers \"diebus ferialibus\" rubrics -- NOT RG 17(a) itself, which states only the day-identity privilege; see C30/C31's own citations for the corrected attribution -- tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) -- every row in this window that ALSO now carries a real First_f/Gospel_f divergence escapes this entry's own subset guard and moves to the new C31/C32 instead (not silently re-absorbed: C31/C32's own [subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]] guard is what actually catches them, checked BEFORE this entry no longer applies, not assumed). What remains here is every 6-13 January row this task's own fix did NOT touch: Epiphany itself, the fixed Baptism commemoration, and any day a competing saint or the BVM Saturday Office already wins outright (unaffected by a lectionary citation either way). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 173.")
(expected_rows 173))
((id C6)
(citation "RG 91 entry 17 (\"days within the Octave of the Nativity\") for the slug/rank divergence; RG 69, scan1.txt:625-631 word for word, for the QUESTIONED citation component (Important 3(b), coordinator review, task 8 fix round 1): \"De dominica infra octavam Nativitatis Domini, quae scilicet a die 26 ad 31 decembris occurrit, semper fit Officium cum commemoratione festi forte occurrentis, iuxta rubricas, nisi dominica incidat in festum I classis: quo in casu, fit de festo cum commemoratione dominicae\" -- the Sunday's OWN Office (not the fixed weekday placeholder) is kept, WITH a commemoration of whatever feast falls that day, whenever a Sunday lands anywhere 26-31 December (unless that feast is itself I class, in which case the feast wins with the Sunday commemorated instead)")
@@ -168,7 +168,7 @@ CORRECTED, fix round 2 (coordinator review, Minor): this entry's own reason for
CORRECTED, fix round 3 (coordinator review): the TOTAL, 57, is derived directly from the OCaml comparator's own failure output (its own `expected_rows` pin, cross-checked against a real test run) -- that part was accurate. The PER-WEEKDAY split is NOT: the comparator reports per-id totals only, never a per-weekday breakdown, so that finer split came from a separate pass over the raw per-slug failure list, and a prior version of this note wrongly implied it came from the comparator directly. That prior version also rotated the labels: it read \"19 + 19 + 13 + 6, Wednesday/Thursday/Friday/Saturday respectively\" -- the right four numbers, each attached to the wrong weekday. Re-measured directly against the real resolver: Wednesday 6, Thursday 19, Friday 19, Saturday 13 (6 + 19 + 19 + 13 = 57, no residue).
-NARROWED, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 57 -> 13, and the slug list narrowed to `ef-christmas-1-saturday` ALONE. Wednesday/Thursday/Friday (6+19+19=44 of the former 57 rows) each now have their OWN direct lectionary entry (RG 17(a)'s own \"diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut die 1 ianuarii\", tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) and no longer reach step 3's walkback at all -- colitur is now RIGHT there, not merely differently wrong, so those 44 rows are a SEPARATE new id (C30 below, verdict colitur), not a re-adjudication of this one. `ef-christmas-1-saturday` is the ONE weekday deliberately left WITHOUT a direct entry (RG 78's BVM Saturday Office wins that day unconditionally whenever nothing else does, {!Rite_ef.Temporal_ef.bvm_saturday_names} -- giving it the \"repeat 1 January\" citation would be wrong on exactly the days this same rubric is correct for the other four weekdays), so its own step-3 walkback -- and this entry's own root cause and citation, \"Titus 3, 4-7\" -- are genuinely UNCHANGED by this task, confirmed directly: the pinned regression test (test_lectionary_ef.ml's own `test_step3_christmas_feria_resumes_sunday`, now re-pointed at 2026-01-03) still returns exactly \"Gal 4:1-7\"/\"Luke 2:33-40\", the Nativity-Octave Sunday's own value C6 above still questions. 13 matches the ORIGINAL per-weekday breakdown's own Saturday figure exactly (6+19+19+13=57 from fix round 3 above), corroborating rather than merely asserting the narrowed count; re-derived directly from the OCaml comparator's own failure output after narrowing the predicate, not assumed from the old breakdown alone.")
+NARROWED, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 57 -> 13, and the slug list narrowed to `ef-christmas-1-saturday` ALONE. Wednesday/Thursday/Friday (6+19+19=44 of the former 57 rows) each now have their OWN direct lectionary entry (the Most Holy Name of Jesus Mass-propers' own \"diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut die 1 ianuarii\" rubric -- NOT RG 17(a) itself, see C30's own citation for the corrected attribution -- tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) and no longer reach step 3's walkback at all -- colitur is now RIGHT there, not merely differently wrong, so those 44 rows are a SEPARATE new id (C30 below, verdict colitur), not a re-adjudication of this one. `ef-christmas-1-saturday` is the ONE weekday deliberately left WITHOUT a direct entry (RG 78's BVM Saturday Office wins that day unconditionally whenever nothing else does, {!Rite_ef.Temporal_ef.bvm_saturday_names} -- giving it the \"repeat 1 January\" citation would be wrong on exactly the days this same rubric is correct for the other four weekdays), so its own step-3 walkback -- and this entry's own root cause and citation, \"Titus 3, 4-7\" -- are genuinely UNCHANGED by this task, confirmed directly: the pinned regression test (test_lectionary_ef.ml's own `test_step3_christmas_feria_resumes_sunday`, now re-pointed at 2026-01-03) still returns exactly \"Gal 4:1-7\"/\"Luke 2:33-40\", the Nativity-Octave Sunday's own value C6 above still questions. 13 matches the ORIGINAL per-weekday breakdown's own Saturday figure exactly (6+19+19+13=57 from fix round 3 above), corroborating rather than merely asserting the narrowed count; re-derived directly from the OCaml comparator's own failure output after narrowing the predicate, not assumed from the old breakdown alone.")
(expected_rows 13))
((id C26)
(citation "Passion Tuesday's real Mass (\"Feria tertia, III classis, Statio ad S. Cyriacum\"): Dan 14:27, 28-42 / John 7:1-13 -- docs/research/scan1.txt:11085-11121, corroborated scan2.txt:12063-12120 (CORRECTED, fix round 3, coordinator review: the scan2 endpoint previously read 12104, which stops after the Epistle -- \"Lectio Danielis Prophetae, Dan. 14,27 et 28-42\" -- and never reaches the Gospel heading/citation at all; \"Sequentia sancti Evangelii secundum Ioannem, Ioann. 7,1-13\" is at scan2.txt:12117-12120, so the range now extends to 12120, mirroring scan1's own convention of ending right at the Gospel's citation line rather than the full pericope text), word for word both scans")
@@ -191,17 +191,19 @@ NARROWED, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 57
(note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-holy-name-sunday`, the primary RG 17(a) shape (a genuine Sunday 2-5 January), had NO lectionary entry of its own before this task -- Rite_ef.Temporal_ef already computed the right slug/rank/colour (RG 91 entry 14, {!Rite_ef.Precedence_ef.entry_14_movable_band}), but tools/bootstrap_lectionary.ml's own [colitur_keys] used to WIDEN lectio's \"ef-christmas-sunday-0\" ini section onto this slug too, by analogy, on the (WRONG) assumption that Holy Name Sunday shares the Sunday-within-the-Octave's own Mass -- DISPROVED by missalemeum's own independent extraction for the two real Holy Name Sundays in its 2026-2027 window (test/fixtures/missalemeum-ef-2026-2027.txt, 2026-01-04/2027-01-03: \"Acts 4:8-12\"/\"Luke 2:21\", title \"Holy Name of Jesus\"), then confirmed against the Missal itself, twice, both scans (above) -- see [colitur_keys]'s own CORRECTED note in bootstrap_lectionary.ml for the full account of the analogy error this replaces. Season and Slug_f already agree on every occurrence (Layer A's own alias for \"ef-christmas-sunday-0\"/\"ef-holy-name-sunday\" -- the SAME underlying fact the generator's old, wrong widen also used, only one of the two uses was ever mistaken), so this entry's own guard is an EXACT match, `diffs = [ First_f; Gospel_f ]`, not a subset. 26 of the 46 years in the fixture's own 2005-2050 span DO have a Sunday 2-5 January -- the complement of C16's own 20 fallback years (26 + 20 = 46, no residue) -- derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 26.")
(expected_rows 26))
((id C30)
- (citation "RG 17(a)'s own rubric, immediately following the Holy-Name-Sunday heading, both scans, word for word: \"Diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut die 1 ianuarii\" (docs/research/scan1.txt:6522-6526) / \"Diebus ferialibus a 2 ad 6 ianuarii Missa dicitur ut die 1 ianuarii\" (scan2.txt, the \"6\" a one-digit OCR variant of scan1's \"5\" -- immaterial, 6 January is always Epiphany, a fixed I-class feast outranking any ferial rubric outright) -- ON FERIAL DAYS from 2 to 5 January, THE SAME MASS AS 1 JANUARY (the Circumcision, Titus 2:11-15/Luke 2:21) IS SAID")
+ (citation "NOT RG 17(a) itself -- CORRECTED, fix round 1 (coordinator review): RG 17(a) (scan1.txt:396-402) states only the day-identity privilege (\"festum Ss.mi Nominis Iesu, celebrandum dominica quae occurrit a die 2 ad 5 ianuarii, secus die 2 ianuarii\"), nothing about ferial Masses -- this is the Missal's own MASS-PROPERS rubric for the Most Holy Name of Jesus (docs/research/rules-register.md's own account, \"the Mass propers' own rubric for this feast\", already correct there and now matched here), printed immediately BEFORE the Sunday-shape Mass heading, not after it, both scans, word for word: \"Diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut die 1 ianuarii\" (docs/research/scan1.txt:6522-6526) / \"Diebus ferialibua a 2 ad fi ianuarii Missa dicitur ut die 1 ianuarii\" (scan2.txt:7213-7217 -- OCR-garbled there, \"ferialibua\"/\"fi\" for \"ferialibus\"/\"5\"; scan1 is clean and missalemeum's own extraction corroborates the citation this rubric produces, so the reading is not in doubt) -- ON FERIAL DAYS from 2 to 5 January, THE SAME MASS AS 1 JANUARY (the Circumcision, Titus 2:11-15/Luke 2:21) IS SAID")
(verdict colitur)
- (note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-christmas-1-{monday,tuesday,wednesday,thursday,friday}` (2-5 January, EXCLUDING Saturday) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback (C25's OWN former population, before this task narrowed it -- see C25's own note for the full split). Given a direct entry now (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]), Season/Slug_f already agree with lectio on every occurrence (this window is entirely BEFORE C1's own 6-13 January boundary, and lectio's own naming for 2-5 January is already the SAME \"ef-christmas-0\"/\"ef-christmas-sunday-0\" family Layer A already aliases), so this entry's own guard is an EXACT match, `diffs = [ First_f; Gospel_f ]`. `ef-christmas-1-saturday` is DELIBERATELY excluded, both from the direct entry and from this predicate's own slug list -- RG 78's BVM Saturday Office wins that day unconditionally whenever nothing else does (Rite_ef.Temporal_ef's own [bvm_saturday_names], already built, ef-bvm-saturday task), confirmed directly against missalemeum's own title on this window's own two such Saturdays (\"II Mass of the B. V. M. -- Vultum Tuum\", never \"Feria\") -- giving it this entry's own citation would be wrong exactly there; it remains C25's own narrower population, unaffected by this task (see C25's own note). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 91.")
+ (note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-christmas-1-{monday,tuesday,wednesday,thursday,friday}` (2-5 January, EXCLUDING Saturday) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback. Given a direct entry now (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]), Season/Slug_f already agree with lectio on every occurrence (this window is entirely BEFORE C1's own 6-13 January boundary, and lectio's own naming for 2-5 January is already the SAME \"ef-christmas-0\"/\"ef-christmas-sunday-0\" family Layer A already aliases), so this entry's own guard is an EXACT match, `diffs = [ First_f; Gospel_f ]`. `ef-christmas-1-saturday` is DELIBERATELY excluded, both from the direct entry and from this predicate's own slug list -- RG 78's BVM Saturday Office wins that day unconditionally whenever nothing else does (Rite_ef.Temporal_ef's own [bvm_saturday_names], already built, ef-bvm-saturday task), confirmed directly against missalemeum's own title on this window's own two such Saturdays (\"II Mass of the B. V. M. -- Vultum Tuum\", never \"Feria\") -- giving it this entry's own citation would be wrong exactly there; it remains C25's own narrower population, unaffected by this task (see C25's own note).
+
+CORRECTED, fix round 1 (coordinator review, Important 1): this note previously described its own 91-row population as \"C25's OWN former population, before this task narrowed it\" -- FALSE, the single load-bearing sentence an auditor would check. C25's former (pre-this-task) population contributed only 44 of these 91 rows (Wednesday 6, Thursday 19, Friday 19 -- C25's own fix-round-3 breakdown, unchanged); the remaining 47 (Monday 20, Tuesday 14, Wednesday 7, Friday 6) were NEVER in C25 at all -- C25's own fix-round-2 note already states Monday/Tuesday were excluded because they resolved to lectio's OWN value and passed outright. Those 47 rows PREVIOUSLY MATCHED lectio (both engines independently landing on the identical, now-known-wrong \"Gal 4:1-7\"/\"Luke 2:33-40\" value -- colitur's via the old mis-widened `ef-christmas-sunday-0` borrow, lectio's via its own equivalent fallback) and are NEWLY allow-listed here because colitur is now right and lectio still is not -- the SAME \"both engines independently fell back... and silently AGREED on the wrong answer... newly VISIBLE only because colitur is now correct\" shape this file's own C33/C34 already describe correctly. Re-derived directly against the real resolver (colitur's own PRE-fix binary vs POST-fix, both checked against the lectio fixture for every one of the 91 dates, not asserted): inherited 44 (Wed 6/Thu 19/Fri 19, matching C25's own totals exactly, corroboration not derivation), newly visible 47 (Mon 20/Tue 14/Wed 7/Fri 6), 44+47=91, no residue. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 91.")
(expected_rows 91))
((id C31)
- (citation "RG 17(a)'s own rubric's own next sentence, both scans, word for word: \"Diebus ferialibus a 7 ad 12 ianuarii ante dominicam I post Epiphaniam occurrentibus, dicitur Missa de festo Epiphaniae\" (docs/research/scan1.txt:6753-6757) -- ON FERIAL DAYS from 7 to 12 January occurring BEFORE the first Sunday after Epiphany (Holy Family), THE MASS OF THE FEAST OF EPIPHANY (Isa 60:1-6/Matt 2:1-12) IS SAID")
+ (citation "NOT RG 17(a) -- CORRECTED, fix round 1 (coordinator review): this is a DIFFERENT Mass-propers rubric block, ~230 scan1 lines after Holy Name's own (C30 above), sitting within HOLY FAMILY'S OWN feast propers (RG 17(b)'s feast, page header \"Sanctae Familiae Iesu, Mariae, Ioseph\", scan1.txt:6751/scan2.txt:7412) -- printed immediately BEFORE the \"DOMINICA PRIMA post Epiphaniam / SANCTAE FAMILIAE\" Mass heading, the same structural position C30's own rubric occupies relative to Holy Name's heading, both scans: \"Diebus ferialibus a 7 ad 12 ianuarii ante dominicam I post Epiphaniam occurrentibus, dicitur Missa de festo Epiphaniae\" (docs/research/scan1.txt:6753-6757; scan2.txt:7413-7415 corroborates, OCR-garbled -- \"occurentibus\"/\"Epipbaniee\" -- but the reading is not in doubt: scan1 is clean and missalemeum's own extraction corroborates the citation this rubric produces) -- ON FERIAL DAYS from 7 to 12 January occurring BEFORE the first Sunday after Epiphany (Holy Family), THE MASS OF THE FEAST OF EPIPHANY (Isa 60:1-6/Matt 2:1-12) IS SAID")
(verdict colitur)
(note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-christmas-2-{monday,tuesday,wednesday,thursday,friday}` (7 January through the day before Holy Family Sunday, EXCLUDING Saturday -- the same RG 78 exclusion C30 above explains, confirmed again on this window's own remaining such Saturdays) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback. This slug family's own civil dates ALREADY carried a Season/Slug_f/Colour_f divergence against lectio BEFORE this task (lectio's own season boundary starts Time-after-Epiphany at Epiphany itself, RG 72-73's own later boundary colitur keeps; lectio's own week numbering has no Holy Family to wait for, so its own slug for these dates is already \"ef-time-after-epiphany-1-<weekday>\", not \"ef-christmas-2-...\"), previously absorbed by C1's own [jan_6_13_slug] allow-list (which already names this family, unchanged) -- this task's own fix (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) adds a First_f/Gospel_f divergence on top of that EXISTING one, so this entry's own guard is a SUBSET, `subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]` with at least one of First_f/Gospel_f present (a feria's Epistle and Gospel are independent lookups and can each happen to already coincide). `ef-christmas-2-saturday`, though deliberately given no DIRECT entry (the same RG 78 reasoning as C30), is included in THIS entry's own slug list for a different, genuinely observed reason: its own step-3 walkback CAN land on `ef-holy-name-sunday` in years where that Sunday immediately precedes it, inheriting that slug's newly-corrected citation (C29 above) as a side effect, with no direct entry of its own involved at all -- confirmed directly against the real resolver, not theorised (`ef-christmas-1-saturday`'s own walkback structurally cannot reach that far forward, since its own window, 2-5 January, is entirely before Holy Name Sunday can exist; C25's own unchanged population is the proof this genuinely does not happen there). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 89.")
(expected_rows 89))
((id C32)
- (citation "RG 17(a)'s own rubric's own third sentence, a named formula, both scans: \"post eandem dominicam vero Missa de eadem dominica In excelso throno, ut infra... Haec Missa dicenda est diebus ferialibus huius hebdomadae\" (docs/research/scan1.txt:6758-6851) -- \"MISSA DOMINICAE PRIMAE post Epiphaniam\", Epistle \"Lectio Epistolae beati Pauli Apostoli ad Romanos. Rom. 12, 1-5\" (scan1.txt:6875-6877), Gospel the SAME pericope as Holy Family's own Sunday Mass, Luke 2:42-52 (scan1.txt:6885-6905) -- said on the FERIAL DAYS of Holy Family Sunday's OWN week")
+ (citation "NOT RG 17(a) -- CORRECTED, fix round 1 (coordinator review): the SAME Holy Family propers block C31 above cites, its own next sentence, a named formula, both scans: \"post eandem dominicam vero Missa de eadem dominica In excelso throno, ut infra... Haec Missa dicenda est diebus ferialibus huius hebdomadae\" (docs/research/scan1.txt:6758-6851; scan2.txt:7415-7434 corroborates \"In excelso throno... ut infra\", OCR-garbled elsewhere in the same passage, reading not in doubt) -- \"MISSA DOMINICAE PRIMAE post Epiphaniam\", Epistle \"Lectio Epistolae beati Pauli Apostoli ad Romanos. Rom. 12, 1-5\" (scan1.txt:6875-6877), Gospel the SAME pericope as Holy Family's own Sunday Mass, Luke 2:42-52 (scan1.txt:6885-6905) -- said on the FERIAL DAYS of Holy Family Sunday's OWN week")
(verdict colitur)
(note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-time-after-epiphany-1-{monday,tuesday,wednesday,thursday,friday}` (Holy Family Sunday's own week, EXCLUDING Saturday -- the same RG 78 reasoning as C30/C31) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback (which happened to land on Holy Family Sunday's OWN citation, Col 3:12-17/Luke 2:42-52 -- a DIFFERENT Epistle from this entry's own Rom 12:1-5, the same Mass propers' own distinction between the Sunday and its week's ferias, both scans). This slug family's own civil dates ALREADY carried a bare Season/Colour_f divergence against lectio BEFORE this task (SAME slug on both sides here, unlike C31 -- lectio's own season boundary alone, RG 72-73 vs Epiphany), previously absorbed by C1's own generic 6-13 January window (no [Slug_f] involved, so C1's own [jan_6_13_slug] gate was never even reached) -- this task's own fix (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) adds a First_f/Gospel_f divergence on top, so this entry's own guard is a SUBSET, `subset diffs [Season;Colour_f;First_f;Gospel_f]` with at least one of First_f/Gospel_f present, the same \"not necessarily both\" reasoning C31 explains. Checked AFTER C19 deliberately in test_differential.ml's own [layer_c_reason]: C19's own 7 \"week shift\" years (2008/2013/2019/2030/2036/2041/2047) already explain this SAME slug family's own citation divergence there, for a DIFFERENT root cause (the week-numbering offset, not this task's own fix) -- this entry must not re-claim those rows under a citation-content reason C19 already owns, so its own population is exactly the OTHER (non-shift-year) civil dates; C19's own count is independently confirmed UNCHANGED at 45 by this same test run. `ef-time-after-epiphany-1-saturday`, though deliberately given no direct entry, is included in this entry's own slug list for the SAME step-3-ripple reason C31's own note explains for `ef-christmas-2-saturday` -- confirmed directly against the real resolver, not theorised. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 99.")
(expected_rows 99))