session 2026-06-29: 4 graduations + RAW_HTML fold-in + OCR/docling pipelines launched; landscape mapped (reconvert-queue, indexer scope, sidecar gap); L1 pivot → CapableHands-clasp scope for tmrw Seb mtg

This commit is contained in:
David F Glidden
2026-06-29 23:29:15 +02:00
parent 8adc8ad590
commit 0f75862af6
6 changed files with 214 additions and 1 deletions
+7 -1
View File
@@ -41,12 +41,18 @@ permalink: claude-memory/memory
- [ARC chamber v1-legacy cluster](project-arc-chamber-v1-legacy-cluster.md) — ARC's `content/chamber/**` is intentional v1-Chamber legacy (not drift); deferred to-do = gather into a presentable cluster as a record of development. Out of §5 clause-1 audit scope. Confirmed 2026-05-29.
- [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, hold above the build plan**: David's childhood imaginary chamber of beloved hero-voices he took counsel from → enter into discourse with his library + have the voices converse amongst themselves, this time *accountably* (the engine's v1 was literally "the Chamber" — eloquent/unaccountable simulacra; this is the same ambition built grounded/citable/checkable). Why verbatim fidelity is load-bearing.
- [Making sequence source set](project-making-sequence-source-set.md) — **COMPLETE against the ReadingList as of 2026-06-18** (reconciliation-verified); census of what's sourced where, sourced≠ingested (only Pos I in manifest), the **Handke-German decision** (original is source), the Levi drop-cap gate. Read before any Making/studium source work.
- [Source library — link + dedupe](project-source-library-link-and-dedupe.md) — steward's master ebook library = `~/Documents/___The Library [ePub_AWZ3]/` (2190 ebooks, 180k files, messy nested; pre-organized subfolders `_2026 chamber source cleanup/`, `tmp calibre library for the chamber/`). GOAL: link chamber↔sources (provenance index) + dedupe. Seed = the 2026-06-29 fuzzy source-matcher (→ `_curation/reconvert-queue-2026-06-29.md`, 24/34 found). Real link needs EPUB/PDF internal metadata + edition-identity check, not just filenames.
- [Character-as-image hazard](feedback-character-as-image-hazard.md) — some EPUBs render transliteration diacritics (ḥ/ʾ/ʿ) and non-Latin script (Hebrew words) as INLINE IMAGES; the standard image-drop SILENTLY MUTILATES them (PASS-BUT-FALSELY — gate passes, words corrupted). Tripwire = audit_cruft md_image count; INSPECT a sample before dropping; character-bearing images = CONTENT (map→Unicode, never drop). Found graduating Alter's Psalms (356 glyph-images) 2026-06-29; Alter parked pending a philological glyph-map (needs steward's Hebrew).
- [Sidecar typology — protocol-dependent reading-indexes](project-sidecar-typology-protocol-dependent.md) — TWO layers: `.meta.json` structural sidecar = PROTOCOL-NEUTRAL, the general standard now (the bar for "graduated"); reading-indexes (rich YAML) = PROTOCOL-DEPENDENT (chavruta=where-to-open / debate=stance-map / connection-surfacing=cross-text join-keys), probably PLURAL — **don't design the schema yet**; settle corpus to gold + let protocols declare themselves first. Steward 2026-06-29.
- Studium Engine — *tracker not yet established*; substantive moves in per-session memories (2026-05-15→) + the seed brief + now the **[architectural charter](reference-studium-engine-architectural-charter.md)** (the constitutional doc, 2026-06-15). Steps 0–7 built; chamber corpus CLEAN (1280 canonical). **Next: L2 pattern-finder on The Making sequence** (curate ~60 chamber works → grounded candidate primitives; engine grounds, David writes). Collaboration = [[feedback-studium-engine-sixtus-v-collaboration]].
- [MemPalace 3.4.0 upgrade plan](project-mempalace-upgrade-3-4-0-plan.md) — scheduled post-heavy-work (ratified 2026-06-07): backup → upgrade → verify layers.py recency fix → re-test wing filter; migrate-wings + repair EXCLUDED. Basic Memory RETIRED 2026-06-07 (false-clean sync verdict; lessons → CM-AI substrate-failure-lessons-2026-06-07.md).
- [L1 reliability](project-L1-reliability.md) — canonical workstream tracker established 2026-05-28 (Symmetria-pulse decision). Current state at top (updated 2026-06-06) + chronological log 2026-03-21→. **Status: BATON BACK — Seb replied 2026-06-13 (`cc25995` reply + `e2e94ab` cover note + `8f76bf2` benchmark-governance v1.1 §4.4, now in CM-AI local `main`). Steward set a brief L1 detour to engage it next session before returning to Studium Step 5. Read Seb's commits + this tracker before composing any response.** mindfabric-00 root-caused (temporal chain path) + restart-as-holding-pattern + backed up; PENDING-27 awaits jurist. Read tracker at /wake-up before composing L1 portion of any briefing.
- [L1 reliability](project-L1-reliability.md) — canonical workstream tracker established 2026-05-28 (Symmetria-pulse decision). Current state at top (updated 2026-06-06) + chronological log 2026-03-21→. **Status: BATON BACK — Seb replied 2026-06-13 (`cc25995` reply + `e2e94ab` cover note + `8f76bf2` benchmark-governance v1.1 §4.4, now in CM-AI local `main`). Steward set a brief L1 detour to engage it next session before returning to Studium Step 5.** **UPDATE 2026-06-29: N6 deploy (#175) LANDED LIVE and HOLDS — multi-day wedge gone (CPU 100%→~21%), A1″ migration finally live (vector_chunks 19→26 cols); evidence in 2 UNCOMMITTED CM-AI docs (l1-post-n6-deploy-findings-2026-06-23 + l1-state-summary-for-jurist-gwern-brief-2026-06-22). Tracker current-state is STALE (06-06, predates the win). Seb meeting 2026-06-30 15:00. PRIORITY-1 morning task: stand up CapableHands as a BMF clasp (43M) — scope at `CM-AI/…/clasp-on-capablehands-scope-2026-06-29.md`, solves PENDING-41.** mindfabric-00 root-caused (temporal chain path); PENDING-27 awaits jurist. Read tracker at /wake-up before composing L1 portion.
- [Be (laundromat)](project-be-laundromat.md) — canonical workstream tracker established 2026-06-08 (Seb-relay of locked decisions). Be = Skemantix startup (Seb+David) funding CapableMind's funding-ladder; **bridge, not venture**. Decisions LOCKED: entity/exit (CapableMind decoupled, grant-funded), pricing (Living $12.99/mo · Archive $69.99/yr · Memorial $49.99/yr · Renovate ~$199 · $8.99 floor), CF Self-Serve Agency + versioned-template-package infra. **a11y gate MERGED (Pat 100/100/100).** Pre-revenue: the WTP gate = renovate Pat → charge her. **Discipline: stop adding spec until the gate clears → nothing for executor on be until then.** Repo @ `f43a0fd`.
## Active Session
- [Session 2026-06-29 — graduations, pipelines, and the clasp pivot](session-2026-06-29-corpus-graduations-pipelines-clasp-scope.md) — Long, two-arc day. CHAMBER: graduated **4 Making works** (Taylor→hermeneutics [pattern-setter: footnote family B + loud-abort guard], Virilio→french_theory [family C caret-chapter], Handke→literature/contemporary [+ size-sanity guard after a near-miss], Illich→environmental); **folded RAW_HTML into audit_cruft** (`9e99e07`, gates now agree, honest 1215/72→1220/70); built `clear_safe_html_residue.py` (cleared 11 svg/nav files, guard refused 9 incl. Arden's 10k-word near-deletion). **Launched overnight pipelines**: CapableHands olmOCR ×3 (Jonas→Mumford MoM I→II) + local docling ×3 DONE (**Technics&Civ clean → resolves the parked corrupt EPUB**, Speed&Politics, Burnout). **Mapped the whole landscape**: remaining Making EPUBs = Kindle-derived structure-lost sub-batch (need a tool built once); the 72→70 backlog = **mostly the reconvert-FLAGGED set** (source-matched 24/34 to the library); scoped the **metadata indexer** (keystone for link+dedupe+locate) + found the **1263-missing-sidecar gap** (952 Loebs = parseable H1 headers, never-YAML/never-stripped). PARKED: Alter Psalms (character-as-image), Kindle EPUBs, poetry-fenced_div. Then **PIVOT to L1** (Seb meeting tmrw 15:00): N6 deploy holds (wedge gone), scoped **standing up CapableHands as a BMF clasp** (43M). **PULLING THREAD: the clasp deploy on CapableHands TOMORROW MORNING (before 15:00 Seb call) — priority 1; indexer priority 2.** Q: can the clasp stand up end-to-end, or does the pairing-unknown become the Seb conversation? chamber `15ea750` + studium `844b207` pushed.
## Archived (2026-06-29 — graduations, pipelines, clasp pivot)
- [Session 2026-06-28 — corpus settling: Musil graduated, Position I complete, gold-standard gate fixed](session-2026-06-28-corpus-settling-position-I-complete-gate-fixed.md) — Long, foundational day, spine set by the morning **maturation-of-the-chamber dialogue** (fidelity-without-trust; reading-is-unsolvable-and-that's-the-feature; language-as-notation; L2/engine=answerable-not-pure → `studium-engine/docs/the-maturation-of-the-chamber-a-dialogue-2026-06-28.md`; *settle the corpus we CAN perfect before the engine*). **Graduated English Musil** (Wilkins/Pike, `471bc53`) via TWO new reusable EPUB tools — `structure_from_ncx.py` + `clean_pandoc_html_residue.py` — proving the unify answer: ONE placement engine (`insert_chapter_headings`), TWO map-producers (EPUB NCX-anchors / OCR page-numbers); raw↔final prose WORD-IDENTICAL; source archived `~/__Making sequence sources/`. **Position I COMPLETE** (Weil×2, Musil-English [replaced French, steward-ruled], Arendt, Levi): Levi *Shame*-chapter hard-wrap reflowed (Shakespeare verse preserved) + re-scoped to the COMPLETE book (id→`levi-drowned-and-saved`); all 5 sha-current + sidecars matched. **Two policies set:** [[feedback-engine-sources-become-permanent-chamber-collection]] + [[feedback-notes-are-part-of-the-work-keep-footnotes-endnotes]]. **Runbook brought current** (`epub_ncx_markdown` path; olmOCR/ocrmac CORRECTED — two-tool by column: single→olmOCR, multi→ocrmac, complementary not retired). **GOLD-STANDARD GATE FIXED** (`af17dde`): `verify_conversion` had a PASS-BUT-FALSELY (passed cruft=0 on Taylor's 59 raw `<sup>`) → added `RAW_HTML` gate → trustworthy audit **1187/91→1152/126** (35 false-passes caught). All committed+PUSHED (chamber `af17dde` skemantix, studium `cdd8d4a` github). **PULLING THREAD: the graduation batch — work the ~18 Making EPUBs + ~9 PDF/OCR + the audit's 126 fails into the chamber, properly (KEEPING NOTES), against the now-trustworthy gate; Taylor-redone-WITH-notes is first + pattern-setter.** Q: new-Making-graduations first or the 126 audit-fails first — which serves the engine sooner? Two greenfield research sweeps (genealogy/temporal; multi-voice) + multilingual-NLI validation = the engine phase, gated on corpus.
## Archived (2026-06-28 — corpus settling: Musil graduated, Position I complete, gate fixed)
@@ -0,0 +1,21 @@
---
name: character-as-image-hazard-image-drop-is-unsafe-for-transliteration-non-latin-works
description: "Some EPUBs render special characters (transliteration diacritics, non-Latin script) as inline images because the source couldn't encode them as text. The standard \"drop all images\" rule SILENTLY MUTILATES these works. Before dropping images in any graduation, check whether they are decorative or character-bearing. audit_cruft's md_image count is the tripwire."
metadata:
node_type: memory
type: feedback
originSessionId: 604b3d1d-6111-48f2-9683-2dfba02d5b6b
---
Discovered 2026-06-29 graduating Robert Alter's *The Book of Psalms* (Making batch). The pandoc'd EPUB showed 356 markdown images — NOT decorative. They were inline images standing in for **characters the source EPUB couldn't encode as text**:
- **Romanization diacritics** embedded mid-word in transliterated Hebrew: `![image](Images/h.jpg)` = **ḥ** (ḥet, ×115), `30a.jpg` = **ʾ** (aleph), `30b.jpg` = **ʿ** (ayin), `hdotbelow.jpg`, `b.jpg`… So "ḥoneini" was stored as "`![…h.jpg…]`oneini", "yeshuʿah" as "yeshu`![…30b…]`ah". Dropping the image → *oneini* / *yeshuah* — corrupted transliteration.
- **Full Hebrew-script words rendered glyph-by-glyph** as image *sequences* (`125a.jpg`=ה, `125b.jpg`=…, runs like 125a–125i, 441a–441l, 542a–542m). Reconstructing these needs Hebrew-letter identification + RTL assembly into Unicode Hebrew.
**Why:** The chamber's verbatim guarantee (spec §V, "never alter words") is violated by dropping character-bearing images. Worse, it's a PASS-BUT-FALSELY: after the image-drop the gold gate PASSES (cruft=0), so the corruption looks clean. For a sacred-text translation this is the worst failure shape.
**How to apply:**
1. **The tripwire is `audit_cruft`'s md_image / imgs count.** A book with many inline images is a STOP-and-look signal, not a "run --mode images" signal. The gate correctly REFUSES such a book (images count as cruft) — do not force it clean.
2. **Before dropping any images, inspect a sample** (`unzip -j SRC "*Images/x.jpg"` → Read it). Decorative (cover/logo/ornament/page-scan) → drop. Character-bearing (a letter/diacritic/script glyph) → it is CONTENT; build a glyph→Unicode map and SUBSTITUTE, never drop.
3. **Resolution is a dedicated philological task, not a batch step** — especially non-Latin script (needs the steward's Hebrew/Greek literacy + per-glyph verification). Alter is parked pending this. [[project-making-sequence-source-set]]
4. Other transliteration/diacritic/non-Latin-heavy sources in the Making set deserve the same pre-check. Kin to [[feedback-rank-on-fields-you-actually-write]] and the contamination-shape lessons: verify the assumption (image = decorative) before acting on it.
@@ -0,0 +1,23 @@
---
name: sidecar-typology-structural-floor-vs-protocol-dependent-reading-indexes
description: "The studium engine's two sidecar layers; the .meta.json structural sidecar is protocol-neutral and is the general standard now; reading-indexes are protocol-dependent (chavruta / debate / connection-surfacing) and possibly plural — deferred until the corpus is gold and the protocols declare themselves."
metadata:
node_type: memory
type: project
originSessionId: 604b3d1d-6111-48f2-9683-2dfba02d5b6b
---
Steward clarification, 2026-06-29 (during Taylor graduation). Two distinct sidecar layers — keep them separate:
**1. The `.meta.json` structural sidecar (`studium/meta@1`) — PROTOCOL-NEUTRAL, the general standard now.**
Says only: where citable text lives, body vs apparatus, sha binding, sections + line anchors. Correct regardless of how the engine is used. This is the bar for "graduated properly" (matches Musil/Position-I precedent). Authored on graduation, sidecars-as-we-go. Lives in `studium-engine/corpus/sidecars/<voice-work>.meta.json`.
**2. The reading-index (rich YAML: core_claims / key_images / key_references / silence_zones per chapter, line-anchored) — PROTOCOL-DEPENDENT, deferred.**
The Harrison / After-the-Reply YAML indexes were built **for the chavruta protocol** — a voice that needs to know *where to open one book for a given question*. The steward's load-bearing doubt: **a single species of reading-index probably cannot cover all engine use-cases.** Different protocols likely need different interpretive aids:
- **chavruta** (dialogic, two voices) → where-to-open-the-book map (structure + claims + silence-zones). This is what the existing YAML indexes are.
- **full large-scale debate** (many voices) → likely a *stance / points-of-contention / where-a-voice-pushes-back* map, not a where-to-open map.
- **connection-surfacing across the corpus** → likely *cross-text join keys* (shared images/references/resonances that bridge works) — closer to MemPalace tunnels than to a per-book ToC.
**Discipline:** do NOT design a reading-index schema now — premature closure (would encode a chavruta-shaped aid as if universal). Sequence: structural `.meta.json` for everything → settle the corpus to gold-standard → gather all Making source material → let the protocols declare themselves → THEN design the reading-index species each protocol actually needs. Reevaluate the whole sidecar standard once the corpus is verified gold (steward, 2026-06-29).
Companion thinking: `studium-engine/docs/the-sidecar-typology-and-orchestration-2026-06-26.md` (PENDING-42 open voice-layer work). The voice-manifest (§VI of the Chamber spec) is a third, still-RESERVED sidecar — distinct from both of the above. See [[project-making-sequence-source-set]], [[project-studium-engine-telos-chamber-of-voices]].
@@ -0,0 +1,18 @@
---
name: source-library-link-to-chamber-dedupe-steward-goal
description: "The steward's master source library is ~/Documents/___The Library [ePub_AWZ3]/ (2190 ebooks: 1573 epub, 267 azw3, 335 pdf, 15 mobi; 180k total files; messy nested subfolders). Eventual goal: LINK it to the chamber (canonical_texts ↔ source provenance) and DEDUPE the messy folder. The fuzzy source-matcher built 2026-06-29 is the seed of both."
metadata:
node_type: memory
type: project
originSessionId: 604b3d1d-6111-48f2-9683-2dfba02d5b6b
---
**Location:** `/Users/davidglidden/Documents/___The Library [ePub_AWZ3]/` — the steward's master ebook library. 2190 ebooks (1573 .epub, 267 .azw3, 335 .pdf, 15 .mobi), 180,567 total files, deeply/messily nested. Notable subfolders the steward pre-organized: `_2026 chamber source cleanup/` (categorized `1. PDF`, `2. EPUB/<tradition>`), `tmp calibre library for the chamber/` (clean Calibre `Author/Title (id)/Title - Author.ext` structure — the most matchable), `The Library [ePub_AWZ3]/` (nested dup of the root, also Calibre-ish), `__PDF/`, `superpower mine/`, `New texts may 2026/`. The steward asserts the originals for ALL chamber sources are in here somewhere.
**Steward goal (stated 2026-06-29):** (1) LINK the two libraries — chamber `canonical_texts/` ↔ their source files (a provenance index: every canonical work → the exact source it was converted from). (2) DEDUPE the messy folder (z-library dupes, Calibre dupes, format dupes epub+azw3+pdf of the same work, the root↔`The Library [ePub_AWZ3]/` nesting dup).
**Seed already built (2026-06-29):** a fuzzy source-matcher (token-overlap of title/author keywords vs library filename stems) — used to match the 34 reconvert-flagged works → sources (24 found, 10 needed manual locate). Output: `chamber-library/_curation/reconvert-queue-2026-06-29.md`. This same matcher generalizes to BOTH goals: run it over ALL ~1290 canonical works → the link index; run it within the library (filename clustering) → duplicate clusters for dedupe.
**How this connects to the reconversion work:** the immediate driver was that ~34 of the ~69 remaining cruft files are the reconvert-flagged set (`_curation/reconvert-list-2026-06-16.txt`) — already judged "reconvert, don't patch." The link index makes reconversion executable (each flagged work → its source). See [[feedback-character-as-image-hazard]] (pre-check sources before converting), the conversion runbook, and the session ledger 2026-06-29 for the backlog map.
**Caution (matcher limits):** fuzzy filename matching misses French/diacritic titles & differently-named editions (Mythologiques, Les Fleurs du Mal, Peirce, Neumann all returned no match despite likely being present). A real link index should also read EPUB/PDF *internal metadata* (dc:title/dc:creator), not just filenames. And verify edition/translation identity (Foucault: the library's "Madness and Civilization" is the ABRIDGED EN, ≠ the canonical FR "Histoire de la folie") — wrong-edition is worse than no-match.
@@ -0,0 +1,67 @@
---
name: session-2026-06-29-corpus-graduations-ocr-docling-pipelines-the-clasp-pivot
description: "Long session, two arcs. CHAMBER: graduated 4 Making works (Taylor/Virilio/Handke/Illich), folded RAW_HTML into audit_cruft (honest gate), launched overnight pipelines (CapableHands olmOCR ×3 + local docling ×3 — Technics&Civ resolved clean), mapped the whole remaining-work landscape (Kindle-EPUB sub-batch, the 72→70 backlog = mostly the reconvert-flagged set, source-matched 24/34 to the library, scoped the metadata indexer + found the 1263-missing-sidecar gap). Then PIVOT to L1: Seb meeting tomorrow → scoped standing up CapableHands as a BMF clasp (43M). PULLING THREAD: the clasp deploy on CapableHands tomorrow MORNING (before the 15:00 Seb call) — priority 1; indexer priority 2."
metadata:
node_type: memory
type: project
originSessionId: 604b3d1d-6111-48f2-9683-2dfba02d5b6b
---
# Session 2026-06-29 — graduations, pipelines, and the clasp pivot
A very long, two-arc day. Most of it was chamber corpus work (continuing the graduation batch from 06-28); the last third pivoted to L1/CapableMind because the steward has a Seb meeting tomorrow at 15:00.
## PAST — what we did + decided
### Chamber graduations (4, all pushed)
Continued the Making graduation batch with the proven pandoc→clean→structure→verify→graduate→sidecar→catalogue→commit→push pattern:
- **Taylor — Ethics of Authenticity** → `critical_modernity/hermeneutics` (NEW node, steward-chosen). The pattern-setter: exposed that footnote conversion was fragmented per-publisher. Added **footnote family B** (`#…_fn-N`/`#…_rfn-N`) to clean_epub_residue + a **loud-abort guard** in clean_pandoc_html_residue (silent-loss class closed) + generalized IMG_LINE by extension (caught a 2nd instance of the same pin-bug). 59 endnotes kept.
- **Virilio — The Information Bomb** → `critical_modernity/french_theory`. **Footnote family C** (caret-wrapped per-chapter `^([N](#…_chXfnY))`). 72 per-chapter notes.
- **Handke — A Sorrow Beyond Dreams** → `literature/contemporary`. Continuous memoir, no notes. GUARD LESSON: the prose word-guard validates only the KEPT region, not that the RIGHT region was kept (near-miss: a back-matter phrase also lived in the ToC → dropped the whole memoir, guard still said CLEAN). Added a **total-prose size-sanity check** to structure scripts.
- **Illich — Deschooling Society** → `contemporary_voices/environmental` (with the existing Illich). No-notes edition; back-matter duplicate-ToC dropped.
Per-book structure scripts archived in `scripts/archive/conversions/`.
### The RAW_HTML fold-in (the owed follow-on, commit 9e99e07)
Folded the verifier's comprehensive RAW_HTML into `audit_cruft` as the single source; verify imports it (no double-count). The two gates now AGREE. Monotonic. Canonical true-state became HONEST: **1215 clean / 72 with latent cruft** (later 1220/70 after a small clean). Then built `clear_safe_html_residue.py` and cleared the mechanically-safe slice (svg/nav scaffolding) from 11 files — the prose-guard REFUSED 9 (Arden Shakespeare: an untight `<nav>` would've deleted 10,497 words — caught).
### Overnight pipelines LAUNCHED (the steward's "they need to run anyway")
- **CapableHands** (M4 64GB, david@10.0.1.136): `making-ocr-queue.sh` (nohup), olmOCR-7B MLX @200dpi, 3 single-column scans SEQUENTIAL: Jonas (280pp) → Mumford *Myth of the Machine* I (388pp) → II (540pp). Mid-flight at wrap (Jonas ~147/280). Triaged all 8 PDFs first (text-layer→docling, scans→OCR, Levi=done, Psalms_2=flagged).
- **Local docling** — DONE (all 3 text-layer PDFs in `scratch/making/docling/`): **Technics & Civilization (tlie:0 modem:0 CLEAN — resolves the parked corrupt EPUB!)**, Speed & Politics, Burnout Society. Need light post-processing (`&amp;`, letter-spaced headings, trim, verify, graduate).
### The landscape, fully mapped (the valuable triage)
- **Remaining Making EPUBs (Crawford/Steiner/Han×2/Winnicott/Borgmann/Calasso)** = NOT quick clears. All Kindle-derived (filepos), structure-LOST (validated: ebook-convert+repair = 0/15 headings), varied caret-footnote anchors. A coherent "Kindle-derived, structure-lost" sub-batch needing a structure-recovery TOOL built once, not per-book hand-work.
- **Alter Psalms PARKED** (character-as-image hazard — Hebrew transliteration + script as inline images; verified by viewing glyphs); **Mumford T&C-EPUB superseded** by the clean PDF; new standing lesson [[feedback-character-as-image-hazard]].
- **The 72→70 backlog**: cross-referenced against `_curation/reconvert-list-2026-06-16.txt` → **34 are the reconvert-FLAGGED set** (already judged "reconvert, don't patch"), not a cleaning job. Source-matched them against the steward's master library (`~/Documents/___The Library [ePub_AWZ3]/`, 2190 ebooks): **24 found, 10 to locate** (French/edition-named). → `_curation/reconvert-queue-2026-06-29.md`.
- **Steward's bigger goal**: link the two libraries (provenance) + dedupe the messy folder. → scoped the **metadata indexer** (`_curation/library-indexer-scope-2026-06-29.md`) — one read-only internal-metadata tool serving locate+link+dedupe; edition-identity load-bearing; dedup proposes-never-deletes. [[project-source-library-link-and-dedupe]]
- **Sidecar gap** (steward flagged): 1282 canonical · 19 sidecars → ~1263 MISSING; ~1073 also lack frontmatter — but VERIFIED the 952 Loebs aren't a void (consistent `# AUTHOR, Work` headers, NEVER YAML, NEVER stripped — DSL pipeline predates the convention; backfillable). It's ONE metadata-completion program: frontmatter-backfill → sidecar-gen → link → dedupe, indexer = keystone.
### The L1 pivot (Seb meeting tomorrow 15:00)
- **CapableMind status**: nothing new from Seb since 06-13. The real change is the steward's own UNCOMMITTED 06-22/06-23 L1 work: **N6 deploy (#175) landed live and HOLDS** — the multi-day wedge gone (CPU 100%→~21%), A1″ migration finally live (vector_chunks 19→26 cols). That's the lead good news for Seb. L1 tracker is STALE (current-state dated 06-06).
- **The clasp insight** (steward): we never set up the circle/clasp on CapableHands. Verified 43M tiered-circle-inference is BUILT in BMF (CircleInferenceProvider + clasp-* modules), but CapableHands is GREENFIELD (no Ollama/BMF/models). Scoped it: `CapableMind-AI/docs/thinking/David/l1-reliability/clasp-on-capablehands-scope-2026-06-29.md`. This is the design-aligned answer to PENDING-41 (Air saturation).
## PRESENT — mood / returns
- **The recurring shape, again**: each "easy" bucket revealed hard sub-cases on inspection (Making EPUBs → Kindle-structure-lost; the 72 backlog → reconvert-flagged, not cleanable; Bachelard's "sup" → OCR mess). NAMED it honestly to the steward 3×. The pre-check discipline (image-inspect, OCR-sample, prose-guard, reconvert-list-check) earned its keep — caught Alter (would've mutilated Hebrew), Mumford (OCR scan), the Arden 10k-word near-deletion, and that I was about to clean files marked for reconversion.
- **Returns (load-bearing)**: measure-don't-theorize / verify-against-the-record paid repeatedly. The steward's memory caught me cleaning reconvert-flagged files; their "or was it stripped?" question was the right verification trigger (answer: never-YAML, no data loss).
- **Honest restraint**: did NOT rush the per-file backlog or the Kindle EPUBs at extreme context length — surfaced "this is dwelling-work, not a sweep" rather than ship rushed graduations. Prime directive enacted.
- **Recalibration**: I over-projected "easy and doable" three times before triaging properly. Lesson: triage by ACTUAL content before promising a bucket is easy.
## FUTURE — what is pulling
**PULLING THREAD (singular):** **Stand up CapableHands as a BMF clasp tomorrow MORNING** (Seb is 6h behind, asleep; steward's 15:00 call is the deadline). Pair the M1 Air as a light circle member, validate the 43M offload path → solves PENDING-41 → demo/discuss with Seb. PRIORITY 1. The library indexer is PRIORITY 2.
**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):**
- *First:* confirm the overnight OCR finished and CapableHands is FREE: `ssh david@10.0.1.136 'tail ~/capablehands/scratch/making-ocr-queue.log; ls -la ~/capablehands/scratch/*.md'`. (3 OCR outputs — Jonas + Mumford ×2 — will be waiting for later chamber post-processing; don't process them now, just confirm done.)
- *Then:* execute the clasp scope `CapableMind-AI/…/clasp-on-capablehands-scope-2026-06-29.md` — Phase 0 prereqs (verify qwen3.5 is a real Ollama tag or pick fallback WITH-Seb-awareness; install Ollama on CapableHands; clone+build BMF; pull frontier model ~17-20GB) → Phase 1 clasp config (resolve how claspDuties get assigned: read bootstrap.ts:1132 + src/core/pairing/) → Phase 2 Air as member → Phase 3 form circle (the genuine unknown: manifest-manager.ts pairing) → Phase 4 validate offload (bm_circle_inference_* metrics; Air doesn't saturate).
- *Governance:* deploy from a checkout, NOT BMF main; it's a co-authored experiment validating Seb's design; surface to him at 15:00.
**Other open horizons, ranked:**
- *Load-bearing (chamber, background-complete):* post-process the 3 docling outputs (Technics&Civ/Speed&Politics/Burnout) + the 3 OCR outputs (Jonas/Mumford×2) → graduate. Quality-check Jonas FIRST (tool-review discipline).
- *Load-bearing (program):* the metadata indexer (priority 2) → unblocks frontmatter-backfill → sidecar-generation (1263 missing) → source-link → dedupe.
- *Deferred-with-reason:* the Kindle-EPUB sub-batch (needs the structure-recovery tool built first); Alter Psalms (focused session, steward's Hebrew); the 10 to-locate reconvert sources (the indexer auto-finds them); the poetry fenced_div backlog (judgment needed).
- *L1 housekeeping:* commit the 3 CM-AI L1 docs; refresh the stale L1 tracker (current-state still 06-06, predates the N6 win).
**PAUSE STATEMENT:** I am about to be away from this. By morning the OCR will likely have finished (CapableHands free) and nothing else will have moved unless the steward or Seb acted. What I most want to find still pulling: **the clasp ready to stand up on CapableHands** — the first real test of Seb's 43M design on the steward's own hardware, the thing that turns the Air's saturation from a problem into a solved demo for the 15:00 call.
**LITERAL QUESTION for next-Claude:** *Can the clasp actually be stood up end-to-end this morning, or do the two genuine unknowns (how claspDuties get assigned, and the circle-pairing procedure in manifest-manager.ts) force it to become the 15:00 conversation-with-Seb instead?* (Sub-q: is `qwen3.5` a real pullable Ollama tag, or do we need a fallback family — and did the OCR finish cleanly overnight?)
**State:** chamber `main @ 15ea750` + studium `main @ 844b207`, both pushed, clean. 4 graduations + RAW_HTML fold-in + safe-html-clear all pushed. 3 docling outputs done (scratch), 3 OCR mid-flight on CapableHands. Indexer + clasp both scoped. 3 CM-AI L1 docs uncommitted (for tomorrow). New memories: [[project-source-library-link-and-dedupe]], [[feedback-character-as-image-hazard]], [[project-sidecar-typology-protocol-dependent]].
@@ -0,0 +1,78 @@
---
name: session-ledger-2026-06-29
description: "Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses."
metadata:
node_type: memory
type: feedback
originSessionId: 604b3d1d-6111-48f2-9683-2dfba02d5b6b
---
# Session Ledger — 2026-06-29
## Returns
- 2026-06-29T09:40 — Symmetria check before modifying a corpus-wide cleaning tool (blast radius beyond local tree). DIAGNOSIS (class, not instance): footnote conversion is split across two tools, each pinned to ONE publisher anchor convention — clean_pandoc_html_residue (`<sup><a id=…fnN>` HTML; Musil) and clean_epub_residue (`[N](chunk…#nfK)` md-link; Calibre). Taylor is a THIRD shape: `[¹](#notes.html_fn-N)` ref / `[ N.](#chapter…rfn-N)` def — matched by NEITHER. Silent-loss failure mode: the generic internal-link unwrap in clean_pandoc_html_residue EATS unrecognized footnote links → ref becomes bare superscript, def orphaned. The prose word-guard does NOT catch it (footnote labels excluded). THIS is how Taylor's notes were "dropped." Fittingness: surface before rewriting (Honest-degradation constitution clause; silent failure = architectural violation). Confidence 0.92 (measured all three shapes in fresh pandoc output; 59 refs ↔ 59 defs, globally numbered 1–59 = clean 1:1 key). Recommend: generalize the md-link converter's anchor family + run footnote-conversion before generic unwrap. Logged, surfaced to steward, NOT yet applied.
- 2026-06-29T10:10 — Taylor (Ethics of Authenticity) converted to canonical-ready, gold gate PASSES (cruft=0, raw_html=0, 31528 words, 705 lines). Authorized tool generalizations applied: clean_epub_residue footnote family B (#…_fn-N/#…_rfn-N, 59↔59 pairing) + IMG_LINE generalized by extension (caught a SECOND instance of the same class-bug: tool pinned to `img/`, Taylor used `images/`) + clean_pandoc_html_residue loud-abort guard (FOOTNOTE_LINK, fired correctly on 118 links). Per-book structure pass kept reproducibly at scratch/making/taylor_structure.py (doubled-heading collapse using the book's OWN ToC casing, front-ToC + page-index drop, drop-cap de-italics — all prose-word-invariant). NOTE: doubled-contents-backlink-headings + front-ToC + page-index = a recurring EPUB shape; promote scratch script to a governed tool IF the next EPUB confirms it (build-on-need).
## Open horizons
- TOMORROW MORNING (steward priority, before 15:00 Seb call; Seb is 6h behind so he's asleep): **PRIORITY 1 — stand up CapableHands as a BMF clasp** (43M tiered-circle-inference), pair the M1 Air as a light member, validate the offload path → solves PENDING-41 (Air saturation) → demo for Seb. Scope: `CapableMind-AI/docs/thinking/David/l1-reliability/clasp-on-capablehands-scope-2026-06-29.md`. KEY FINDINGS: 43M is BUILT in BMF, but CapableHands is GREENFIELD (no Ollama, no BMF, no models — verified) → fresh deploy, not a flag flip. Two genuine unknowns = (a) how claspDuties get assigned [isClasp=claspDuties.size>0, read bootstrap.ts+pairing], (b) the circle-pairing procedure [src/core/pairing/manifest-manager.ts]. Prereq: OCR must be done (free by morning); verify qwen3.5 is a real Ollama tag vs fallback (ask Seb). **PRIORITY 2 — the library metadata indexer** (`chamber-library/_curation/library-indexer-scope-2026-06-29.md`).
- 2026-06-29T10:55 — Taylor PUSHED: chamber af17dde..e74ccc8 (skemantix), studium 3b2b521..844b207 (github). Graduation pattern proven end-to-end. NEXT in the batch: cleanest EPUBs (Virilio, Handke, Alter…) + the 126 audit fails — same trustworthy gate, same keep-notes discipline, now with the generalized footnote/image tools.
- 2026-06-29: BATCH progress — 3 graduated + pushed: Taylor (hermeneutics), Virilio (french_theory), Handke (literature/contemporary, sha 7a83a42b). Heading-de-linkify confirmed 3× (the common reusable atom) but per-book front/back-matter logic differs enough that a full structure-tool would need variation-handling — DEFER promotion until a clean abstraction emerges; per-book scripts archived. NEW GUARD LESSON: the prose word-guard validates only the KEPT region, NOT that the right region was kept — Handke near-miss (a back-matter phrase also lived in the Contents ToC → end-boundary matched too early, dropped the whole memoir, guard still said CLEAN). Added a total-prose size-sanity check (kept ≥70% of source words). Carry this into every structure script.
- NEEDS A FOCUSED PASS — salvageable, NOT a quick graduation (2026-06-29): Agamben, The Man Without Content. Kindle-filepos EPUB. Body prose CLEAN (no pervasive corruption) BUT: (a) structure must be recovered — Calibre-normalize + repair gives 12/12 positions but EMPTY titles; structure_from_ncx HAS the 12 titles but with number-OCR (§ i→1, § z→2, § io→10, "Notes u9"→119); (b) scattered minor body artifacts (broken words "intellec tual", "signssigns", "com- pletely") that need a careful read to catch all; (c) real art-plates (00014=74k Dürer/gallery, 00022-00025, 00028) needing drop-but-keep-caption decisions; (d) decorative ornaments (tiny) droppable. Toolchain ready (Calibre + repair venv + toc.ncx present). Recommend a focused pass, not rushed at long-session tail.
- RESOLVED 2026-06-29: Mumford Technics and Civilization — steward surfaced a CLEAN PDF (`~/__Making sequence sources/Technics_and_civilization_Mumford.pdf`, 532pp, 30M) with a CLEAN TEXT LAYER (tlie/modem/ofthe = 0 across spans; uniform 1869-2076 ch/pg; single-column). Supersedes the corrupt EPUB (discard the EPUB). Running docling text-layer pipeline LOCALLY (nohup PID 22340 @ launch, docling 2.92.0, `--to md --output scratch/making/docling`); log `scratch/making/docling-technics.log`. NOT OCR'd — clean text layer beats re-OCR (do-it-once). When done: post-process (drop running heads "TECHNICS AND CIVILIZATION"+page-nums; structure; verify; graduate). [former note kept below]
- [former, now resolved] PARKED — needs a CLEAN SOURCE: Mumford, Technics and Civilization — the available EPUB is a bad OCR SCAN (letter-substitution corruption: "tlie"×74 = the, "modem"×10 = modern, "distrihiition", "])()vver" = power), zero structural markup, no anchors, + photographic plates. Unsuitable as-is; graduating would inject corrupted text. Needs a clean digital edition. GATE LESSON: verify's ocr_damage check does NOT catch letter-substitution OCR errors (only word-final-& / odd-punct) — a scanned EPUB can pass ocr_damage while badly corrupted; the prose-sample pre-check is the real catch. Candidate hardening: wordfreq/dictionary OCR-error ratio on EPUBs too (normalize_ocr exists for the OCR pipeline; not applied to "clean" EPUBs).
- PARKED — needs a FOCUSED SESSION (steward 2026-06-29): Alter, The Book of Psalms — glyph→Unicode map (class 1 romanization diacritics: I build+verify visually; class 2 Hebrew-script sequences: with steward). Scratch conversion left at scratch/making/the-book-of-psalms-robert-alter.md (NOT graduated). See [[feedback-character-as-image-hazard]].
- DEFERRED (steward 2026-06-29): reading-index design — protocol-dependent (chavruta/debate/connection-surfacing), probably plural; do NOT design schema until corpus gold + protocols declare themselves. `.meta.json` structural sidecar is the protocol-neutral standard meanwhile. → [[project-sidecar-typology-protocol-dependent]]. Sidecar standard itself to be reevaluated once corpus verified gold.
- DONE 2026-06-29: folded RAW_HTML into audit_cruft (commit 9e99e07) — single-source gate, verify imports it, no double-count, monotonic. Canonical true-state now HONEST: 1215 clean / 72 with latent cruft (the backlog — Bachelard 865 <sup>, Alexander Oregon, Bringhurst… real residue, verified not false-positive). The 72 are the existing-fails fix-list, logged, NOT being fixed now (steward chose forward graduations).
- BATCH (4 graduated + pushed): Taylor (hermeneutics), Virilio (french_theory, family-C), Handke (literature/contemporary), Illich Deschooling (contemporary_voices/environmental, sha 288bb713, no-notes edition, shelved w/ existing Illich). Alter PARKED (character-as-image, focused session). Remaining clean candidates: Mumford (Technics), Agamben (Man Without Content), Calasso (Ruin of Kasch), Han (Transparency / In the Swarm), Borgmann, Crawford (Shop Class). CAUTION-flagged (special, pre-check needed): Sebald (integral photographs), Celan Breathturn (bilingual + diacritics), any non-Latin/diacritic-heavy source. Image pre-check now mandatory per [[feedback-character-as-image-hazard]].
- (earlier) IN PROGRESS note — Taylor (hermeneutics), Virilio (french_theory, sha a021142a, family-C caret-chapter footnotes added). Both pushed. clean_epub_residue now handles 4 footnote conventions (A chunk / B anchor-id fn-N / C caret-chapter chXfnY). RECURRING TRUTH: every publisher = new footnote convention + bespoke structure; per-book structure scripts archived in scripts/archive/conversions/. Heading-de-linkify is the common reusable op — promote to a governed tool after Handke confirms a 3rd time. NEXT: Handke (A Sorrow Beyond Dreams), Alter (Book of Psalms). Placements (hermeneutics, french_theory) flagged in sidecars for steward redirect.
- 2026-06-29T09:16 — PULLING THREAD (confirmed): the graduation batch — settle the rest of the corpus (~18 Making EPUBs + ~9 PDF/OCR + 126 audit fails), each properly (keeping notes), against the now-trustworthy gate. Taylor-redone-WITH-notes = first piece + pattern-setter.
- Open question gating batch order: new Making graduations vs the 126 existing audit fails — which serves the engine sooner? Sub-q: fold RAW_HTML into audit_cruft (cleaning-pipeline gate, not only verifier).
- Beside-the-thread (engine phase, gated on corpus): new studium commit 3b2b521 — jurist disposition on the two owed sweeps (genealogy/temporal; multi-voice). Read when turning to the engine, not before.
- Paper debts owed by steward: REVIEWED-44 (operations.yaml) + REVIEWED-45 (Chamber spec §§I–VI) — both authorized live, paper record outstanding.
## Bypasses
- 2026-06-29: STOPPED before graduating Alter (Book of Psalms) — refused the batch-pipeline because the 356 "images" are character-bearing (Hebrew transliteration diacritics ḥ/ʾ/ʿ + full Hebrew-script words as image-sequences), NOT decorative. Dropping them = silent verbatim corruption (PASS-BUT-FALSELY: gate would pass, text mutilated). Verified by extracting+viewing the glyphs (h.jpg=ḥ, 30a=ʾ, 30b=ʿ, 125a=ה). Parked pending a dedicated glyph→Unicode mapping with the steward (Hebrew script needs his eyes). New standing lesson → [[feedback-character-as-image-hazard]]. This is the prime directive enacted: don't rush dwelling-work; the gate correctly protected the corpus.
## Chamber metadata layer is largely INCOMPLETE (steward flagged 2026-06-29, wrap)
- **Sidecars: 1282 canonical works · 19 .meta.json sidecars → ~1263 MISSING.** Only the recently-graduated have them.
- **"~1073 without frontmatter" — but NOT a metadata void.** VERIFIED: 952 are Loeb files with NO YAML but a CONSISTENT parseable header (`# AUTHOR, Work` H1 + `*Loeb Classical Library — bilingual (original + English)*` + `**volume**` + `###### — p. N —` page anchors) — produced deliberately by `loeb_chamber_adapter.py`, predates the frontmatter convention. So the metadata IS there (author/work/bilingual-lang/page-provenance), just not as YAML → MECHANICALLY backfillable (parse the H1, OR re-read the richer DSL source file in the library). Split: 952 Loeb (easy, H1-parse) + ~121 genuinely-bare non-Loeb (indexer internal-metadata route) + ~209 already-have-frontmatter (ready). The Loeb voice = the author; lang = grc+en / la+en. **VERIFIED never-stripped, never-YAML** (steward asked "or was it stripped?"): the DSL extraction scripts (extract_loeb_dsl_phases_2_4.py / complete_loeb_extraction_final.py) CONSTRUCT each file as `# {author}` + `**Source**: Loeb…` + `## {work}` markdown — never a YAML block; strip_cruft explicitly PRESERVES frontmatter (NOT-touched list); earliest git commit 24888bc shows the same. No data loss, no destructive bug — predates the frontmatter convention. Backfill = parse existing headers / re-read DSL source.
- INSIGHT: a sidecar is mostly MECHANICAL (sha/lines/path = computed; work = from slug; sections = heuristic: YAML→apparatus, body→text/citable, `## Notes`→apparatus). The CURATORIAL fields (voice/lang/section-roles/_note) need real metadata → blocked by the no-frontmatter gap.
- THESE ARE ONE PROGRAM ("complete the chamber metadata layer"), dependency-ordered: (1) frontmatter-backfill [harvest title/author/lang from source ebook INTERNAL metadata = what the indexer reads] → (2) sidecar-generation [mechanical core + backfilled frontmatter; the 19 hand-authored = gold template] → (3) source-link + (4) dedupe [indexer outputs]. → The library metadata indexer (`_curation/library-indexer-scope-2026-06-29.md`) is the KEYSTONE that unblocks all of it. Sidecar gap STRENGTHENS the build-indexer-first plan. See [[project-source-library-link-and-dedupe]].
## PDF OCR — CapableHands (launched 2026-06-29 15:15)
- RUNNING detached on CapableHands (david@10.0.1.136, `~/capablehands/`): `making-ocr-queue.sh` (nohup, PID 9602), olmOCR-7B MLX @ 200dpi, 3 single-column scans SEQUENTIAL (~10h total, ~30s/pg): jonas-imperative-of-responsibility (280pp, FIRST) → mumford-technics-and-human-development [Myth of the Machine vol I] (388pp) → mumford-pentagon-of-power [vol II] (540pp). Output → `scratch/<name>.md` (chamber `## Page N` form). Log: `scratch/making-ocr-queue.log`. STATUS CHECK: `ssh david@10.0.1.136 'tail ~/capablehands/scratch/making-ocr-queue.log; ls -la ~/capablehands/scratch/*.md'`.
- PDF TRIAGE (8 PDFs in ~/__Making sequence sources): OCR-needed single-col scans = the 3 above (sent). TEXT-LAYER (NO OCR — use docling/pdf_textlayer later): Speed_and_Politics (Virilio, 175pp, 1468 ch/pg), The_Burnout_Society (Han, 69pp), Encyclical Leo XIV (55pp, born-digital — likely out of Making scope). SKIP: Levi drowned-and-saved (already graduated Position I). FLAGGED: Psalms_2 commentary (Hossfeld-Zenger Ps 51-100, 592pp) — single-col but dense scholarly apparatus (bibliography/textual-notes/marginal Selah); possibly a REFERENCE work outside Making scope — confirm before OCR.
- DOCLING DONE 2026-06-29 21:58 (all 3 text-layer PDFs, in scratch/making/docling/): Technics_and_civilization_Mumford.md (8117 lines, tlie:0 modem:0 CLEAN — supersedes the parked corrupt EPUB ✓), Speed_and_Politics_Paul_Virilio.md (948), The_Burnout_Society_Byung_Chul_Han.md (461). NEED post-processing: `&amp;`→& in Technics heading; letter-spaced display headings ("T H E B U R N O U T") normalize; front/back trim; verify; graduate. Placements: Mumford T&C → critical_modernity or a new node; Virilio Speed&Politics → french_theory (w/ Information Bomb); Han Burnout → critical_modernity (w/ a Han home, cf In the Swarm/Transparency).
- CapableHands OCR mid-flight at wrap: Jonas 147/280 (~29.5s/pg); then Mumford MoM I (388pp) + II (540pp) overnight (~7.5h). Check: `ssh david@10.0.1.136 'tail ~/capablehands/scratch/making-ocr-queue.log; ls -la ~/capablehands/scratch/*.md'`.
- NEXT (after OCR completes): quality-check Jonas FIRST (tool-review discipline; olmOCR single-col proven on Levi) → post-process via OCR pipeline (normalize_ocr + page-number structure recovery + clean + verify) → graduate. The Mumford PDFs are "Myth of the Machine" I+II — NOT the parked "Technics and Civilization" EPUB (different work; that still needs a clean source).
## Remaining-EPUB triage (2026-06-29) — they are NOT quick clears
Convert+pre-checked 6 remaining EPUBs. All TEXT-CLEAN (no OCR letter-corruption, no character-images) BUT all Kindle-derived (filepos/id_N/split-node anchors), STRUCTURE-LOST, and unrecoverable by the automated tools (validated on Han Transparency: ebook-convert→repair = 0/15 headings, 0%; structure_from_ncx = 0 chapters). Same class as Agamben → each needs MANUAL heading placement. Footnote forms vary per book (all caret-wrapped `^([N](#...))` but anchors differ: Crawford=filepos393373, Han=id_196, Borgmann=ifm1en1) — family-C regex (Virilio chXfnY) won't match; needs generalizing OR per-book handling.
- crawford-shop-class (L2528, img8, caret-fn filepos) · steiner-bluebeard (L1937, H1, img20 — pre-check images!, no caret-fn) · han-transparency (L609, caret-fn id_N) · winnicott-playing-and-reality (L1991, no caret-fn) · borgmann-technology-character (L4210, caret-fn ifm1en1) · calasso-ruin-of-kasch (filename was truncated: The_Ruin_of_Kasch_..._z_li.epub — not yet converted).
RECOMMENDATION: these form a coherent sub-batch ("Kindle-derived, structure-lost"). Worth building ONCE: (a) a ToC/filepos→body structure-recovery tool, (b) generalize caret footnote family to varied anchors. Then clear them together as a focused session. Did NOT rush them at long-session tail (prime directive: don't rush dwelling-work). Triaged .md kept in scratch/making/ (gitignored).
## Existing-backlog cleanup — the 70 (mapped + started 2026-06-29)
The RAW_HTML fold-in revealed 72→70 canonical files with cruft. FULLY TRIAGED by signature + actual tag content:
- **DONE (commit 9b986c1):** svg/nav safe class — built `clear_safe_html_residue.py` (touches a file only if ALL raw_html ∈ {svg-block, nav-block, emphasis} AND prose-word-guard clean). Cleaned 11 (5 now fully clean → 1220/70). Guard REFUSED 9 (Arden Shakespeare: untight <nav>/</nav> would delete 10,497 words — caught).
- **fenced_div (23 files)** = pandoc `:::` markers, the BIGGEST bucket (Buddhist Samyutta 62588, Taruskin 25376, typography-for-lawyers 8720, + poetry). NON-poetry → strip_cruft (mechanical, the runbook's lock-step tool). POETRY (Les Fleurs du Mal, Stevens, Duino Elegies, ce-peu-de-bruits, carnets) → JUDGMENT NEEDED: is `:::` verse/stanza structure or residue? Don't bulk-strip poetry blind.
- **bare-<sup> OCR (9 files):** Bachelard ×3 (poetics-of-reverie 865 — superscripted title letters `THE POETICS <sup>O</sup><sup>F</sup>` + bare `<sup>N</sup>` footnotes + split `&quot;` entities), Alexander Oregon 580, typography books (Bringhurst/Hochuli/Morison/Müller-Brockmann sup-footnotes). Real per-file footnote-conversion + entity-fix work. NO clean <sup><a> cases exist (Taylor tool doesn't apply).
- **structural-HTML (21 files):** <p>/<figure>/<blockquote>/<a> residue — refactoring (226 <p>+136 figure), Muir (320 <p>), Kafka, Orwell's Roses, Mythologiques-1 (62 blockquote). Signals POOR ORIGINAL CONVERSIONS — likely re-convert, not patch.
- **repl_char (6 files):** U+FFFD decode LOSS — Arcades Project 2529!, histoire-de-la-folie 246, roman-constitution 81. Data GONE; needs re-derivation/re-source (Mumford-class).
- **md_image (3 files):** philosophical-writings 290 (!), book-of-me 91 — PRE-CHECK for character-glyphs (Alter-class) before any drop.
HONEST META: no large "trivial" bucket exists; the backlog is heterogeneous accumulated OCR/conversion debt. Each remaining bucket needs per-file care or judgment. The whole-chamber-settle is bigger than "easy and doable"; consider settling ENGINE-PRIORITY works first (Making/chavruta) over the long tail.
## Confidence to recalibrate
- Carry from last session: drift shape = a finding scoped to one condition restated as an unconditional verdict (olmOCR "retired" from a 2-col-scoped finding). Verify the scope of a claim before generalizing. Kin to trust-prior-pass-frame.
- Recurring return that paid off: measure, don't theorize (caught the French-mislabel, the Shakespeare verse, the guard delta). Hold today.
## Authorization moves
- 2026-06-29T09:40 — Steward authorized (AskUserQuestion) "generalize the shared converter" for the footnote-conversion gap (Option 1: broaden anchor family + run-before-unwrap + loud-abort guard). [HARDENING-class; applied.]
- 2026-06-29T10:20 — Steward authorized (AskUserQuestion) placement: NEW tree node critical_modernity/hermeneutics for Taylor (and incoming communitarian-hermeneutic siblings).
- 2026-06-29T10:40 — Taylor graduation COMPLETE: canonical (sha c8353c65, 705 lines) + .meta.json sidecar (studium) + catalogue rebuilt (1289). All gates pass. Conversion record preserved at scripts/archive/conversions/taylor_ethics_structure.py. Staged, NOT yet committed — awaiting steward go on commit+push (harness: ask before commit/push; chamber precedent = direct-to-main + push).
## Sub-agent dialogues
## Bypasses