diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 13:02:39 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 13:02:39 +0200 |
| commit | 5d236c75c557a7e9ed4a8a852b8089aca48b594e (patch) | |
| tree | 59686baed56d78eff5255e31e0f677ebe32d044d /data/ef/expected-divergences-missalemeum.sexp | |
| parent | 8d1eb25a311e16ddb7bf89d2b21fb1ca0aa058a7 (diff) | |
| download | colitur-5d236c75c557a7e9ed4a8a852b8089aca48b594e.tar.gz colitur-5d236c75c557a7e9ed4a8a852b8089aca48b594e.zip | |
test(oracle): fix round 1 -- C30 disclosure, RG 17(a) misattribution, M26 shapes
Three Important findings from coordinator review of 8d1eb25, all fixed.
1. C30's own note claimed its 91-row population "is C25's OWN former
population, before this task narrowed it" -- false. Independently
re-derived against the real resolver (pre-fix vs post-fix binary) and
the lectio fixture: only 44 of the 91 rows were ever in C25 (Wed 6/
Thu 19/Fri 19, matching C25's own fix-round-3 breakdown exactly); the
other 47 (all of Monday/Tuesday, plus part of Wednesday/Friday)
previously matched lectio outright -- both engines independently
landing on the same wrong value -- and are newly allow-listed only
because colitur is now right. Rewritten to the same "both engines
silently agreed on the wrong answer" pattern C33/C34 already used.
2. "Diebus ferialibus" is not RG 17(a) -- RG 17(a) states only the
day-identity privilege; the ferial-Mass rubrics are Mass-propers
rubrics, a distinction the register's own §6.3 already drew before
this task's first pass blurred it in code/allow-list comments. A
further slip: C31/C32 called their own rubric "RG 17(a)'s own next/
third sentence" when it is a different rubric block ~230 lines away,
in Holy Family's (not Holy Name's) own feast propers. Fixed the
attribution chain throughout tools/bootstrap_lectionary.ml,
data/ef/expected-divergences.sexp's C29-C34, and (gitignored, outside
this commit) docs/research/rules-register.md -- closed the §6.3 park,
added §6.5 recording all four citations with corrected attribution.
Quotes and line numbers were already right; only the chain of custody
to RG 17(a) was wrong.
3. M26's own 30 rows classify into two nameable shapes, not "three
confirmed shapes" with an unexplained 23-row residue that was in fact
empty: 21 rows are RG 78's own already-documented BVM votive-Mass
gap; 9 rows are a second, distinct gap -- a week whose own Sunday was
displaced by a movable named feast (Trinity->Corpus Christi, "Missa
Dominicae I post Pentecosten"; Christ the King), where the Missal
requires the displaced Sunday's own Mass to keep informing that
week's ferias but step 3 walks back to the displacing feast's citation
instead -- proven directly by colitur's own citation on the Christ-
the-King rows being literally that feast's own Gospel. verdict open
unchanged (not fixed here); the shape is now named instead of buried.
Minors: section count corrected 1458->1456 (four places); "exactly one
candidate, zero ambiguous" corrected to "correctness rests on ordering,
not uniqueness" (2 of 1456 sections genuinely yield two candidates,
Holy Saturday's own Lectio, both years); the stale "nothing in layers
3-5 compares citations" claim corrected (only layer 5 still doesn't);
M18's note corrected (five new entries not six; ~18 of its remaining
352 rows only agree now because of this task's own fixes, not "already"
before it); "five" corrected to "six" otherwise-unoccupied Saturdays in
bootstrap_lectionary.ml; scan2 quotes softened where OCR-garbled.
Also done outside the git-tracked files: the step-4 (Commons) coverage
gap is now recorded in data/ef/expected-divergences-missalemeum.sexp's
own header, not only the commit body and the (gitignored) report.
dune test: 358 tests green. COLITUR_EXHAUSTIVE_SWEEP=1 dune test
--force: 359 tests green, 95.7s.
Diffstat (limited to 'data/ef/expected-divergences-missalemeum.sexp')
| -rw-r--r-- | data/ef/expected-divergences-missalemeum.sexp | 31 |
1 files changed, 29 insertions, 2 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") |
