Basic Memory v0.21.6 first sync over the live memory dir (steward-authorized live-dir trial, Option A 2026-06-06): adds permalink: to frontmatter, refolds long YAML description lines, strips final newlines. Bodies untouched — verified via full diff classification. From this commit forward, any diff in claude/memory shows only what Basic Memory or the session writes. Trial design: MemPalace untouched as incumbent; git status check on this dir at every wrap; end-of-day evaluation (recall quality, sync robustness, rebuild-from-files, malformed-file behavior). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 KiB
name, description, metadata, permalink
| name | description | metadata | permalink | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 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 | 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? |
|
claude-memory/session-2026-05-17-evening-chamber-reconvert-pipeline |
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 bothorigin(Skemantix Gitea) andgithub-backup(GitHub mirror atdavidglidden/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.mdin chamber was a synthetic AI-generated summary placeholder — frontmatter declaredextraction_note: "Full extraction not feasible - conceptual summary provided". Real Ruder had never been ingested.neue_typography_tschichold.mdhadl→tOCR 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
grepfinding the chapter title at line 539); confirmed redundant.
- Plan migration: moved
conversion-skill-plan-2026-05-{16,17}.mdfromstudium-engine/docs/tochamber-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 atstudium-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. Installedonnxruntime 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 ispartially_validatedfor image-only PDFs with dense Swiss typography — the v3 plan's binaryvalidated|brokencategories 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 Nflag 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.mdwith 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_reconstructionvalidated,ocr_rapidocrpartially_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 inscss/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'sTableRecEncoderDecoderModelnot MPS-compatible → entire OCR pipeline runs on CPU when--force_ocris set. Per-step latency 1.4-500 sec; tool-reported ETA 17-88 hours. Aborted — Marker--force_ocris 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 atconverted_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>/(mirrorschamber-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:
3e18734typography reconverts (Ruder + Tschichold) + conversion infrastructure9ece60btrack load-bearing chamber additions and skill substrate (Tier 3 hygiene — 338 files including Hochuli + scripts + toolset-study that had been sitting in working tree)b5a71a1chore: .gitignore extension (mempalace.yaml + entities.json + _backups/ + scratch/)a7f213fremove 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)d53d76dremove stale tradition READMEs (8)91b52b9in-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-convertsymlinked; brew cask symlinked all 21 CLI tools includingebook-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.pycouldn't help (NCX had no chapter content to promote); Calibreebook-convertnormalization 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.pyas 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 listonly); 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: Calibremarkdown_outputrejected, 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-05to bothorigin(Skemantix Gitea) andgithub-backup(GitHub mirror atdavidglidden/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 atstudium-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
calibre9.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 pipelinelesson: 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
- Read
MEMORY.md— Active Session points at this file. - Read this session memory in full.
- Read
_curation/conversions/six-memos.notes.md— the impoverished-NCX case study; informs the Aesthetics approach if same pattern recurs. - Check the Aesthetics source EPUB at
~/Documents/___The Library [ePub_AWZ3]/The Library [ePub_AWZ3]/Theodor W. Adorno/Aesthetics (1260)/Aesthetics - Theodor W. Adorno.epubis still present (steward archives sources AFTER successful conversion). - Answer the literal question first: try Calibre
ebook-convertEPUB→EPUB on Aesthetics; pandoc the normalised version; compare heading count + shape. 5-min test. - 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. - 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.