Files
dotfiles/claude/memory/REVIEWED-drafts-for-filing-2026-07-12.md
David F GliddenandClaude Opus 4.8 d9692f7418 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
2026-07-12 21:06:40 +02:00

13 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_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.