session 2026-07-12: PENDING-56/57, REVIEWED filings, ledger
- PENDING-56 (canonical format + sidecar) + PENDING-57 (verbatim gate) filed and carried through the jurist rulings; REVIEWED-55/56/57 filed. - REVIEWED-drafts-for-filing: the paste-ready records. - Symmetria session-ledger: the full A1 -> schema-lock -> B2 -> verbatim-gate arc. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jYS1tpR4P4NBxui4FSgfv
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0a424aa6b3
commit
d9692f7418
+22
@@ -1478,3 +1478,25 @@ Disposition (verbatim capture + executor action-list: `chamber-library/docs/libr
|
||||
**The one flip-condition (for the jurist to test):** if the v1 engine needs *structured critical apparatus (A5) as data* or *DTS-interoperable citation*, revisit toward Option B/TEI. Read: both are later/scholarly needs, not v1 blockers.
|
||||
**Files affected (on execution):** conversion runbook + graduation-spec (Docling front-end; sidecar as graduated structural layer) — a v2.x amendment, change-class PROPOSAL; new `.meta.json` sidecar extractor; `ocrmac_pdf`/EPUB cruft-strippers retired; reprocess track B reshaped to Docling→sidecar-extract→verify→graduate.
|
||||
**Awaiting:** ~~Jurist ratification~~ **JURIST RATIFIED 2026-07-12** — Option A + D1, on independently-verified reasoning (flip-condition tested directly, NOT triggered for v1: voice-manifest = interpretive-persona not manuscript-variant; the corpus's strongest TEI case, Loeb, needs anchors [B2, which A provides] not apparatus [A5]). **Two schema-gating questions CLOSED with substrate evidence (brief §8):** Q1 — Docling emits flat reference-links not native footnotes (0 `[^N]`, 48 `[*](#…)`, `epub_backend` ignores `epub:type`) → the footnote-recognizer arc is REPOSITIONED as the sidecar's note-extraction layer, not retired; Q2 — the Loeb DSL is typed (`[c dimgray]`/`[c darkmagenta]`/`[sup]`, 2.15M+ spans) and the current extractor *flattens* it → **CARDINAL PRINCIPLE set before schema lock: the extractor PRESERVES source typing into typed sidecar fields, never flattens a source-structured distinction to prose** (makes TEI-migration mechanical-by-construction). **REVIEWED-56 can be placed; sidecar schema unblocked to finalize on these two principles.** (Parallel governance still owed: REVIEWED-55 placement.)
|
||||
|
||||
## PENDING-57 — Enforce `body_word_conservation` at graduation (the converter-agnostic verbatim trust gate)
|
||||
**Date:** 2026-07-12
|
||||
**Tag:** [PROPOSAL]
|
||||
**Summary:** Wire the built `verify_body_conservation.py` into the graduation gate so graduation ENFORCES the verbatim guarantee (currently `body_word_conservation` is listed in `graduation-spec.yaml` line 136 but `verify_graduation.py` does not enforce it — general non-footnote graduation has no automatic verbatim backstop).
|
||||
**Rationale:** The trust foundation the whole reprocess stands on, and converter-agnostic — it certifies verbatim fidelity whether text came from Docling, pandoc, the Loeb DSL extractor, or OCR. Every tier's reconvert (Loeb B2, the EPUB/PDF Docling reprocess) graduates *through* it; without it "verified" is asserted, not checked. The PENDING-52 follow-on the jurist flagged twice; named in REVIEWED-55 as the gap "now addressed by PENDING-56."
|
||||
**Method (per-tier, already RATIFIED by the register's §Tiering&Fence):** V-DSL (Loeb) = re-extract deterministically + no-fabrication vs the DSL source; V-TEXT (born-digital) = re-convert + prose-word guard (BUILT — caught jacobs 888 / manguel 2856 / montaigne fn-id residue that audit_cruft missed); V-SCAN = abstain (no ground truth; honest "cannot verify", never a false PASS). Three-tier verdict gates: FLAG blocks · REVIEW holds for curator drop-vs-keep identification · PASS proceeds.
|
||||
**Options:** (a) enforce all three tiers now; (b) enforce V-TEXT now (built) + wire V-DSL with the Loeb reconvert + V-SCAN abstain. Recommend (b) — lands the built path immediately, wires V-DSL where it's first needed (the Loeb run), no false claims on scans.
|
||||
**Full brief (for the jurist editor-gate):** `chamber-library/docs/verbatim-gate-enforcement-FOR-JURIST-2026-07-12.md`.
|
||||
**Change-class:** PROPOSAL — inserts a new blocking check into the graduation gate. Runs the amendment process (executor drafts → jurist editor-gate → steward ratifies → land by supersession into `graduation-spec.yaml` + `verify_graduation.py`). Does NOT change the convention checks, the §V guarantee text, or any tier's evidence-class; V-SCAN gains an honest abstention, not a new claim.
|
||||
**Files affected (on ratification):** `verify_graduation.py` (add the per-tier body-conservation gate), `graduation-spec.yaml` (make the listed gate enforced + declare the per-tier dispatch), `verify_body_conservation.py` (V-DSL re-extract path — **BUILT**), plus a **retroactive-sweep** producing a remediation queue across the already-graduated corpus (§6 below).
|
||||
**UPDATE 2026-07-12 (jurist PARTIAL ruling + executor response):**
|
||||
- **Jurist RATIFIED the architecture** (FLAG/REVIEW/PASS mapping, V-TEXT, V-SCAN abstention, change-class PROPOSAL — distinct from the REVIEWED-55 refusal-only-FIX exception because a FLAG/unresolved-REVIEW has no already-trusted fallback route to canon). **Withheld final ratification pending a V-DSL DEMONSTRATION** (his lesson: simpler-sounding architecture doesn't get trusted a third time on sounding simpler).
|
||||
- **V-DSL now DEMONSTRATED (§3.5 of the brief) — the demo vindicated the caution:** naive reuse of the V-TEXT k-gram check FALSE-FLAGGED a clean Apollonius (1070 "fabrications", only 6 truly-new = the MD subtitle; the rest = coverage misses from the DSL→MD REFLOW). Corrected → **reflow-tolerant word-multiset** on source-content body: Apollonius (verse) fab=0 PASS · Plato Gorgias (prose) fab=0 PASS · injected fabrication → FLAG with teeth. Fleet fixture added (test_tools 105→109). Honest residual: fabrication half gate-ready; content-vs-boilerplate DROP side delegates to `extract_loeb_dsl`'s integrity report.
|
||||
- **Provenance verified** (jurist flagged the "already RATIFIES" claim): spec v2.0.0 §Tiering & Fence IS ratified (RATIFIED-SHAPE · OPERATION-BLOCKED) — this PROPOSAL is the un-blocking; the dispatch is confirmed, not originated.
|
||||
- **§6 RETROACTIVE clause FOLDED IN (steward-directed, rule together):** on ratification the gate runs BACKWARD across graduated canon (V-DSL 952 · V-TEXT 239), diagnostic-first → a remediation queue (FLAG=re-verify→reconvert; REVIEW=curator; PASS=re-attest), NOT silent de-graduation. Motivated by the jurist's 3-for-3 (jacobs/manguel/montaigne all graduated-clean, all failed the new check). Companion efficiency noted (not a condition): the LOCKED sidecar's `placement:back`+`role` resolves the REVIEW-tier endnotes-keep/index-drop ambiguity declaratively for any book carrying a sidecar.
|
||||
**UPDATE 2026-07-12 (jurist FINAL ruling — RATIFIED on 2 conditions; both now addressed):**
|
||||
- **Jurist RATIFIED the whole PROPOSAL** — architecture, V-TEXT, V-SCAN, V-DSL's fabrication half (now genuinely demonstrated), and the §6 retroactive sweep (well-precedented by REVIEWED-55's own sweep). Two conditions + one flag:
|
||||
- **Condition 1 (V-DSL loss half) — ADDRESSED:** the jurist noted loss delegated to `extract_loeb_dsl`'s self-report without the fabrication half's independent injection proof → route loss to REVIEW until a loss-injection test closes the asymmetry. **Built the independent loss teeth + demonstrated:** boilerplate-vocab classifier → clean Apollonius `lost_content=0 PASS`; drop a content word (`banquet`) → `FLAG` naming it. Fleet fixtures both sides (test_tools 105→111). **Honest bound stated:** blind to a dropped *occurrence* of a boilerplate-vocab word (count masked) — the narrow edge the jurist's REVIEW-routing guards; his call whether demonstrated-teeth suffices for auto-PASS or REVIEW-routing is kept for that edge.
|
||||
- **Condition 2 (43-book census gap) — CONFIRMED:** census = V-DSL 952 · V-TEXT 239 · V-SCAN 50 · V-SUSPECT 29 · V-NONE 14 = 1,284; the 43 = V-SUSPECT+V-NONE = the **fenced-out** tier (no confirmed source) → correctly EXCLUDED from the conservation sweep (can't re-verify a book with no source). Not a gap; the fence working.
|
||||
- Brief updated (§3.5 loss teeth + §6 census). Change-class PROPOSAL confirmed (distinct from REVIEWED-55's refusal-only-FIX: a FLAG/unresolved-REVIEW has no already-trusted fallback to canon).
|
||||
**Awaiting:** jurist confirmation the two conditions are closed (+ his call on loss auto-PASS vs REVIEW-routing for the masked-vocab edge) → steward ratification (REVIEWED-57) → land by supersession into `graduation-spec.yaml` + `verify_graduation.py`.
|
||||
|
||||
+69
@@ -486,3 +486,72 @@ DONE + DEPLOYED (a9e5196).
|
||||
- **§6 — governance placement: yes** (fleet tool + `test_tools` fixtures + `graduation-spec.yaml` `converted_with` note).
|
||||
- **§7 — mega-EPUB provenance (Jung): OPEN, non-blocking, steward+jurist together.** Jurist leans per-volume (Jung is cited by CW volume; single file fights use) provided the safeguard is airtight (each volume `source`/`source_verified` → the single megavolume sha256; frontmatter states extraction, never poses as a standalone Bollingen edition). Executor fact-check: the corpus does BOTH; **per-volume precedent EXISTS** (Alexander *Nature of Order* 4 files · Lacroux 2 · Habermas/Burney/Camus vol-named). Split is proven content-neutral, so the choice carries no conversion risk — a usability/honesty question. *[Steward + jurist to settle; governs re-converting the legacy Jung `.md`, 0 notes / pre-spec frontmatter.]*
|
||||
**If AUTHORIZED:** BUILD-IN DONE under fleet discipline — `scripts/inject_epub_footnotes.py` (+ `--validate`, refuse-on-mismatch) + `scripts/convert_mega_epub.py`; `test_tools` fixture (fleet 73→77); `graduation-spec.yaml` + `conversion-runbook.yaml` (`policy.footnote_preprocessor`) + `tool-evolution-log.md`. Full brief: `docs/epub-footnote-preprocessor-FOR-JURIST-2026-07-10.md`. Deferred: recognizer coverage of remaining families; per-volume boundary detection (§7); ratified-spec §V cross-ref (runs the `.md` amendment lane, NOT landed here); re-convert legacy Jung/Donne. Tag follow-ons REVIEWED-54.
|
||||
|
||||
## REVIEWED-55 — EPUB footnote pre-processor: end-to-end verify + recognizer arc
|
||||
**Date:** 2026-07-12
|
||||
**Decision:** AUTHORIZED (as ruled by the jurist; steward-confirmed)
|
||||
**Corresponds to:** PENDING-55 · Jurist ruling `chamber-library/docs/end-to-end-verify-and-nested-block-JURIST-RULING-2026-07-12.md`
|
||||
|
||||
**Notes:** Ratifies the jurist's ruling on the footnote arc:
|
||||
- **Q1a — end-to-end verify RATIFIED, FIX-class** on the refined test: a §V-chain component is FIX when it (i) only ADDS refusals, (ii) never alters text, (iii) falls back to an already-trusted path. `verify_end_to_end` satisfies all three — turns the guarantee from *verbatim-safe by construction* to *by verification*.
|
||||
- **Q1b — MANDATORY at graduation** (`--no-verify` forbidden at graduation while `body_word_conservation` is unenforced), PERSISTS after that gate lands (defense-in-depth), **+ RETROACTIVE re-verification required.** [Retroactive sweep DONE (`6c9ca43`): 87 covered books · 42 clean / 45 dirty; **corpus SAFE — 0 dirty graduated**; recognizer's reliable coverage ≈42/87.]
|
||||
- **Q1c — marker-exclusion made POSITIONAL** (DONE, `e8eeea7`).
|
||||
- **Q2 — nested-block FIX RETRACTED, honest-refuse CONFIRMED** (the widen pairs but converts dirty; the end-to-end verify caught it; reverted). A fresh PROPOSAL required if ever revisited. Jurist generalization: *structural safety = provisional FIX; end-to-end verbatim proof on real books = final.*
|
||||
- **Broader flag (jurist):** `body_word_conservation` declared-but-unenforced is the same gap-shape PENDING-52 closed, recurring → now addressed by PENDING-56 (the general verbatim gate = the converter-agnostic trust layer).
|
||||
|
||||
**If AUTHORIZED:** Proceed; tag commits REVIEWED-55. Open follow-ons: wire mandatory-at-graduation (flow must not pass `--no-verify`); the recognizer-maturity decision (improve over-pairing vs accept 42-clean + fallback) is now **subsumed by PENDING-56** — the recognizer repositions as the sidecar note-extraction layer.
|
||||
|
||||
---
|
||||
|
||||
## REVIEWED-56 — Canonical format: adopt Docling + complete MD-canonical + TEI-mirroring structural sidecar
|
||||
**Date:** 2026-07-12
|
||||
**Decision:** AUTHORIZED
|
||||
**Corresponds to:** PENDING-56 · Jurist RATIFICATION 2026-07-12 · Brief `chamber-library/docs/canonical-format-decision-FOR-JURIST-2026-07-12.md`
|
||||
|
||||
**Notes:** Steward-decided on the four-tier Docling trial evidence (AskUserQuestion, 2026-07-12); jurist RATIFIED on independently-verified reasoning (not deference):
|
||||
- **Option A** — canonical = clean Markdown (Docling-converted, verify gates on top) + a `.meta.json` structural sidecar whose vocabulary MIRRORS TEI (`front`/`body`/`back`; `note @place=foot|end`; `milestone`/anchor; reserved `app` slot; `pb`/page-provenance).
|
||||
- **D1 — adopt Docling** as the EPUB/PDF/scan conversion front-end (MIT, local, per-element provenance); production OCR on CapableHands (M4). Docling **crosses the A3 OCR frontier** `ocrmac` could not.
|
||||
- **Change-class: PROPOSAL** (changes what graduation produces; touches engine consumer contract §X; whole corpus).
|
||||
- **Flip-condition tested by the jurist, NOT triggered for v1:** the engine needs neither structured critical-apparatus (A5) as data nor DTS-interoperability in v1 (voice-manifest = interpretive-persona per PENDING-53, not manuscript-variant; the Loeb tier's Stephanus/Bekker need is anchors [B2, which A provides via the sidecar anchor-map], not apparatus). TEI = documented, revisitable future-migration path with those two named triggers.
|
||||
- **Two schema-gating questions CLOSED before schema lock (brief §8), from substrate evidence:**
|
||||
- **Q1 — recognizer arc REPOSITIONED, not retired:** Docling emits flat reference-links (0 native `[^N]`, 48 `[*](#…)`; `epub_backend` never reads `epub:type`) → this week's 8-family detection + cross-file anchor resolution + end-to-end verify becomes the sidecar's note-extraction layer; the verify stays as the converter-agnostic verbatim gate.
|
||||
- **Q2 — CARDINAL EXTRACTOR PRINCIPLE:** the Loeb DSL is typed (`[c dimgray]` 2.15M · `[c darkmagenta]` 471K · `[sup]`) and the current extractor *flattens* it → the extractor MUST **preserve every source-declared typed distinction into a typed sidecar field, never flatten to prose** — makes TEI-migration mechanical-by-construction.
|
||||
|
||||
**If AUTHORIZED:** Proceed on the architecture; tag commits REVIEWED-56.
|
||||
1. Adopt Docling as the conversion front-end; production OCR on CapableHands.
|
||||
2. Author the `.meta.json` sidecar schema on the two cardinal principles.
|
||||
3. Build the sidecar extractor (EPUB metadata + Docling PDF labels + note-linkage), honest-flag undeclared roles; prove on montaigne (EPUB2) + jacobs (EPUB3).
|
||||
4. Keep the trust gates (`verify_body_conservation`, `normalize_ocr` verbatim-guard) on Docling output.
|
||||
5. Loeb B2: rewrite `extract_loeb_dsl` → MD + sidecar, preserving the DSL color/`[sup]` typing.
|
||||
6. Spec: v2.x amendment (Docling front-end + sidecar as graduated structural layer) — change-class PROPOSAL, runs the amendment process; retire `ocrmac_pdf` + EPUB cruft-strippers; reshape reprocess track B.
|
||||
**Per-content check deferred to the B2 build (not a blocker):** whether `[c darkmagenta]` is apparatus-variants vs bilingual source-text — resolve by sampling volumes; the preserve principle covers both. **[RESOLVED 2026-07-12 by substrate probe: `[c darkmagenta]` = Loeb-reader-RENDERED headers (author/work/book), NOT apparatus; `[c dimgray]` = rendered line-anchors + page-markers + `[sup]` refs. The colors are the reader's rendering, usable as reliable role-CUES, attested honestly as `loeb-render:*`.]**
|
||||
|
||||
---
|
||||
|
||||
## REVIEWED-56 — LOCK ADDENDUM (whole-schema lock ruling, 2026-07-12)
|
||||
**Date:** 2026-07-12
|
||||
**Decision:** AUTHORIZED — whole-schema lock CONFIRMED (schema-side, unconditional)
|
||||
**Corresponds to:** PENDING-56 (schema-lock) · Jurist RULING #2 `chamber-library/docs/...B2-evidence-and-whole-schema-lock-JURIST-RULING-2026-07-12.md` · Executor briefs `docs/sidecar-schema-FOR-JURIST-2026-07-12.md` + `docs/sidecar-schema-lock-addendum-B2-evidence-2026-07-12.md`
|
||||
|
||||
**Notes:** Second jurist ruling in the PENDING-56 arc — the schema LOCK (the first ruling ratified the format/architecture; this locks the `.meta.json` sidecar schema itself). Jurist confirmed on independently-checked B2 evidence, not deference:
|
||||
- **Whole-schema lock CONFIRMED, unconditional on the schema side** → DRAFT (`docs/sidecar-schema-DRAFT-v0-2026-07-12.md`) flips to LOCKED. B2 (`scripts/build_loeb_sidecar.py`) demonstrated flag-and-hold *in code* on the corpus's densest apparatus volume (Ennius FRL Vol I: 44 concordance tables held as typed rows; Diophantus: 38 glyph char-images held with filename preserved) — read back from emitted JSON, not asserted. Every field held; **no missing field**.
|
||||
- **§3 two minor items CONFIRMED, no schema impact:** (a) `source_declared: "loeb-render:*"` — a new *value* in the existing field's vocabulary, honestly naming a render-cue (weaker than `epub:type`); (b) `app[]` interior shapes `{kind:"table"}` + `{kind:"glyph"}` — principle-5 reserved slot resolved from real evidence.
|
||||
- **§4 additive-only amendment discipline CONFIRMED + ONE ADDITION:** LOCKED = meaning/shape of every existing field (books trust them); FLEXIBLE (FIX-class, amendment lane) = new optional fields + new `app[]` kinds (backward-compatible; a pre-addition book simply lacks it); PROPOSAL = changing a locked field's meaning **— AND field REMOVAL** (jurist addition: a presence-checking consumer breaks identically from removal as from meaning-change; same silent-retroactive risk → same PROPOSAL treatment).
|
||||
- **ONE condition MOVES (not closes), extractor-side, does NOT block the lock:** the jurist distinguishes apparatus *density* (what Ennius maximizes) from *diversity of kind*. "Densest volume fit the schema" ≠ "worst case seen" — a sparser volume among 952 could carry a third form (marginal sigla, interlinear glosses; already present in the corpus as `<ul>/<li>` lists + `<h2/h3/h4>` headings, which the v0 prototype does NOT yet hold). **Before B2 runs across the full ~952-book Loeb tier** (not before the lock): confirm/demonstrate a *generic* "unrecognized apparatus shape → flag-and-hold" fallback (mirroring the line-range join's flag-on-unresolvable), so safety is seen-or-unseen-independent. Extractor-completeness, behind the amendment.
|
||||
|
||||
**If AUTHORIZED:** file REVIEWED-56 (this addendum); flip the schema doc DRAFT → LOCKED; tag commits REVIEWED-56. Then, as separate additive amendments: the graduation-spec wiring (sidecar as graduated structural layer) + the B2 extractor completeness (generic fallback + `<section>`-div sections + footnote ref↔body pairing). Books may write against the locked schema meanwhile.
|
||||
|
||||
## REVIEWED-57 — Enforce `body_word_conservation` at graduation (the converter-agnostic verbatim trust gate)
|
||||
**Date:** 2026-07-12
|
||||
**Decision:** AUTHORIZED — FULLY RATIFIED (jurist, after a two-round demonstration loop)
|
||||
**Corresponds to:** PENDING-57 · Jurist rulings (3): architecture → V-DSL-demo condition → full ratification · Brief `chamber-library/docs/verbatim-gate-enforcement-FOR-JURIST-2026-07-12.md`
|
||||
|
||||
**Notes:** The PENDING-52 gap closing at the foundational layer — the declared-but-unenforced `body_word_conservation` gate (listed in `graduation-spec.yaml` line 136, not enforced by `verify_graduation.py`) becomes the gate that is actually checked. Ratified by the jurist across three rulings, each demonstration-gated, not deference:
|
||||
- **Architecture RATIFIED:** three-tier verdict FLAG→blocks · REVIEW→holds-for-curator · PASS→proceeds. REVIEW is real work (endnotes-keep vs index-drop can't be told by alignment position alone), not a soft pass. V-SCAN abstains by construction (no ground truth). Change-class **PROPOSAL** confirmed — distinct from REVIEWED-55's refusal-only-FIX exception because a FLAG / unresolved-REVIEW has NO already-trusted fallback route to canon.
|
||||
- **Per-tier dispatch:** V-DSL (Loeb, re-extract) · V-TEXT (born-digital, re-convert + prose-word guard — BUILT, caught jacobs 888 / manguel 2856 / montaigne fn-id residue that audit_cruft missed) · V-SCAN (abstain). Provenance verified: spec v2.0.0 §Tiering & Fence is ratified (RATIFIED-SHAPE · OPERATION-BLOCKED) — this un-blocks a ratified shape.
|
||||
- **V-DSL DEMONSTRATED, both halves (the jurist's demonstration condition):** the naive reuse of the V-TEXT k-gram check FALSE-FLAGGED a clean book (his caution vindicated) → corrected to a **reflow-tolerant word-multiset** on source-content body. FABRICATION: clean Apollonius (verse) + Plato Gorgias (prose) → 0 PASS; inject → FLAG naming tokens. LOSS (2nd condition): independent teeth via a boilerplate-vocab classifier — clean `lost_content 0 PASS`; drop a content word (`banquet`) → FLAG naming it. Both halves now on direct injection proof, not trust. Fleet fixtures both sides (`test_tools` 105→111).
|
||||
- **Auto-PASS RATIFIED for V-DSL's loss side** — the demonstrated teeth suffices for the general case; the honestly-named residual (a dropped occurrence of a ~15-word boilerplate-vocab token, masked by its header count — can only lose a stopword or the author's name) does NOT warrant blanket REVIEW-routing. **Documented in the gate itself** (`verify_body_conservation.classify_dsl`, tagged REVIEWED-57) with a **revisit-trigger**: if the retroactive sweep ever surfaces a real instance of this masked-vocab failure, weigh tighter checking then.
|
||||
- **§6 RETROACTIVE sweep RATIFIED as folded:** on landing, the gate runs BACKWARD across graduated canon (V-DSL 952 · V-TEXT 239) — diagnostic-map-first → remediation queue (FLAG=re-verify→reconvert; REVIEW=curator; PASS=re-attest), NOT silent de-graduation. Well-precedented by REVIEWED-55's own retroactive sweep (87 books, 0 had actually graduated dirty). Expect a non-trivial fraction (the 3/3 morning sample: jacobs/manguel/montaigne all graduated-clean, all failed). Companion efficiency (noted, not required): the LOCKED sidecar's `placement:back`+`role` resolves the REVIEW-tier endnotes-keep/index-drop ambiguity declaratively for any book carrying a sidecar.
|
||||
- **43-book census CONFIRMED:** V-DSL 952 · V-TEXT 239 · V-SCAN 50 · V-SUSPECT 29 · V-NONE 14 = 1,284; the 43 = V-SUSPECT+V-NONE = the fenced-out tier (no confirmed source) → correctly outside the sweep (a provenance problem, not a coverage gap). Jurist noted (not a condition): these 43 are the same gap-shape PENDING-52 closes going forward — worth attention once the queue moves.
|
||||
|
||||
**If AUTHORIZED:** land by supersession into `graduation-spec.yaml` (make the listed `body_word_conservation` gate enforced + declare the per-tier dispatch) + `verify_graduation.py` (add the per-tier body-conservation gate with source access + tier dispatch) — tag commits REVIEWED-57. Follow-ons: the retroactive sweep run (diagnostic-first) once landed; the sidecar-declaration REVIEW shortcut when convenient; the 43 fenced-out books to source-location. The V-DSL loss residual + revisit-trigger are already in the gate's docstring.
|
||||
|
||||
@@ -41,4 +41,36 @@ Executor-drafted for the steward to file into `~/dotfiles/REVIEWED.md` (Constrai
|
||||
4. Keep the trust gates (`verify_body_conservation`, `normalize_ocr` verbatim-guard) on Docling output.
|
||||
5. Loeb B2: rewrite `extract_loeb_dsl` → MD + sidecar, preserving the DSL color/`[sup]` typing.
|
||||
6. Spec: v2.x amendment (Docling front-end + sidecar as graduated structural layer) — change-class PROPOSAL, runs the amendment process; retire `ocrmac_pdf` + EPUB cruft-strippers; reshape reprocess track B.
|
||||
**Per-content check deferred to the B2 build (not a blocker):** whether `[c darkmagenta]` is apparatus-variants vs bilingual source-text — resolve by sampling volumes; the preserve principle covers both.
|
||||
**Per-content check deferred to the B2 build (not a blocker):** whether `[c darkmagenta]` is apparatus-variants vs bilingual source-text — resolve by sampling volumes; the preserve principle covers both. **[RESOLVED 2026-07-12 by substrate probe: `[c darkmagenta]` = Loeb-reader-RENDERED headers (author/work/book), NOT apparatus; `[c dimgray]` = rendered line-anchors + page-markers + `[sup]` refs. The colors are the reader's rendering, usable as reliable role-CUES, attested honestly as `loeb-render:*`.]**
|
||||
|
||||
---
|
||||
|
||||
## REVIEWED-56 — LOCK ADDENDUM (whole-schema lock ruling, 2026-07-12)
|
||||
**Date:** 2026-07-12
|
||||
**Decision:** AUTHORIZED — whole-schema lock CONFIRMED (schema-side, unconditional)
|
||||
**Corresponds to:** PENDING-56 (schema-lock) · Jurist RULING #2 `chamber-library/docs/...B2-evidence-and-whole-schema-lock-JURIST-RULING-2026-07-12.md` · Executor briefs `docs/sidecar-schema-FOR-JURIST-2026-07-12.md` + `docs/sidecar-schema-lock-addendum-B2-evidence-2026-07-12.md`
|
||||
|
||||
**Notes:** Second jurist ruling in the PENDING-56 arc — the schema LOCK (the first ruling ratified the format/architecture; this locks the `.meta.json` sidecar schema itself). Jurist confirmed on independently-checked B2 evidence, not deference:
|
||||
- **Whole-schema lock CONFIRMED, unconditional on the schema side** → DRAFT (`docs/sidecar-schema-DRAFT-v0-2026-07-12.md`) flips to LOCKED. B2 (`scripts/build_loeb_sidecar.py`) demonstrated flag-and-hold *in code* on the corpus's densest apparatus volume (Ennius FRL Vol I: 44 concordance tables held as typed rows; Diophantus: 38 glyph char-images held with filename preserved) — read back from emitted JSON, not asserted. Every field held; **no missing field**.
|
||||
- **§3 two minor items CONFIRMED, no schema impact:** (a) `source_declared: "loeb-render:*"` — a new *value* in the existing field's vocabulary, honestly naming a render-cue (weaker than `epub:type`); (b) `app[]` interior shapes `{kind:"table"}` + `{kind:"glyph"}` — principle-5 reserved slot resolved from real evidence.
|
||||
- **§4 additive-only amendment discipline CONFIRMED + ONE ADDITION:** LOCKED = meaning/shape of every existing field (books trust them); FLEXIBLE (FIX-class, amendment lane) = new optional fields + new `app[]` kinds (backward-compatible; a pre-addition book simply lacks it); PROPOSAL = changing a locked field's meaning **— AND field REMOVAL** (jurist addition: a presence-checking consumer breaks identically from removal as from meaning-change; same silent-retroactive risk → same PROPOSAL treatment).
|
||||
- **ONE condition MOVES (not closes), extractor-side, does NOT block the lock:** the jurist distinguishes apparatus *density* (what Ennius maximizes) from *diversity of kind*. "Densest volume fit the schema" ≠ "worst case seen" — a sparser volume among 952 could carry a third form (marginal sigla, interlinear glosses; already present in the corpus as `<ul>/<li>` lists + `<h2/h3/h4>` headings, which the v0 prototype does NOT yet hold). **Before B2 runs across the full ~952-book Loeb tier** (not before the lock): confirm/demonstrate a *generic* "unrecognized apparatus shape → flag-and-hold" fallback (mirroring the line-range join's flag-on-unresolvable), so safety is seen-or-unseen-independent. Extractor-completeness, behind the amendment.
|
||||
|
||||
**If AUTHORIZED:** file REVIEWED-56 (this addendum); flip the schema doc DRAFT → LOCKED; tag commits REVIEWED-56. Then, as separate additive amendments: the graduation-spec wiring (sidecar as graduated structural layer) + the B2 extractor completeness (generic fallback + `<section>`-div sections + footnote ref↔body pairing). Books may write against the locked schema meanwhile.
|
||||
|
||||
---
|
||||
|
||||
## REVIEWED-57 — Enforce `body_word_conservation` at graduation (the converter-agnostic verbatim trust gate)
|
||||
**Date:** 2026-07-12
|
||||
**Decision:** AUTHORIZED — FULLY RATIFIED (jurist, after a two-round demonstration loop)
|
||||
**Corresponds to:** PENDING-57 · Jurist rulings (3): architecture → V-DSL-demo condition → full ratification · Brief `chamber-library/docs/verbatim-gate-enforcement-FOR-JURIST-2026-07-12.md`
|
||||
|
||||
**Notes:** The PENDING-52 gap closing at the foundational layer — the declared-but-unenforced `body_word_conservation` gate (listed in `graduation-spec.yaml` line 136, not enforced by `verify_graduation.py`) becomes the gate that is actually checked. Ratified by the jurist across three rulings, each demonstration-gated, not deference:
|
||||
- **Architecture RATIFIED:** three-tier verdict FLAG→blocks · REVIEW→holds-for-curator · PASS→proceeds. REVIEW is real work (endnotes-keep vs index-drop can't be told by alignment position alone), not a soft pass. V-SCAN abstains by construction (no ground truth). Change-class **PROPOSAL** confirmed — distinct from REVIEWED-55's refusal-only-FIX exception because a FLAG / unresolved-REVIEW has NO already-trusted fallback route to canon.
|
||||
- **Per-tier dispatch:** V-DSL (Loeb, re-extract) · V-TEXT (born-digital, re-convert + prose-word guard — BUILT, caught jacobs 888 / manguel 2856 / montaigne fn-id residue that audit_cruft missed) · V-SCAN (abstain). Provenance verified: spec v2.0.0 §Tiering & Fence is ratified (RATIFIED-SHAPE · OPERATION-BLOCKED) — this un-blocks a ratified shape.
|
||||
- **V-DSL DEMONSTRATED, both halves (the jurist's demonstration condition):** the naive reuse of the V-TEXT k-gram check FALSE-FLAGGED a clean book (his caution vindicated) → corrected to a **reflow-tolerant word-multiset** on source-content body. FABRICATION: clean Apollonius (verse) + Plato Gorgias (prose) → 0 PASS; inject → FLAG naming tokens. LOSS (2nd condition): independent teeth via a boilerplate-vocab classifier — clean `lost_content 0 PASS`; drop a content word (`banquet`) → FLAG naming it. Both halves now on direct injection proof, not trust. Fleet fixtures both sides (`test_tools` 105→111).
|
||||
- **Auto-PASS RATIFIED for V-DSL's loss side** — the demonstrated teeth suffices for the general case; the honestly-named residual (a dropped occurrence of a ~15-word boilerplate-vocab token, masked by its header count — can only lose a stopword or the author's name) does NOT warrant blanket REVIEW-routing. **Documented in the gate itself** (`verify_body_conservation.classify_dsl`, tagged REVIEWED-57) with a **revisit-trigger**: if the retroactive sweep ever surfaces a real instance of this masked-vocab failure, weigh tighter checking then.
|
||||
- **§6 RETROACTIVE sweep RATIFIED as folded:** on landing, the gate runs BACKWARD across graduated canon (V-DSL 952 · V-TEXT 239) — diagnostic-map-first → remediation queue (FLAG=re-verify→reconvert; REVIEW=curator; PASS=re-attest), NOT silent de-graduation. Well-precedented by REVIEWED-55's own retroactive sweep (87 books, 0 had actually graduated dirty). Expect a non-trivial fraction (the 3/3 morning sample: jacobs/manguel/montaigne all graduated-clean, all failed). Companion efficiency (noted, not required): the LOCKED sidecar's `placement:back`+`role` resolves the REVIEW-tier endnotes-keep/index-drop ambiguity declaratively for any book carrying a sidecar.
|
||||
- **43-book census CONFIRMED:** V-DSL 952 · V-TEXT 239 · V-SCAN 50 · V-SUSPECT 29 · V-NONE 14 = 1,284; the 43 = V-SUSPECT+V-NONE = the fenced-out tier (no confirmed source) → correctly outside the sweep (a provenance problem, not a coverage gap). Jurist noted (not a condition): these 43 are the same gap-shape PENDING-52 closes going forward — worth attention once the queue moves.
|
||||
|
||||
**If AUTHORIZED:** land by supersession into `graduation-spec.yaml` (make the listed `body_word_conservation` gate enforced + declare the per-tier dispatch) + `verify_graduation.py` (add the per-tier body-conservation gate with source access + tier dispatch) — tag commits REVIEWED-57. Follow-ons: the retroactive sweep run (diagnostic-first) once landed; the sidecar-declaration REVIEW shortcut when convenient; the 43 fenced-out books to source-location. The V-DSL loss residual + revisit-trigger are already in the gate's docstring.
|
||||
|
||||
@@ -43,3 +43,39 @@ metadata:
|
||||
## Sub-agent dialogues
|
||||
|
||||
## Bypasses
|
||||
|
||||
## Wake re-entry (2026-07-12 ~13:41, after clean clear — same day)
|
||||
- **Thread CONFIRMED, gate still stands.** Verified from files: REVIEWED.md tops out at **54** → REVIEWED-55/56 NOT filed; schema DRAFT (`sidecar-schema-DRAFT-v0-2026-07-12.md`, 11:51) exists but is **not locked**. PENDING-56 shows jurist ratified (recorded in PENDING) but "REVIEWED-56 *can be* placed" = not yet placed. ⇒ wired extractor remains BLOCKED; Q-A (lock schema) + Q-B (confirm Docling-per-spine-file) are the gate, and both are curator acts (steward+jurist), not mine.
|
||||
- **Honest flag 1 (link-not-pure):** the wrap's named resumption anchor `in-flight-report-2026-07-12.md` is **absent on disk** (find across chamber-library + studium-engine returned nothing). Substance survives in the schema DRAFT + `chamber-program-open-work.md` + the session memory file's Q-A..Q-E; only the narrative report is missing. Surface at wrap; don't re-fabricate.
|
||||
- **Honest flag 2 (governance-state latency):** `~/dotfiles` is **1 commit ahead of its remote** — previous wrap's §6.5 push didn't land. Resolve at wrap (not at wake).
|
||||
- **Drift to hold (both 07-12):** *solving-at-the-wrong-level* (hold the substrate-native per-spine-file architecture when the extractor build begins — don't reach for another heuristic join) + *lost-the-forest* (keep the open-work register open as altitude check).
|
||||
|
||||
## Authorization moves (cont.)
|
||||
- 2026-07-12 ~14:05 — **JURIST RULED the schema lock:** Q1(keep meta@1)/Q2(front/body/back)/Q4(notes linkage-only = PENDING-47 hash-locality reapplying)/Q5(schema-extractor separable — sharper reason: optional-additive absorbs even worst-case as a cheap additive field, not a relock) all CONFIRMED. Q3 schema-half ready; **ONE CONDITION**, gated to "before Loeb runs in earnest," NOT blocking the lock: the extractor must honest-flag source-apparatus structure it can't yet home rather than fold to `notes[]`.
|
||||
- 2026-07-12 ~14:10 — **Return (verified, not assured):** jurist asked "confirm the extractor does this or add the refusal." Read BOTH extractors instead of assuring. Finding (honest, not convenient): `build_sidecar.py` = no Loeb-apparatus pathway (never sees DSL; section-level `role:apparatus` attested) → jurist's worry doesn't arise there. `extract_loeb_dsl.py` = **CURRENTLY FLATTENS** (`strip_tags` unwraps `[c darkmagenta]`/`[c dimgray]`, `[sup]`→`^N`, strips embedded HTML; MD-only, no sidecar/app[]/flag). So the condition is **real + unmet today**, but **not yet binding**: the B2 Loeb→sidecar extractor is UNBUILT and Loeb Region-4 reconversion isn't running in earnest. ⇒ condition = a **build-gate on B2** (flag-and-hold apparatus, mirror §3 null+flagged). Did NOT report "already satisfied" (the convenient answer); reported the flattening plainly.
|
||||
- 2026-07-12 ~14:25 — **Looked at B2 NOW (steward challenge: run on one volume; DSL formatting ~consistent corpus-wide). Substrate probe of `loeb.dsl` (6.38M lines, ONE file, 537 vols).** Findings (verified, not inferred):
|
||||
- **Color vocabulary = exactly TWO, uniform head→tail** (Apollonius/Dionysius/Aeschylus, Greek + Latin): `[c dimgray]` 2.16M · `[c darkmagenta]` 471K. Steward's uniformity instinct CONFIRMED **at the tag/color-grammar level** — one volume IS representative of the grammar.
|
||||
- **Steward correction (load-bearing):** the colors are **Loeb-reader RENDERING aspects, not semantic source markup.** ⇒ they're presentation, but they correlate *perfectly + uniformly* with role → usable as extraction CUES, then discarded. Honest `source_declared` must name the cue as a render-signal (`loeb-render:darkmagenta`), NOT overclaim semantic declaration (attest-don't-default).
|
||||
- **darkmagenta = rendered HEADERS** (author / work / book-section: "APOLLONIUS OF RHODES, Argonautica", "Book II. 40"). **NOT apparatus.** ⇒ the Jurist's "darkmagenta might be apparatus being flattened" worry is definitively answered: NO.
|
||||
- **dimgray = the ANCHOR/PROVENANCE layer:** ~356,656 pure-number spans = canonical LINE anchors (→ `anchors[]`); ~246,622 "Page number N" = page PROVENANCE (→ `provenance.pages`); plus the `[sup]` footnote-ref wrappers (→ `notes[]`). **THIS is the real preserve-never-flatten target** — the current `extract_loeb_dsl.py` unwraps dimgray → line-numbers/pages dissolve into inline prose text. Uniform, quantifiable loss (~600K anchors+pages corpus-wide).
|
||||
- **Embedded HTML is the ONE non-uniform thing:** `<section class="div1 front">` (TEI-ish structural divs!), `<table>` (643, genuine tabular content e.g. line-range maps), `<img>` 506, lists — present in only SOME entries (drama, complex works). ⇒ "one volume is representative" HOLDS for colors, FAILS for embedded structure: a simple prose volume won't exercise it. The real `app[]`/structured content lives here, not in the colors.
|
||||
- **Reframe of the Jurist's condition:** apparatus criticus (variant readings) is NOT color-coded — it's footnotes + embedded HTML. So `app[]`'s eventual content is narrower than feared and the colors don't feed it; the colors feed `anchors[]`/`provenance`/`sections`/`notes`. The flatten-loss that IS happening now is the dimgray anchor/page layer.
|
||||
- 2026-07-12 ~14:45 — **Scanned corpus for the B2 model volume (feature-density per work, grep-prefilter→awk).** Two embedded-structure classes, both genuine apparatus: (1) **concordance tables + TEI `<section class="div1">` divs** — richest in fragmentary works (ENNIUS Fragmentary Republican Latin Vol I: sec=50 tab=44 in ~1650 lines; Cicero/Basil Letters: sec-heavy, one `<section>` per letter); tables map fragment-numbering systems, `[sup]` nested in `<td>` — flattening destroys them. (2) **inline `<img class="glyph">` character-images** — math works (DIOPHANTUS img=37, ARCHIMEDES img=25): non-Unicode math/epigraphic symbols as PNGs (`alt="[special character]"`) = the **[[feedback-character-as-image-hazard]]** exactly; dropping mutilates. **PICK: ENNIUS Fragmentary Vol I** (~line 3717867) as primary model — densest genuine apparatus, tiny/hand-inspectable, modern-TEI, bilingual; its one gap (glyph-images) → optional tiny secondary DIOPHANTUS Algebra (~line 4479566). Model-after-the-hardest-case so the design generalizes down.
|
||||
- 2026-07-12 ~15:10 — **Built + verified the B2 prototype (`scripts/build_loeb_sidecar.py`, read-only) — jurist's schema-lock condition DEMONSTRATED IN CODE.** Model = ENNIUS (11 works = the real FRL Vol I book) + DIOPHANTUS (glyph path). Architecture: keep MD verbatim (reuse governed `strip_tags` → `body_word_conservation` holds), ADD typed structure in sidecar; line-anchors EXACT-by-construction (B2 analog of Docling-per-spine-file). **Verified against emitted JSON, not asserted:** 44 concordance tables HELD as structured rows (vs current number-soup); Annals 238sec/288anch/252pg/344notes from the render-cues the flatten dissolves; Diophantus glyph branch fired = 38 glyphs held with PNG filename PRESERVED (vs `⟨†⟩`) → closes [[feedback-character-as-image-hazard]] for Loeb. **KEY FINDING FOR THE LOCK:** the DRAFT schema already has EVERY field B2 needs (`anchors`/`provenance.pages`/`notes`/`sections`/reserved `app`) — looking at B2 revealed NO missing field; flag-and-hold + glyph-rule are EXTRACTOR behavior, not schema shape. Honest round-two (logged, not hidden): TEI-`<section>`-div sections uncaptured (FRL Vol I sec=0); footnote ref↔body pairing deferred; discipline: ran Diophantus specifically because the glyph branch was untested code I wouldn't claim worked. Tool-review logged (`_curation/tool-evolution-log.md`). All dev-only/uncommitted; nothing wired to graduation, no push.
|
||||
- 2026-07-12 ~18:40 — **JURIST RULED PENDING-57: architecture RATIFIED (FLAG/REVIEW/PASS · V-TEXT · V-SCAN · change-class PROPOSAL); full proposal NOT-yet-final pending a V-DSL DEMONSTRATION** (his lesson: simpler-sounding ≠ needs-less-proof). Two non-blocking follow-ons he raised: (a) **retroactive verification** — the morning's 3/3 already-graduated-clean books all FAILED the new check → run the gate BACKWARD across graduated canon, not just forward (REVIEWED-55-shaped, own answer owed); (b) **sidecar-declaration shortcut** for REVIEW tier — the LOCKED schema's `placement:back`+`role` already resolves endnotes-keep vs index-drop declaratively, so books with a sidecar skip the curator queue.
|
||||
- **Provenance honesty-check (jurist flagged my 'already RATIFIES' claim):** VERIFIED against substrate → spec v2.0.0 §Tiering & Fence IS ratified (RATIFIED-SHAPE·OPERATION-BLOCKED) → claim HELD; ruling confirms, doesn't originate.
|
||||
- **V-DSL DEMONSTRATED — and the demo vindicated the jurist:** naive reuse of the V-TEXT k-gram check FALSE-FLAGGED a clean Apollonius (1070 "fabrications", only 6 truly-new = the MD subtitle; rest = coverage misses from the DSL→MD REFLOW). Corrected → **reflow-tolerant word-multiset** on source-content body: Apollonius fab=0 PASS · Plato Gorgias fab=0 PASS · teeth catch injection. Honest residual: fabrication half gate-ready; content-vs-boilerplate DROP side delegates to the extractor's integrity report. Brief §3.5 written; fixture added (test_tools 105→109). **Back to the jurist for the final ruling.**
|
||||
- 2026-07-12 ~20:40 — **Doc-currency pass (steward-directed: "future-us shouldn't guess/reinvent/ignore a solution we already had").** Audited chamber CLAUDE.md + runbook vs today's work; fixed the anti-reinvent gaps: **CLAUDE.md** — added `build_loeb_sidecar` (B2, preserve-aware) + `verify_body_conservation` (verbatim gate, REVIEWED-57) to the fleet; rewrote the Loeb-DSL terminology (colors=render-cues; `extract_loeb_dsl` FLATTENS vs `build_loeb_sidecar` PRESERVES — use the latter for reconversion); schema DRAFT→LOCKED + additive-only; added the **check-for-existing-tool/register-before-building** load-bearing discipline (the day's meta-lesson). **Runbook** — pipeline_direction names both extractors + the gate + REVIEWED-56/57 status. **Deprecated-scripts answer: NONE archivable now** — `extract_loeb_dsl` is a live dependency (imported by build_loeb_sidecar + verify_body_conservation) + producer of the current 952 canon; the ocrmac_pdf/EPUB-cruft-strippers are SLATED for retirement by the 2b amendment (unlanded → stay authoritative → don't archive early). **INSTITUTIONALIZED (steward-directed):** added a standing **"Doc-currency on wrap"** protocol to BOTH chamber-library/CLAUDE.md and studium-engine/CLAUDE.md (6-point checklist: fleet/build-state · status markers · substrate-terminology · disciplines · deprecated-verify-before-archive · tool-review) — the mirror of each repo's read-first protocol, so wrapping work THERE keeps THOSE docs current, not memory.
|
||||
- 2026-07-12 ~19:45 — **PENDING-57 FULLY RATIFIED (jurist, 3rd ruling).** Both conditions met; auto-PASS ratified for V-DSL loss (residual too narrow for blanket REVIEW — can only lose a stopword/name). Two jurist follow-ups DONE: (a) stale "wiring not yet written" brief note fixed; (b) the loss-teeth residual + **revisit-trigger** documented IN THE GATE ITSELF (`verify_body_conservation.classify_dsl`, tagged REVIEWED-57). **REVIEWED-57 drafted** for steward filing. 43-book gap confirmed (V-SUSPECT+V-NONE fenced-out). LANDING (wire into verify_graduation + graduation-spec, tag REVIEWED-57) awaits the steward's REVIEWED-57 filing — a real integration (source access + tier dispatch), best fresh.
|
||||
- 2026-07-12 ~20:10 — **PUSH-FURTHER: bounded retroactive V-DSL diagnostic probe (ratified §6, read-only) on 9 graduated Loeb canonicals.** Matched each to its DSL work by its own H1 (= the work string), one stream. **7/9 PASS clean.** 2 FLAG (Aristotle Metaphysics, Euripides Medea) — **VERIFIED false-positives, not content loss**: lost tokens all high-freq stopwords (καὶ 4514 vs 4517, τὸ 3021 vs 3023); I hypothesized accent-drift, CHECKED, REFUTED it (καί=0 both; accent-normalization changed nothing) → it's **scattered small cross-extractor tokenization drift** (old extractor dropped a few function-word occurrences vs the reference). **Finding:** forward gate unaffected (same tokenizer, threshold-0 correct, ratified); the RETROACTIVE sweep needs a cross-extractor **drift-tolerance / distinctiveness filter** (ignore high-freq function-word drift, flag distinctive content drops) BEFORE the 952-book run, else mass false-flags. De-risks the ratified sweep, found on 9 books — diagnostic-first working as designed. Probe script in scratchpad (read-only, no de-graduation).
|
||||
- 2026-07-12 ~19:15 — **JURIST FINAL-RULED PENDING-57: RATIFIED on 2 conditions; BOTH addressed same turn.** (1) V-DSL loss half lacked the fabrication half's independent injection proof (delegated to extract_loeb_dsl self-report) → **built independent loss teeth** (boilerplate-vocab classifier): clean `lost_content=0 PASS`, drop content word `banquet` → `FLAG` naming it; fleet 105→111; honest bound = blind to masked boilerplate-vocab-word occurrences (the edge his REVIEW-routing guards; his call on auto-PASS vs REVIEW kept). (2) 43-book census gap = V-SUSPECT 29 + V-NONE 14 = the **fenced-out** tier (no source) → correctly excluded from the sweep; not a gap. Brief updated (§3.5 loss teeth + §6 census); PENDING-57 updated. Awaiting jurist confirmation conditions closed → REVIEWED-57. **Full gate now: fabrication + loss both independently teethed, both tiers demonstrated.**
|
||||
- **Folded (steward-directed) the RETROACTIVE clause into PENDING-57 (§6) to rule together:** on ratification the gate runs BACKWARD across graduated canon (952+239) → diagnostic-first remediation queue (not silent de-graduation), motivated by the jurist's 3/3. Sidecar-declaration REVIEW-shortcut recorded as a noted efficiency (not a condition). Brief + PENDING-57 updated; brief delivered to steward for relay.
|
||||
- 2026-07-12 ~18:00 — **Proceeded on the two parallel tasks the steward authorized (sequence step 1 + 2a):**
|
||||
- **#1 KEYSTONE PROPOSAL drafted + FILED:** enforce `body_word_conservation` at graduation (converter-agnostic verbatim trust gate; listed in graduation-spec but unenforced). FOR-JURIST brief `docs/verbatim-gate-enforcement-FOR-JURIST-2026-07-12.md` + **PENDING-57 filed** to dotfiles. Per-tier method (V-DSL re-extract / V-TEXT built / V-SCAN abstain) already ratified by §Tiering&Fence; three-tier verdict gates (FLAG blocks / REVIEW holds / PASS). Into the jurist loop.
|
||||
- **#2a FOOTNOTE PAIRING built (honest v1, in fleet 105/105).** Ref vs body classification; document-order pairing; honest-flag unpaired. **4-iteration PASS-BUT-FALSELY lesson:** Plato prose 96% LOOKED done → *reading the Apollonius orphans* (not trusting the apparatus hypothesis) exposed `in_fn` LEAKING into main verse + a 28-line note-range over-extension (fixed → start-line only). Genre-heterogeneous: settled conservative both-signals → **prose 96% / drama 94% / verse 66% / fragments 48%**, all unpaired honest-flagged, 0 false-pairs. Full per-genre pairing = further sub-project; stopped rather than over-fit one genre. Tool-review logged.
|
||||
- All chamber work dev-only/uncommitted; PENDING-57 is on dotfiles (steward reviews/pushes). No graduation wiring.
|
||||
- 2026-07-12 ~16:45 — **REVIEWED-55 & 56 FILED by steward → schema officially LOCKED.** Schema doc status → LOCKED. B2 built against the locked schema (safe: additive-only).
|
||||
- 2026-07-12 ~17:00 — **B2 → FLEET-v1 (`build_loeb_sidecar.py` in test_tools, 104/104).** Added the jurist's generic fallback + `<section>`-div/heading capture + multi-author/`--targets` + fixture. **Diverse-by-KIND verification (Aeschylus/Plautus/Plato/Herodotus/Diophantus/Ennius, ~90 vols, Greek+Latin) VINDICATED the jurist's density≠diversity catch on the FIRST look:** naive fallback false-fired on `<que>`/`<per>` = the **critical-edition angle-bracket convention** (editor-supplied readings), NOT HTML → fixed by HTML-vocab-vs-`<word>` classification → surfaced a genuine **THIRD apparatus kind** (`editorial-insertion`, 2315) a density-model would miss, AND a real content-loss (governed `strip_tags` DELETES them; sidecar preserves). Across all 6 kinds the net caught only lists + **0 truly-novel** → structural space BOUNDED {table,section,heading,glyph,list,editorial-insertion}; net still fires on novel (fixture: `<figure>`). Fixed running-header section dup (48→1). **Honest deferred (additive, non-blocking, doesn't touch LOCKED schema):** footnote ref↔body pairing (the ~2238 `list` holds are mostly note-bodies rendered as `<li>`); a PLATO "Mathematical Works" data-quirk; graduation-wiring = the separate PROPOSAL. Tool-review logged. All dev-only/uncommitted; no push.
|
||||
- 2026-07-12 ~16:00 — **JURIST RULING #2: WHOLE-SCHEMA LOCK CONFIRMED (unconditional, schema-side).** DRAFT → LOCKED on steward's REVIEWED-56 filing. Additive-only discipline CONFIRMED + **field-removal added to the PROPOSAL triggers** (a presence-checking consumer breaks identically from removal as from meaning-change). §3 two minor items confirmed. **Sharp jurist catch I OWN: I conflated apparatus DENSITY (Ennius) with DIVERSITY-of-kind — "densest fit the schema" ≠ "worst case seen."** One condition MOVES (not closes), extractor-side, does NOT block the lock: before B2 runs across the full ~952-book tier, confirm/demonstrate a *generic* "unrecognized shape → flag-and-hold" fallback (mirroring the line-range flag-on-unresolvable). His catch is REAL not hypothetical — corpus already has `<ul>/<li>` (30K) + `<h2/h3/h4>` the v0 holds NEITHER (only table+glyph). **Prepared for the steward:** REVIEWED-56 lock-addendum draft (in `REVIEWED-drafts-for-filing-2026-07-12.md`); schema doc updated → lock-confirmed status + additive-only §4 (incl. field-removal) + §5 moved-condition + folded the 2 minor items. Did NOT flip to LOCKED unilaterally (steward's filing = the ratifying act); did NOT build the fallback this turn (non-blocking, gated to the full-run, deserves its own considered pass — avoid barrel-forward). REVIEWED-55 also still steward-owed.
|
||||
- 2026-07-12 ~15:30 — **Wrote the schema-lock ADDENDUM for the jurist** (`docs/sidecar-schema-lock-addendum-B2-evidence-2026-07-12.md`): B2 condition satisfied in code (before/after table); the load-bearing finding = **no missing field** (hardest volume fit the schema as drawn); 2 minor new items (loeb-render:* attestation vocab + demonstrated `app[]` kinds table/glyph); §5 honest round-two (extractor, not schema). **Load-bearing governance contribution — the additive-only lock:** named that "lock the whole schema WITH flexibility" is a *soft lock* (untrustworthy) UNLESS the flexibility is drawn as additive-only — LOCKED = meaning/shape of existing fields (books trust them); FLEXIBLE = new optional fields + new app[] kinds via the amendment lane (backward-compatible); NOT flexible = mutating a locked field's meaning (=PROPOSAL). This is the jurist's OWN Q5 property turned into the amendment discipline. Surfaced for jurist confirmation; did NOT presume it. REVIEWED-56 draft deliberately deferred until the jurist confirms the addendum (not presuming the loop's outcome). REVIEWED-55 also still steward-owed.
|
||||
- 2026-07-12 ~13:50 — **Wrote jurist relay for the schema-LOCK (Q-A):** `chamber-library/docs/sidecar-schema-FOR-JURIST-2026-07-12.md`. Carries the ratified principles + the current schema + evidence read-back-from-drafts (jacobs 34/37, montaigne 2/17 line-range join — worst-case stated, not averaged) + 5 questions FOR the jurist to rule on (schema-id/compat · placement-as-drop-vs-keep · app reserved-undesigned · notes linkage-only · does-lock-depend-on-Q-B-join-quality). Executor lean marked on each; lock left as steward's, informed by jurist. Did NOT lock, did NOT pre-decide — surfaced. Fittingness ✓ (steward asked), craft ✓ (grounded in substrate not memory), ethics ✓ (full picture for jurist), character ✓ (honest at worst-case).
|
||||
|
||||
Reference in New Issue
Block a user