Files
dotfiles/claude/memory/session-ledger-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

28 KiB

name, description, metadata
name description metadata
session-ledger-2026-07-12 Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses.
node_type type originSessionId
memory feedback ae9583d2-fd25-45e4-85fc-df082fe2e951

Session Ledger — 2026-07-12

Returns

  • 2026-07-12T09:10 — Return (caught before asserting): was about to derive the A1 acceptance criterion from scratch. Read the spec first (chamber discipline: check governed doctrine before building) → the §Tiering&Fence evidence-tier table already RATIFIES the per-tier method: V-DSL = "re-extract + diff (deterministic)", V-TEXT = "re-convert + prose-word-guard (deterministic; source IS ground truth)", V-SCAN = "OCR-vs-scan, no ground-truth text". The steward's reference-conversion question is answered YES-it's-doctrine; the promotion criterion is RATIFIED-SHAPE · OPERATION-BLOCKED = exactly A1. Reframe: A1 is operationalize a ratified criterion, not invent one. Avoided re-deriving existing doctrine (the exact drift the library exists to prevent).

Open horizons

  • 2026-07-12T09:40 — A1 feasibility PROVEN (read-only prototype scripts/verify_body_conservation.py). Ratified per-tier method works: re-convert(source) + coverage-align vs candidate. difflib→shingle-coverage pivot (steward challenge, well-caught): difflib O(n²) timed out on jacobs @2min; swapped to O(n) hashed-k-gram coverage (in-house patterns: Instrument B fingerprint + verbatim-guard walk; NO new dep) → jacobs 6.8s, manguel 4.3s. Seed ground-truth PASSES (legit boundary trim→REVIEW, interior 120-word deletion→FLAG). All 3 real books FLAG on REAL grep-confirmed cruft (jacobs 888 calibre_link · manguel 2856 []{#…epub…htm} anchor-spans · montaigne footnote-id residue) — each a different signature, all missed by audit_cruft. KEY IMPLICATION: gate is MORE sensitive than audit_cruft → large fraction of existing canon will FLAG (= the tool-log's "160 hidden-residue" finding) → big blast radius → confirms PROPOSAL-class + ties A1 to reprocess track B.
  • Residual (jurist-class, unchanged): (1) boundary drop-vs-keep identification — endnotes/bibliography (keep) sit at the same TAIL position as index (drop); the tool SURFACES trailing runs as REVIEW, does not auto-pass. (2) interior-run threshold calibration (k=8, thr=50 tolerates heading-reformatting deltas of 6-7 words; caught on jacobs ToC). (3) added-direction needs symmetric link/anchor canonicalization so a clean-but-differently-converted candidate isn't confounded (minor tokenizer hardening).
  • (superseded) earlier 08:55 A1 horizon — now concrete above. (general body_word_conservation verbatim gate), the open-work register's keystone. Criterion-first, not code-first. Weigh the reference-conversion framing (candidate vs plain-pandoc-of-source) before building.
  • Closeable-today small items: wire mandatory-at-graduation for the footnote verify (jurist Q1b — flow must not pass --no-verify); register hygiene (stale "jurist nod owed" line — Q1a gave it).
  • Steward-owed (parallel, not mine): place REVIEWED-55 (verified absent — REVIEWED.md stops at 54); decide the recognizer-maturity question (register A2 [?]).

Confidence to recalibrate

  • Carry from last session: drift-pattern lost-the-forest-for-the-trees in long execution arcs. Antidote = hold the open-work register (chamber-library/docs/chamber-program-open-work.md) as the standing forest view; stay keystone-first. Do not descend into A1 mechanism before the criterion is settled.
  • Carry: don't rank a sequence that ignores a dependency the census already flagged (07-12 recommended frontmatter-before-reconversion; corrected).

Tooling-scan reframe (2026-07-12, steward-driven — the pivot of the session)

  • Steward challenged the whole approach TWICE ("is difflib best now scope is wider?" → "no extant epub/TEI tools?"). Load-bearing finding: the substrate answer was ALREADY in our register (studium-engine-scan-register.md, 2026-05-27 pass: Docling+Surya, OCR4all, TEI/IIIF/DTS, §10.3 MD-vs-TEI pending) — and in ~6 weeks since we hand-built ~20 bespoke conversion/verify tools instead. The two-week "every breakthrough → new obstacle" feeling = signature of reimplementing a solved domain. Kin to feedback-resurface-banked-notes-before-rederiving at pipeline scale.
  • The clean split: substrate (conversion Docling/GROBID · format TEI · citation DTS) = SOLVED/adoptable; composition (integrity-bound voice-attributed verbatim consultation = the engine) = does not exist, stays ours. Adopt substrate, spend effort on differentiator.
  • Verified from source: Docling (MIT, local/air-gapped, EPUB+PDF+images, per-element provenance, label taxonomy incl. footnote/page_header/section_header/caption — the semantic layer MD lacks; exports MD/JSON not TEI). GROBID (PDF→TEI, 68 labels incl. footnotes/bibliography = A5). DTS (citable canonical-passage API, engine is natural consumer). Loeb is a .dsl file (already structured) → NOT a docling case (steward correction).
  • Register updated with the 2026-07-12 verified-from-source pass + the reframe.

Two decisions surfaced (I decide neither)

  • (A) Docling bounded trial — IN PROGRESS (steward said Proceed). Local isolated venv (py3.13; CapableHands is py3.9.6, too old); harness scratchpad/docling_trial.py; sample montaigne.epub + jacobs.epub + infinity-of-lists-eco.pdf (text) + mal-darchive.pdf (scanned = A3/OCR test). Tests: does docling emit clean, semantically-labelled, provenanced output where our pipeline leaves cruft (jacobs 888 calibre_link · manguel 2856 []{#…})? Incumbent-bias: our pipeline IS the incumbent → steward judges.
  • (B) ESCALATE — §10.3 canonical-format decision (MD+sidecar vs TEI), pending since seed brief. Docling structured-JSON = middle path; A informs B; B is steward+jurist (touches engine consumer contract §X + whole corpus).

Authorization moves

  • 2026-07-12 — CANONICAL FORMAT DECIDED (steward, on the trial evidence, via AskUserQuestion): Option A — MD-canonical + TEI-mirroring .meta.json structural sidecar; + Adopt Docling as the EPUB/PDF/scan conversion front-end (production OCR on CapableHands M4). Brief written (chamber-library/docs/canonical-format-decision-FOR-JURIST-2026-07-12.md), stamped with the decision, delivered to steward + relayed to jurist for ratification. PENDING-56 filed (dotfiles). REVIEWED-56 to follow after jurist ratification. Flip-condition the jurist tests: does v1 need structured apparatus (A5)-as-data or DTS-interop? (read: no.)
  • Docling installed + trialed on M4 (py3.12 venv) + M1 (fallback). Both remotes clean.
  • JURIST RATIFIED PENDING-56 (2026-07-12) — Option A + D1, independently-verified (flip-condition tested, not triggered). Two schema-gating Qs CLOSED with substrate evidence (brief §8): Q1 recognizer-arc REPOSITIONED not retired (Docling emits flat [*](#…) not native [^N]; epub_backend ignores epub:type) → it becomes the sidecar note-extraction layer, verify stays. Q2 Loeb DSL is TYPED ([c dimgray]/[c darkmagenta]/[sup], 2.15M+ spans) & current extractor FLATTENS → CARDINAL PRINCIPLE: extractor PRESERVES source typing into typed sidecar fields, never flatten (→ TEI-migration mechanical-by-construction). Schema now unblocked. REVIEWED-56 can be placed.
  • Owed / next (execution, mostly post-ratification): build the .meta.json sidecar extractor (TEI-mirroring vocab; EPUB metadata + Docling PDF labels; READ-ONLY, safe to prototype pre-ratification); wire Docling into the graduation pipeline (spec amendment — waits for ratification); retire ocrmac_pdf + EPUB cruft-strippers; reshape reprocess track B (Docling→sidecar→verify→graduate); Loeb B2 DSL→MD+sidecar. Parallel: steward still owes REVIEWED-55 placement.
  • A1 build will land as a PROPOSAL (changes graduation acceptance for ALL conversions — governed). Mechanism is refusal-only (Q1a FIX-test), but the criterion is what the jurist rules on. Surface, don't cross unilaterally.

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).