Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jYS1tpR4P4NBxui4FSgfv
5.4 KiB
REVIEWED drafts — paste-ready for filing (2026-07-12)
Executor-drafted for the steward to file into ~/dotfiles/REVIEWED.md (Constraint #1: Claude Code cannot write REVIEWED.md). Both correspond to already-ruled items. Confirm against the source rulings before filing.
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_endsatisfies all three — turns the guarantee from verbatim-safe by construction to by verification. - Q1b — MANDATORY at graduation (
--no-verifyforbidden at graduation whilebody_word_conservationis 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_conservationdeclared-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.jsonstructural sidecar whose vocabulary MIRRORS TEI (front/body/back;note @place=foot|end;milestone/anchor; reservedappslot;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
ocrmaccould 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_backendnever readsepub: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.
- Q1 — recognizer arc REPOSITIONED, not retired: Docling emits flat reference-links (0 native
If AUTHORIZED: Proceed on the architecture; tag commits REVIEWED-56.
- Adopt Docling as the conversion front-end; production OCR on CapableHands.
- Author the
.meta.jsonsidecar schema on the two cardinal principles. - Build the sidecar extractor (EPUB metadata + Docling PDF labels + note-linkage), honest-flag undeclared roles; prove on montaigne (EPUB2) + jacobs (EPUB3).
- Keep the trust gates (
verify_body_conservation,normalize_ocrverbatim-guard) on Docling output. - Loeb B2: rewrite
extract_loeb_dsl→ MD + sidecar, preserving the DSL color/[sup]typing. - 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.