🔧 Auto-commit from sysupdate on 2026-05-19 21:49
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
---
|
||||
name: session-2026-05-17-evening-chamber-library-reconvert-pipeline-validated-end-to-end-7-commits-on-main-pulling-thread-is-adorno-aesthetics-reconvert-lfs-migration-decision
|
||||
description: "Long evening session executing the chamber-library Tier 3 conversion infrastructure end-to-end. ARC branch docs/spec-extraction-2026-05 pushed to both Skemantix + GitHub-backup (10 commits). Ruder + Tschichold reconverted (ocrmac with Apple Vision LiveText; --columns 3 for trilingual Ruder, --columns 1 for Tschichold; both replace prior chamber files that were synthetic placeholder + Adobe Acrobat 8.12 damage respectively). EPUB pipeline test: Adorno Minima Moralia (clean Class A) + Calvino Six Memos (impoverished NCX → hand-craft chapter promotion) filed; Adorno Aesthetics deferred (structural heading surgery needed). 7 chamber-library commits landing on main (3e18734 → e9e9437); branch now 14 ahead of origin (was 7). LFS architectural discussion: §10.3 settlement makes MD canonical, LFS not needed at chamber's scale, but migration deferred per steward — push to Gitea no-LFS once Seb fixes server. Calibre 9.8.0 installed via brew cask (all 21 CLI tools on PATH). Tier 3 silent-loss finding: Hochuli + scripts + toolset-study were untracked. Pulling thread: Adorno Aesthetics reconvert (structural heading surgery: 'Notes' x8 + 'Guide'/'Pages' pseudo-chapters); behind it the 154-file reconvert backlog and the LFS-decide → GitHub-mirror setup. Literal question: does Calibre EPUB→EPUB normalization improve Aesthetics's heading structure, or is manual surgery the only path?"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
originSessionId: 63d0fba0-946e-437b-a76f-21a99d64e040
|
||||
---
|
||||
|
||||
# Session 2026-05-17 (evening) — chamber-library reconvert pipeline + 7 commits
|
||||
|
||||
## The pulling thread (singular)
|
||||
|
||||
**Adorno *Aesthetics* reconvert** — the third planned EPUB in tonight's trio, deferred for fresh attention. Pandoc produces 24 `##` headings with the wrong shape: "Guide" + "Pages" + "Notes" repeated 8 times (each chapter's notes section incorrectly promoted to chapter level). Needs structural heading surgery, plus the standard soft-hyphen + EPUB-artifact cleanup pass. Before manual surgery, worth testing whether Calibre's `ebook-convert` EPUB→EPUB normalization produces a different (cleaner) chapter structure.
|
||||
|
||||
Behind it: the larger arc of the 154-file reconvert backlog. Tonight banked 4 conversions total (Ruder + Tschichold earlier; Adorno Minima Moralia + Calvino Six Memos now). ~150 to go. The conversion-skill plan §12 has 8 preconditions; tonight discharged 4 of them.
|
||||
|
||||
## Literal question for next-Claude
|
||||
|
||||
*Does Calibre's `ebook-convert` EPUB→EPUB normalization on Adorno *Aesthetics* (~5 MB EPUB) produce a cleaner pandoc heading structure — fewer or no "Notes" promotions; no "Guide" / "Pages" pseudo-chapters — or do we need targeted manual heading surgery as the only path? Quick empirical test (5 min: `ebook-convert in.epub out.epub` → `pandoc -f epub -t gfm-raw_html out.epub` → compare heading count) that determines whether Aesthetics is a Class A-with-normalization win or a heading-surgery exercise.*
|
||||
|
||||
## Pause statement
|
||||
|
||||
I am about to be away from this. Today closed substantial chamber-library infrastructure work — the conversion pipeline now exists as a working system with two registries, two scripts, two plans, and four real reconvert validations. The Tier 3 framing from the v3 plan is operative end-to-end. What I want to find still pulling when I return: **the Aesthetics reconvert** — both as the immediate next conversion test AND as the question of whether the pandoc-plus-cleanup approach scales to the harder structural-surgery cases, or whether the custom EbookLib pipeline (v3 §6 Class A/B research-grade) needs to be the next infrastructure investment.
|
||||
|
||||
---
|
||||
|
||||
## What happened tonight
|
||||
|
||||
### Phase 1 — ARC branch push + iCloud typography audit + conversion-skill-plan migration (~early evening)
|
||||
|
||||
- **ARC branch pushed**: `docs/spec-extraction-2026-05` (10 commits from today's morning Stage-D matrix work) pushed to both `origin` (Skemantix Gitea) and `github-backup` (GitHub mirror at `davidglidden/arc-backup`). Both pushes clean.
|
||||
- **iCloud typography audit**: surveyed `~/Library/Mobile Documents/com~apple~CloudDocs/Documents/___The Library [ePub_AWZ3]/__PDF/Typography/` against chamber-library's typography collection. Discovered:
|
||||
- `emil_ruder_structure.md` in chamber was a **synthetic AI-generated summary placeholder** — frontmatter declared `extraction_note: "Full extraction not feasible - conceptual summary provided"`. Real Ruder had never been ingested.
|
||||
- `neue_typography_tschichold.md` had `l→t` OCR damage in headings (`Catifornia`, `Tschichofd`, `Educationat`); source PDF metadata identified **Adobe Acrobat 8.12 Paper Capture Plug-in** (circa-2007) as the OCR engine — the iCloud 107 MB PDF source has the same damage signature in its text-layer (`Waiter Dexel`, `finesl`, `TH E ELECTRO-LI BRARY`, etc.).
|
||||
- The 12 MB "Principles of the New Typography" PDF is a chapter excerpt of the full Tschichold book chamber already has (verified by `grep` finding the chapter title at line 539); confirmed redundant.
|
||||
- **Plan migration**: moved `conversion-skill-plan-2026-05-{16,17}.md` from `studium-engine/docs/` to `chamber-library/docs/` (rationale: the skill operationally belongs with its operands and registries, which live in chamber-library; the Studium Engine Tier 3 framing is conceptual rooting, not operational placement); left a pointer at `studium-engine/docs/conversion-skill-pointer.md`.
|
||||
|
||||
### Phase 2 — Ruder reconvert (the harder case) + registry authoring (~mid-evening)
|
||||
|
||||
- **Docling+rapidocr Tier 3 discovery on Ruder**: docling-venv had rapidocr installed but missing `onnxruntime`. Engine wouldn't initialize on image-only PDF. Installed `onnxruntime 1.26.0 + flatbuffers + protobuf`. Re-ran docling — completed in 18.6 min (MPS) but **output failed Stage 5 verification**: word boundaries selectively destroyed at character transitions (`After21yearsof`, `theauthor`, `inspiteofcertain`). docling+rapidocr is `partially_validated` for image-only PDFs with dense Swiss typography — the v3 plan's binary `validated|broken` categories needed extending.
|
||||
- **Marker discovered installed** (steward caught my shallow "not installed" check — Marker venv at `~/.local/marker-venv/` with full binary suite; was off PATH).
|
||||
- **Authored `scripts/ocrmac_pdf.py`**: pdf2image rasterisation + ocrmac (Apple Vision LiveText, line mode) + reading-order reassembly. Initial single-column smoke test on trilingual Ruder showed interleaved languages; added `--columns N` flag for column-major reading order (bbox x-centroid bucketing into N equal-width columns, sort column-major). Validated on pages 5-7; ran full Ruder.
|
||||
- **Ruder filing**: 71,548 words across trilingual de/en/fr; 575.9 sec (~9.6 min) at 0.7 pg/sec; Stage 5 PASSES; filed at `converted_texts/collections/typography/typography_ruder.md` with rich frontmatter; original 121 MB PDF moved to archive.
|
||||
- **Registries authored**:
|
||||
- `_curation/installation-status.yaml` (~150 lines): 18 tools tracked with subsystem-state for tools that can fail independently (docling subsystems: `layout_reconstruction` validated, `ocr_rapidocr` partially_validated)
|
||||
- `_curation/per-author-quirks.md` (~120 lines): entry shape established with Bringhurst (qualified per 2026-05-17 finding), Heidegger, Bachelard, Vico, Tschichold (pre-flagged), Ruder
|
||||
- **AldineXXI spec audit for Ruder citations**: grep across `docs/AldineXXI-Codex/` returned **zero** Ruder citations. The silent-reliance concern (steward: "we thought we was there, but wasn't") was averted by the spec NEVER having cited Ruder. Only one decorative mention in `scss/AldineXXI/_frontispiece.scss` (`// Conversational scale for reflection - Ruder/Carter approved`) — rhetorical garnish, not load-bearing.
|
||||
- **Ruder-eye reading of spec**: discussed; steward chose option C (defer to dedicated session) — the masters' reading discipline is slow/dialogic, shouldn't be squeezed into a tool-heavy session.
|
||||
|
||||
### Phase 3 — Tschichold reconvert (three pipelines attempted) + scratch cleanup (~mid-evening)
|
||||
|
||||
- **Attempt 1 — docling layout-reconstruction**: 14 min; 60,339 words; **FAILED** Stage 5. docling inherited the source's Adobe Acrobat 8.12 damage signatures rather than running fresh OCR (5× `Waiter Dexel`, `finesl`, `wor'ds`, `hear'd`, `TH E ELECTRO-LI BRARY`); plus line-break-hyphenation noise (`between`, `citizen`); plus heading mis-promotion (149 `##` headings, many from display text). Lesson: docling layout-reconstruction works for character-level damage (Bringhurst e→&) but does NOT work for text-flow-level damage (hyphenation, word-internal noise).
|
||||
- **Attempt 2 — Marker `--force_ocr --strip_existing_ocr`**: 77 min elapsed, only 48 of 3237 text-recognition steps done. Surya's `TableRecEncoderDecoderModel` not MPS-compatible → entire OCR pipeline runs on CPU when `--force_ocr` is set. Per-step latency 1.4-500 sec; tool-reported ETA 17-88 hours. **Aborted** — Marker `--force_ocr` is structurally infeasible for >50-page books on Apple Silicon CPU.
|
||||
- **Attempt 3 — ocrmac `--columns 1`**: 4.6 min; 127,261 words (~2x the prior chamber file's 63,931); 0 of 15 probed Adobe damage signatures present; Stage 5 PASSES. Filed at `converted_texts/collections/typography/neue_typography_tschichold.md`; original 107 MB PDF moved to archive.
|
||||
- **Archive folder setup**: `_2026 chamber source cleanup/{1. PDF, 2. EPUB}/<tradition>/` (mirrors `chamber-library/converted_texts/` structure; README written explaining the tradition-mirroring convention).
|
||||
- **Scratch cleanup**: Ruder + Tschichold scratch dirs cleaned after conversion notes captured all evidence.
|
||||
|
||||
### Phase 4 — 6 chamber-library commits + LFS architectural discussion + Calibre install (~late evening)
|
||||
|
||||
Six commits landed on `main`:
|
||||
- `3e18734` typography reconverts (Ruder + Tschichold) + conversion infrastructure
|
||||
- `9ece60b` track load-bearing chamber additions and skill substrate (Tier 3 hygiene — 338 files including Hochuli + scripts + toolset-study that had been sitting in working tree)
|
||||
- `b5a71a1` chore: .gitignore extension (mempalace.yaml + entities.json + _backups/ + scratch/)
|
||||
- `a7f213f` remove cruft and reorganization-duplicates surfaced by failed mining (752 deletions: 614 mining-stage images + 88 Loeb duplicates + 15 Harvard Classics + 13 observer-problem-sources + derrida orphan)
|
||||
- `d53d76d` remove stale tradition READMEs (8)
|
||||
- `91b52b9` in-place cruft cleanup of 37 retained chamber files (LFS pointer updates)
|
||||
|
||||
**LFS architectural discussion**:
|
||||
- Gitea push blocked: Seb's Gitea install has LFS server issues; steward wants to push without LFS once Seb fixes
|
||||
- Discussion of GitHub backup mirror — steward wants a private repo at `davidglidden/chamber-library-backup`
|
||||
- LFS-need analysis: chamber is text-only at chamber's actual scale (largest file 15 MB; nothing approaches GitHub's 50 MB warning); §10.3 settlement makes MD + sidecar canonical; LFS doesn't earn its keep architecturally
|
||||
- Refined recommendation: migrate off LFS now (free Gitea push, drop GitHub LFS quota anxiety); scope LFS narrowly to TEI-native subset *if* it ever lands (per §10.3 settlement's deferred TEI-native trigger)
|
||||
- **Steward chose to defer LFS migration**: push to Gitea no-LFS once Seb fixes; investigate further later. Migration deferred-with-reason, not rejected.
|
||||
- **Calibre 9.8.0 installed via brew cask** (replaced manual install with 8.4.0 that only had `ebook-convert` symlinked; brew cask symlinked all 21 CLI tools including `ebook-polish`, `ebook-meta`, `calibredb`)
|
||||
|
||||
### Phase 5 — EPUB pipeline test (Adorno + Calvino filed; Aesthetics deferred) (~very late)
|
||||
|
||||
- **Adorno *Minima Moralia*** (350 KB EPUB, Class A well-formed): pandoc 1.17 sec + custom cleanup pass (stripped 43,584 U+00AD soft hyphens + EPUB cover/SVG/internal-anchor TOC artifacts). 91,523 words; 4 `#` (Dedication + 3 Parts) + 100+ `###` (aphorisms 1-153). Stage 5 PASSES — **structure is CORRECT** for the aphoristic form. Filed; source EPUB archived.
|
||||
- **Calvino *Six Memos*** (152 KB EPUB, Class A with **impoverished NCX** — only 1 entry "Start"): pandoc → cleanup → **hand-craft chapter promotion** via regex (digit+blank+ALLCAPS → `## N. TITLE`). 5 chapters detected from in-body pattern (LIGHTNESS / QUICKNESS / EXACTITUDE / VISIBILITY / MULTIPLICITY), zero false positives. `repair_epub_headings.py` couldn't help (NCX had no chapter content to promote); Calibre `ebook-convert` normalization didn't enrich the NCX either. 38,397 words. Filed; source EPUB archived.
|
||||
- **Adorno *Aesthetics*** (5.1 MB EPUB): pandoc raw produces 24 `##` headings with wrong shape ("Guide" + "Pages" + "Notes" repeated 8 times — each chapter's notes section gets promoted to chapter level). **Deferred** for fresh attention.
|
||||
- **Seventh commit `e9e9437`**: EPUB reconverts — Adorno Minima Moralia + Calvino Six Memos; updated per-author-quirks.md with Adorno and Calvino entries.
|
||||
|
||||
---
|
||||
|
||||
## Decisions locked tonight (and rationale)
|
||||
|
||||
| Decision | Rationale | Where recorded |
|
||||
|---|---|---|
|
||||
| **Conversion-skill-plan v2+v3 lives in chamber-library, not studium-engine** | Operational artifact belongs with operands; registries (per-author-quirks, installation-status) cited by plan REQUIRE living in chamber-library/_curation/ per §8/§9; splitting plan from registries across repos creates long cross-repo dependency | `chamber-library/docs/conversion-skill-plan-2026-05-{16,17}.md` + `studium-engine/docs/conversion-skill-pointer.md` |
|
||||
| **docling.subsystems.ocr_rapidocr: partially_validated** (richer status than v3 plan's binary categories anticipated) | Engine works on MPS; output quality fails Stage 5 on image-only PDFs with dense Swiss-typography spacing (token-boundary destruction); acceptable as last-resort fallback only | `_curation/installation-status.yaml` |
|
||||
| **docling.subsystems.layout_reconstruction: validated_with_limits** | Works for character-level damage (Bringhurst e→&); does NOT work for text-flow-level damage (Tschichold hyphenation, word-internal noise) — those pass through verbatim | `_curation/installation-status.yaml` |
|
||||
| **Marker constrained: cpu-only pipeline structurally infeasible for >50-page books on Apple Silicon** | Tschichold evidence (77 min, 48/3237 steps, ETA 17-88 hours); Surya's TableRecEncoderDecoderModel not MPS-compatible | `_curation/installation-status.yaml` |
|
||||
| **ocrmac validated against two real sources** | Ruder (trilingual image-only) + Tschichold (single-column English with damaged text-layer) — both pass Stage 5 | `_curation/installation-status.yaml` + `_curation/per-author-quirks.md` |
|
||||
| **Source PDF/EPUB archival convention: tradition-mirroring subfolders** | Mirrors `chamber-library/converted_texts/` structure; 1:1 mapping makes archive a progress indicator; scales to the 154-file backlog | `~/Documents/___The Library [ePub_AWZ3]/_2026 chamber source cleanup/README.md` |
|
||||
| **Calibre install via brew cask** | All 21 CLI tools on PATH; future upgrades via `brew upgrade --cask calibre`; replaces hand-installed 8.4.0 that had only `ebook-convert` symlinked | brew-managed; reflected in `_curation/installation-status.yaml` |
|
||||
| **§12 precondition #9 added: heuristic body-column filter for ocrmac_pdf.py** | Tschichold reconvert ~10-20% of pages had body prose interleaved with sidebar text; per-page bbox x-centroid histogram + body-column band detection would address this class; reusable for any single-column-with-marginalia source. Steward's "keep this close, it seems like A may be very useful for us" anchored as load-bearing. | `docs/conversion-skill-plan-2026-05-17.md` §12 + TODO marker in `scripts/ocrmac_pdf.py` |
|
||||
|
||||
## Decisions explicitly NOT made — and why
|
||||
|
||||
- **Did NOT migrate off LFS** — steward chose to defer; can push to Gitea no-LFS once Seb fixes server; migration evaluated and ready when steward picks it up
|
||||
- **Did NOT set up GitHub backup mirror** — held until LFS handling decision lands
|
||||
- **Did NOT reconvert Adorno *Aesthetics*** — structural heading surgery on 24 ## headings warrants fresh session; rushing the heading-mode decisions on a canonical text was the wrong tempo
|
||||
- **Did NOT push the 14 chamber-library commits** — Gitea blocked by Seb's LFS server issue; GitHub mirror not yet set up; both wait on LFS decision
|
||||
- **Did NOT do the Ruder-eye spec reading** — steward chose C (defer to dedicated session); masters' reading discipline is slow/dialogic
|
||||
- **Did NOT build the custom EbookLib pipeline** (v3 §6 Class A/B research-grade) — out of scope; precondition for several deferred items
|
||||
- **Did NOT touch the 8 stale tradition READMEs as part of the cruft commit** — separated into its own commit (`d53d76d`) because the shape was different from mining-scratch cleanup
|
||||
- **Did NOT promote `scripts/strip_epub_artifacts.py`** as a reusable script — used inline Python for the cleanup pass; promotion is queued (the pattern recurred on both Adorno EPUBs, so it's earned its place; just not authored tonight)
|
||||
|
||||
## Mood / present-tense returns
|
||||
|
||||
Pattern that held tonight: ***quote/read/verify before composing*** — applied at every articulation-gate (Stage 2) before each conversion attempt. The discipline produced honest classifications:
|
||||
- Ruder PDF classified as image-only (verified via pdftotext returning empty at front/mid/end) → routed to ocrmac
|
||||
- Tschichold PDF classified as text-layer-present-but-damaged (verified via pdftotext sample + Producer metadata) → routed first to docling, then ocrmac after failure
|
||||
- Adorno EPUB classified as Class A well-formed (verified container+OPF+NCX present + pandoc dry-run clean) → routed to pandoc direct
|
||||
- Calvino EPUB classified as Class A with impoverished NCX (verified NCX has only 1 entry "Start") → routed through hand-craft promotion workaround
|
||||
|
||||
Drift patterns named and corrected this session:
|
||||
- **"Marker not installed" (was wrong)** — initial check shallow (`which` + `pipx list` only); steward caught it; venv-internal binary at `~/.local/marker-venv/bin/marker_single`. Same drift family as past *acting-on-inferred-not-read*.
|
||||
- **"These typography files are at reasonable depth" (was wrong)** — anchored on word count without examining content; steward pushed back on dismissing Tschichold 107 MB PDF; the l→t damage discovery was the consequence of actually-looking-at-the-file. New entry in the drift catalogue: *anchoring on word count without examining content*.
|
||||
- **"Tschichold reconvert is the Bringhurst-shaped case" (partially wrong)** — docling layout-reconstruction worked for Bringhurst's character-level damage but doesn't work for Tschichold's text-flow-level damage. The shape match was superficial; the actual damage classification matters.
|
||||
|
||||
Patterns to hold forward:
|
||||
- ***The Tier 3 framing is operative end-to-end*** — installation-status registry with subsystem-state for tools that can fail independently is the kind of substrate the v3 plan §1 calls for; honest "partially_validated" status is more useful than binary categories.
|
||||
- ***Honest restraint vs contamination-shaped self-effacement*** (from earlier today's Studium handoff): held during LFS discussion. When steward chose to defer migration, didn't push back — the deferral was reason-based (waiting for Seb), not avoidance.
|
||||
- ***Decisions made in dialogue land cleaner than decisions made unilaterally*** — every reconvert and registry choice tonight came through articulation-then-confirm; the steward's redirects (LFS deferred, Aesthetics deferred, READMEs separate commit) all improved the work.
|
||||
|
||||
Recalibrations:
|
||||
- *Estimating runtime against past-trauma* — was wildly off again. Estimated docling at 2-4h based on Bringhurst's CPU runtime; actual was 18.6 min on MPS. Ocrmac estimated similarly; actual ~5-10 min. Hardware-accelerated tools deserve their own estimation baseline.
|
||||
- *Treating LFS as "obviously remove"* — needed steward's "but I might have had compelling reasons to accept it" challenge to actually trace the legitimate adoption rationale. Trajectory-question framing landed better than recommendation-first.
|
||||
|
||||
## Open horizons after this session
|
||||
|
||||
### Tier 0 — Immediate, atomic (next session start)
|
||||
|
||||
- **Adorno *Aesthetics* reconvert** — the singular pulling thread; Calibre normalization test first, then heading surgery decision, then file
|
||||
- **Push the 14 chamber commits** — once LFS decision lands and/or Seb fixes Gitea
|
||||
- **Set up GitHub backup mirror** (`davidglidden/chamber-library-backup`) — blocks on LFS decision
|
||||
|
||||
### Tier 1 — Held for steward decisions
|
||||
|
||||
- **LFS migration** (migrate off entirely, keep, or scope-narrow when TEI lands) — affects backup-mirror setup + future repo-size trajectory
|
||||
- **Custom EbookLib pipeline build** (v3 §6 Class A/B research-grade) — the disciplined path for impoverished-NCX sources like Calvino; ~1-2 hours setup; ~5 min per book thereafter
|
||||
|
||||
### Tier 2 — The larger arc
|
||||
|
||||
- **154-file reconvert backlog**: tonight banked 4 (Ruder + Tschichold + Adorno Minima + Calvino); ~150 to go. Top items: Lévi-Strauss Mythologiques 1-4, Heidegger Being and Time, Bachelard 3 works, Moby Dick, Adorno Aesthetics (pulling thread), Taruskin Oxford History (massive), Davies Europe: A History (massive)
|
||||
- **v3 plan §12 preconditions** — 4 of 8 discharged tonight (#2 quirks log ✓, #3 install registry ✓, #4 docling rapidocr fix ✓, #5 ocrmac integration ✓). Remaining: #1 toolset-study revision, #6 GROBID test, #7 Marker multilingual verification, #8 pdfplumber integration, #9 (added today) body-column heuristic
|
||||
- **Toolset study revision** (`docs/conversion-toolset-study-2026-05-13.md`) — substantial pending update: Calibre `markdown_output` rejected, ocrmac added, docling-first preference with subsystem qualifier, TEI input class, GROBID promotion
|
||||
|
||||
### Held externally
|
||||
|
||||
- **Seb fixing Gitea LFS server** — blocks Gitea push (chamber + ARC backups); not my workstream
|
||||
- **Jurist response to executor-as-user handoff** — `~/_Dev/studium-engine/docs/executor-as-user-considerations-2026-05-17.md`; when Jurist analyses, may reshape Studium Engine work
|
||||
|
||||
## State references
|
||||
|
||||
- **Branch**: chamber-library `main`, **14 commits ahead of origin** (no push possible until LFS handling resolves)
|
||||
- **Tonight's commits** (chamber-library): `3e18734` (typography reconverts), `9ece60b` (Tier 3 hygiene), `b5a71a1` (gitignore), `a7f213f` (cruft removal), `d53d76d` (README removal), `91b52b9` (LFS pointer updates), `e9e9437` (EPUB reconverts)
|
||||
- **ARC pushed**: `docs/spec-extraction-2026-05` to both `origin` (Skemantix Gitea) and `github-backup` (GitHub mirror at `davidglidden/arc-backup`)
|
||||
- **Source EPUBs archived**: `~/Documents/___The Library [ePub_AWZ3]/_2026 chamber source cleanup/2. EPUB/{frankfurt_school,literature/contemporary}/`
|
||||
- **Source PDFs archived**: same archive folder, `1. PDF/typography/`
|
||||
- **New scripts**: `chamber-library/scripts/ocrmac_pdf.py`
|
||||
- **New registries**: `chamber-library/_curation/installation-status.yaml`, `_curation/per-author-quirks.md`
|
||||
- **New conversion notes**: `_curation/conversions/{typography_ruder,neue_typography_tschichold,minima-moralia,six-memos}.notes.md`
|
||||
- **Plan migration**: `chamber-library/docs/conversion-skill-plan-2026-05-{16,17}.md`; pointer at `studium-engine/docs/conversion-skill-pointer.md`
|
||||
- **New ocrmac-venv**: `~/.local/ocrmac-venv/` (ocrmac 1.0.1 + pdf2image 1.17.0 + pyobjc-framework-Vision/Quartz/CoreML/Cocoa)
|
||||
- **Calibre upgraded**: brew cask `calibre` 9.8.0; replaces manual 8.4.0; all 21 CLI tools on PATH
|
||||
- **Studium Engine**: 4 untracked items (jurist settlements + executor-as-user handoff + conversion-skill-pointer + plan v2 — which was moved to chamber but still untracked at studium origin); these are all expected-untracked
|
||||
|
||||
## Working-state notes for next-Claude
|
||||
|
||||
- **Hooks active** (Stop + PreCompact mining to palace-memory).
|
||||
- **14 commits local on chamber-library `main`, none pushed**. Don't attempt push without re-checking LFS decision state.
|
||||
- **Aesthetics scratch was NOT preserved** — scratch was cleaned. Re-conversion in next session takes ~1 sec (pandoc on the source EPUB still at iCloud working location — has NOT been archived yet because the conversion wasn't completed).
|
||||
- **Source EPUB for Aesthetics**: `~/Documents/___The Library [ePub_AWZ3]/The Library [ePub_AWZ3]/Theodor W. Adorno/Aesthetics (1260)/Aesthetics - Theodor W. Adorno.epub` (5.1 MB).
|
||||
- **The two-EPUB test validated**: pandoc EPUB→MD is fast (1-2 sec/book); the hard work is structural surgery on impoverished-NCX or wrong-promotion cases.
|
||||
- **Backup of prior Aesthetics chamber file**: `_backups/2026-05-17/aesthetics.md.preconversion-backup` (we made this preemptively expecting the conversion; it's there ready).
|
||||
- **The `Calvino → custom EbookLib pipeline` lesson**: hand-craft regex worked for THIS source because the pattern was regular (digit+blank+ALLCAPS). Won't work for sources with irregular chapter visibility. The custom EbookLib pipeline remains the disciplined path; tonight's hand-craft is documented as a workaround.
|
||||
|
||||
## Pickup orientation for the pulling thread
|
||||
|
||||
1. **Read** `MEMORY.md` — Active Session points at this file.
|
||||
2. **Read this session memory** in full.
|
||||
3. **Read** `_curation/conversions/six-memos.notes.md` — the impoverished-NCX case study; informs the Aesthetics approach if same pattern recurs.
|
||||
4. **Check the Aesthetics source EPUB** at `~/Documents/___The Library [ePub_AWZ3]/The Library [ePub_AWZ3]/Theodor W. Adorno/Aesthetics (1260)/Aesthetics - Theodor W. Adorno.epub` is still present (steward archives sources AFTER successful conversion).
|
||||
5. **Answer the literal question first**: try Calibre `ebook-convert` EPUB→EPUB on Aesthetics; pandoc the normalised version; compare heading count + shape. 5-min test.
|
||||
6. **If Calibre helped**: proceed with Class B pipeline + cleanup + file. **If not**: propose heading-surgery approach to steward (demote `## Notes` → `### Notes`; strip `## Guide`/`## Pages`); execute on approval.
|
||||
7. **File** typography Aesthetics with same pattern as the other 3 (frontmatter + conversion notes + quirks entry + source archive); commit (likely 8th session commit).
|
||||
|
||||
**Do not touch** (per current scope and steward direction):
|
||||
- LFS migration (steward deferred)
|
||||
- GitHub backup mirror setup (blocks on LFS decision)
|
||||
- Push to Gitea (waits on Seb)
|
||||
- Toolset study revision (deferred to dedicated session)
|
||||
- Custom EbookLib pipeline build (deferred to dedicated session)
|
||||
|
||||
---
|
||||
|
||||
*End of session memory. Authored 2026-05-17 past midnight at session wrap-up. The pulling thread is Adorno *Aesthetics* reconvert; the literal question is whether Calibre normalization solves the heading-promotion problem before manual surgery is needed. Branch is durable on disk at 14 commits ahead of origin; the conversion pipeline is operative end-to-end; the four real reconvert validations (Ruder + Tschichold + Adorno Minima + Calvino Six Memos) establish the Tier 3 substrate is real.*
|
||||
Reference in New Issue
Block a user