session 2026-07-05: exclusion path ratified+applied (PENDING-47) — Region 1 closed
Exclusion path jurist-ratified with 2 §1 corrections, applied; 4 FPs excluded (confirmed-wrong, Instrument-B 0/5). Region 1 closed for the known cases. Frontmatter- sweep-at-scale surfaced [needs-authorization]. Ledger + PENDING-47. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dsqe1x23NgWaRdiFWSotur
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
70ad599b5c
commit
8025bb647d
+24
@@ -1220,6 +1220,30 @@ n=100 random non-Loeb, structured query (title + author-P50, no type). **AUTO 27
|
||||
**FIX-LIST APPLIED (steward "Yes"):** 5 verified FP re-points PINNED to the **permanent Chamber Sources home** (steward correction: pin the permanent home, not the transient library path) with real Instrument-B `against` evidence — the-odyssey, montaigne, lhomme-tome-1, suzuki, berger (5/5 or 4/5). **ARCHIVE-CONTAMINATION FINDING (steward's permanent-home reminder surfaced it):** the FP contamination had reached the permanent archive — `archive_sources.py` had copied WRONG sources under right slugs + `dest.exists()` locked them in; 5 CS copies were the wrong source (0/5) → force-replaced with verified-correct (governed rezip/sha, manifest `corrected-2026-07-04`). **Implication: full archive↔matches reconciliation owed post-gate** (contamination likely in every archived FP). **DEFERRED:** 2 CS-corrected-but-pin-deferred (orthotypo-vol-2, semaison — NO frontmatter, a new corpus-integrity defect beyond the 4 stubs); 4 needs-locate (reverie needs FRENCH ed, meditations/ecrits/nietzsche not on disk — no correct source to pin; the pin mechanism has NO exclusion path → these persist as algorithmic-FPs until an exclusion path or the Axis-A gate). **COMMITTED + PUSHED** the day's chamber-library work (stress-test artifacts, persistence layer, study/tooling docs, 5 pins). `_scratch/` + the nature-of-order-vol-1 untracked file EXCLUDED (not ours).
|
||||
**STILL OPEN:** exclusion-path design (for FPs with no correct source) OR rely on the Axis-A gate; the 2 no-frontmatter canonicals' frontmatter repair; the 4 needs-locate source hunts; works-eliot disambiguation; the 2 scope-under-coverage calls; full archive reconciliation; jurist ratification of the work-identity study (item 4).
|
||||
|
||||
### PENDING-47 — EXCLUSION PATH (Region 1.1) BUILT + TESTED 2026-07-05 → surfaced for jurist ratification. HELD from real canonicals.
|
||||
The ratified pin has no way to attest ABSENCE, so the 4 no-source FPs (reverie / meditations / ecrits / nietzsche) fall through to `classify()` and re-derive the algorithmic FP every run. **Built the exclusion path** (test-first, the hash-locality pattern): an attested `source_verified.result` verdict — `confirmed-wrong` | `none-on-disk` — makes `match_sources.py` emit NO confirmed link (never the FP), routing the canonical to needs-locate. Same attestation shape + guard the jurist ratified: a bare / pipeline / unrecognized verdict is NOT honored (**positive attestation of absence, never a default**). Emits an auditable `excluded` record (`conf:"excluded"` → `archive_sources.py` ignores it by its `conf=="high"` filter, verified — no archiver change).
|
||||
**PROOF:** 37/37 tool self-tests (7 new exclusion cases: the two verdicts · both positive-attestation guards [pipeline / unattested] · incomplete-attestation · unrecognized-verdict · presence-pin regression · nested-frontmatter parse). The 5 existing presence pins still honored. **Full real-corpus matcher run byte-identical** (source-matches.json + report unchanged) → INERT until an exclusion is declared → ZERO regression (the pin layer's "0 pins → inert" proof).
|
||||
**Files (uncommitted, held for review):** `scripts/match_sources.py` (`attested_pin` generalized to `{kind: pin|exclusion}`; `main` splits pinned/excluded + EXCLUDED report + `excluded` json record), `scripts/test_tools.py` (+`test_source_match_exclusion`), `_curation/graduation-spec.yaml` (`source_verified.result` documented — generative-from-spec).
|
||||
**FOR THE JURIST (ratify the pattern, as with hash-locality):** (1) attested-absence via a `result:` verdict on `source_verified` — right shape? (2) the verdict vocabulary `confirmed-wrong` / `none-on-disk`, kept distinct for auditability (the V-SUSPECT/V-NONE-distinctness spirit, condition 6). (3) the auditable `excluded` json record (honest-degradation: the exclusion is visible in the data layer, not silent) vs report-only. (4) once ratified, is applying it to the 4 real FPs `[agentic]` (the FIX-list = Region 1.2), or does each attestation need its own beat?
|
||||
**HELD:** not applied to any real canonical yet — the exclusion attestations for the 4 FPs (with real Instrument-B `against` evidence) are the FIX-list application (Region 1.2), sequenced AFTER the jurist ratifies the pattern (hash-locality sequencing: ratify pattern → then pin/exclude).
|
||||
**Awaiting:** jurist ratification of the exclusion pattern (steward relay) → then Region 1.2 (attest + exclude the 4 FPs, regenerate, verify the FPs are gone). Also still open: the 4 needs-locate source hunts (Region 2), the 2 no-frontmatter repairs + stubs (Region 3), works-eliot + the 2 scope calls (steward), full archive reconciliation, item-4 work-identity.
|
||||
|
||||
### PENDING-47 — EXCLUSION PATH: JURIST RULING RECEIVED 2026-07-05 → RATIFIED-WITH-CORRECTIONS; §1 corrections APPLIED (Phase A). Region 1.2 unblocked.
|
||||
Jurist disposition: **ratified with two required §1 corrections** (not as-submitted). §2 vocabulary ratified (**closed-but-extensible**: a 3rd verdict under the same guard is D-1). §3 emission ratified (the auditable `excluded` record; report-only rejected — the JSON is the durable record). §4: Region 1.2 = `[agentic]` batch, **no per-instance re-gating**, with a **diff-before-commit legibility check**. Cross-ref: same doctrine as the Studium V0 ruling today (a verdict never claims more than what was attested; the process that produced an error never attests its own correction — `conversion-pipeline` excluded as attestor ≙ "never the generating model checking itself").
|
||||
**§1 CORRECTIONS APPLIED (Phase A — mechanical / D-1):**
|
||||
1. **Exclusion moved to its OWN top-level key `source_excluded:`** — not a `result:` verdict inside `source_verified:` (which asserts the opposite of what an exclusion means). Shared guard `_valid_attestation()` (defined once, can't drift), two honestly-named keys — the `sectionless:` precedent followed literally.
|
||||
2. **`result: verified` now REQUIRED explicitly on `source_verified:`** (no default-by-absence, even for presence) → **the 5 existing pins migrated** (one line each: the-odyssey / montaigne / lhomme-T1 / suzuki / berger).
|
||||
**PROOF:** 37/37 tool self-tests green under the corrected schema (source_excluded block · result:verified required · co-present exclusion-precedence · unrecognized-verdict refused). Matcher run: **5 pins still honored**; `source-matches.json` + report **byte-identical** → corrections + migration clean, zero regression.
|
||||
**Files (uncommitted, held for review):** `scripts/match_sources.py` (`_valid_attestation` shared guard + two-block `attested_pin`), `scripts/test_tools.py`, `_curation/graduation-spec.yaml` (`source_verified.result` required + `source_excluded` block, closed-but-extensible note), + 5 canonical frontmatters (`result: verified`).
|
||||
**REGION 1.2 (now `[agentic]`, diff-before-commit):** attest + exclude the 4 FPs — reverie (`confirmed-wrong`: on-disk *Poetics of Reverie* is English, canonical needs the French — Instrument-B mismatch evidence) + meditations / ecrits / nietzsche (`none-on-disk`: inventory-search absence). Regenerate `source-matches.json`, then **surface the diff (4 `against` strings + before/after json) before commit**. **One methodological point to settle first:** the adequate `against` for a `none-on-disk` attestation — there is nothing to fingerprint, so the evidence is a negative inventory search (`by: manual` + a documented search), vs the confirmed-wrong case (Instrument-B fingerprint mismatch).
|
||||
**Awaiting:** steward go for Region 1.2 (+ the none-on-disk evidence standard). Still open beyond: Region 2 source hunts, Region 3 repairs + stubs, works-eliot + the 2 scope calls, full archive reconciliation, item-4.
|
||||
|
||||
### PENDING-47 — REGION 1.2 APPLIED 2026-07-05 (steward approved the diff "reads right"). The 4 FPs excluded. COMMITTED.
|
||||
**All 4 FPs attested `source_excluded: confirmed-wrong`** — verifying against the substrate CORRECTED the map's "3 none-on-disk": each had a concrete wrong on-disk candidate the matcher was picking — reverie → Poétique de l'**espace** (same-author-wrong-work, `suspect=False`, the exact blind spot this arc exists to catch); meditations → Bourdieu *Pascalian Meditations*; ecrits → *Écrits radiophoniques*; nietzsche → *A Nietzsche Reader*. **Real evidence:** Instrument-B **0/5 probe-windows (frac 0.0)** for each — the canonical's prose wholly absent from the matched candidate. Regenerated `source-matches.json`: the 4 → excluded records (conf `excluded`, no link, routed to needs-locate); **every OTHER of the 315 records byte-identical** (change provably bounded to the 4). 37/37 tests. Noted: the 4 canonicals lack a `source:` field — a pre-existing frontmatter gap (feeds the sweep below).
|
||||
**COMMITTED + PUSHED** the exclusion-path arc (§1 corrections + 5-pin migration + 4 exclusions).
|
||||
**Region 1 (the non-Loeb FP loop) is CLOSED for the known cases:** 5 pinned, 4 excluded. The *correct* sources for the 4 remain needs-locate (Region 2). REVIEWED entry still owed.
|
||||
**NEW WORKSTREAM (steward-surfaced 2026-07-05): frontmatter sweep at scale.** The v2 frontmatter spec (`graduation-spec.yaml`) was defined recently, well after most works entered the library → ~1,073 lack v2 frontmatter (+ the 4 FP canonicals' missing `source:`, + Region 3 no-frontmatter/stubs). **[needs-authorization]** — scope-first: a read-only gap census against the spec + a migration plan surfaced for authorization BEFORE touching files. **Honesty constraint (load-bearing):** provenance fields (`source`, `converted_with`, `date_converted`, `source_verified`) cannot be mass-fabricated for works whose provenance isn't known — derive the mechanical ones, mark the unknown honestly, curate the rest. Same anti-default discipline as the exclusion path.
|
||||
|
||||
## PENDING-48 — Studium Engine V0 (verifier contract) — jurist method-gate
|
||||
**Date:** 2026-07-05
|
||||
**Tag:** [PROPOSAL] — routed to the jurist as a **method gate**. This is the *one named exception* to the engine's steward-direct D-1 governance (cluster-a-data-model.md §0; rebuild-plan §8.5, steward-ruled 2026-07-04): V0 defines *what the engine may assert as verified and when it must abstain*, and everything downstream inherits that standard, so the jurist gates the method before V1 (the byte-existence checker) is built against it.
|
||||
|
||||
Reference in New Issue
Block a user