diff --git a/claude/memory/MEMORY-reference.md b/claude/memory/MEMORY-reference.md
index fb81813..5f48342 100644
--- a/claude/memory/MEMORY-reference.md
+++ b/claude/memory/MEMORY-reference.md
@@ -5,7 +5,7 @@ metadata:
node_type: memory
type: reference
originSessionId: d1e67361-d1b9-4dac-a0c4-e7a0e26211c4
- modified: 2026-07-22T12:37:10.191Z
+ modified: 2026-07-24T08:49:17.702Z
---
# MEMORY — Reference layer (consult on demand)
@@ -29,6 +29,9 @@ Split out of [MEMORY.md](MEMORY.md) on 2026-07-06 to keep the wake-loaded index
# Archived sessions + stable reference layer (relocated verbatim from MEMORY.md, 2026-07-06)
+## Archived (2026-07-23 — REVIEWED-69 merged + v2.4.0 · character-as-image finding → PENDING-70 → v2.5.0 · glyph-mapping BUILT; demoted on promote at the 2026-07-24 wrap)
+- [Session 2026-07-23 — REVIEWED-69 merged + v2.4.0 · character-as-image finding → PENDING-70 ruling → v2.5.0 · glyph-mapping BUILT](session-2026-07-23-reviewed69-70-v2.4-v2.5-character-as-image-glyph-mapping.md) — A very long single session that ran the whole PENDING-69/70 arc to ground. **(1)** merged the boundary-drop mechanism to main + cut spec **v2.4.0** (REVIEWED-69; standalone MINOR bump — vehicle resolved by fact, nothing assembling; `f466ed0`). **(2) Prepping the Levi pilot surfaced a corpus-integrity finding:** the witness is silently DAMAGED — a 2026-06-16 image-drop MUTILATED char-bearing glyphs mid-word (Wstawać→Wstawa, Brașov→Braov, Oświęcim→Owicim), verified live, each confirmed by the passage's own gloss. Steward named the structural cause: **the whole canon predates the constitution + the fleet** → the extant witness is a pre-fleet conversion, not editorial gold; census = **13/248-backup files** carry mid-word glyph drops (Jung 18, Levi 18, Derrida, Zibaldone, Lichtenberg…), a confirmed floor. **(3)** drafted the legacy-body reframe as a jurist package (PENDING-70) → **RULED**: Q1/Q3/Q4 confirmed (Q1 corrects a defect in the one-door ruling's OWN wording; `witness_class`=positive attributed attestation), **Q2 accepted-in-principle but SUBSTITUTE CONDITION ruled** (my reframe dropped the JUDGMENT-COST test the condition existed for — enumerate demonstrable classes in advance · report judgment cost · legacy-witness-promotions-only) → **spec v2.5.0 landed** (`e37e076`). **(4) glyph-mapping BUILT + DEMONSTRATED** (`apply_char_glyphs.py`, the Q3 hard precondition; `3852d46`; fleet 216→**222**): letter-adjacent glyph `
`→declared SOURCE Unicode, REFUSES unclassified (attest-never-default); VIEWED the 4 source glyphs (ca=ć, as=**ş cedilla** steward-confirmed NOT comma-below ș, s=ś, e=ę); demonstrated on the real 527-doc Levi EPUB (substituted=9, unclassified=0 corpus-wide, survives pandoc end-to-end). **PULLING THREAD: the Levi second pilot ITSELF (step 3) — now unblocked, the gate before the 47-file verbatim-fidelity-restoration wave.** First move = derive + interior-verify the 14 witness brackets (La Chute lesson) → run the full lane (`convert_lane_borndigital.py … the-complete-works-of-primo-levi-primo-levi`) → 14 per-work comparisons + **JUDGMENT-COST reporting** (the substitute Q2 condition). **LITERAL Q: when the Levi pilot runs (14 works, ~18 mutilation sites now repaired), does the judgment cost stay tractable, or explode when the easy mechanical patterns run out (the jurist's actual worry)? + do the 14 brackets interior-verify cleanly at omnibus scale?** ⚠ origin (Gitea) 2 commits behind (`5d61f2d`,`3852d46`) — retry when it recovers. Read the session file at wake.
+
## Archived (2026-07-22 — PENDING-69 boundary-drop mechanism drafted→ruled→BUILT + /model-handoff; demoted on promote at the 2026-07-23 wrap)
- [Session 2026-07-22 — PENDING-69 boundary-drop mechanism drafted→ruled→BUILT (Q7 capstone passed) · /model-handoff](session-2026-07-22-pending69-boundary-drop-mechanism-built-model-handoff.md) — The whole PENDING-69 arc in one remote session (steward in Salzburg, machine at home): package DRAFTED reading the gate's code FIRST (literal-q honored — the gate classifies boundary runs by POSITION+SIZE only, provably CANNOT confirm class identity → REVIEW stops, no channel for the human id) → **RULING PASSED with corrections, Q2 OVERTURNED my lean to (b) vocabulary-only** (a privileged "spec-class" = **trust-by-name**; `trim.drop` is a label vocabulary, every run per-file attested) → **mechanism BUILT test-first** on branch `reviewed-69-boundary-drop-resolution` @ `21e3499` (NOT main): `resolve_review` + additive `boundary_run_sig` (ratified verdict logic UNCHANGED, seed re-confirmed) + `boundary_drops` declared data + `_resolve_boundary_review` thin consumer; fleet 214→216; **Q7 CAPSTONE PASSED on the REAL Eichmann** (verdict=REVIEW, interior_loss=0, **8 boundary runs** = 3 front-matter + 5 index → mechanical PASS; both negatives refuse). Then **`/model-handoff` BUILT** (authorized ⚖ Stroke 3). Honored "nothing lands on main without your confirmation" — branched, did NOT push. Substrate lesson: the k-gram aligner is **MOVE-BLIND** → boundary runs are DROPS, `relocation` the rare reordered case (corrected my own package framing). Q5 added-side exclusion scoped OUT (conservative). **PULLING THREAD: the Levi curation-bearing SECOND PILOT — the last gate before the 47-file wave; BLOCKED on the steward's 3 actions (2026-07-23 pm): place REVIEWED-69 · merge `21e3499`→main+push · vehicle-call the ONE constitutional §Tiering&Fence sentence (drafted). LITERAL Q: when the Levi omnibus (14 works, hand-curated) runs the one-door lane, do its curation-bearing divergences classify tractably (fidelity-restoring vs source-departing — the JUDGMENT cases Eichmann exercised 0×), or does a real case resist? + is the mechanism's SILENCE on inter-work (interior) drops genuinely correct at multi-work scale, or does an inter-work drop hide a real loss? Read the Q6 ruling + `promotion.witness`/`witness_comparison` declared data FIRST.** Read the session file at wake.
diff --git a/claude/memory/MEMORY.md b/claude/memory/MEMORY.md
index d449cf0..532e9df 100644
--- a/claude/memory/MEMORY.md
+++ b/claude/memory/MEMORY.md
@@ -6,7 +6,7 @@ metadata:
type: note
permalink: claude-memory/memory
originSessionId: 22915403-bc5d-4796-9c7d-196b7c30d2f9
- modified: 2026-07-23T19:25:00.272Z
+ modified: 2026-07-24T08:50:04.866Z
permalink: claude-memory/memory
---
@@ -14,6 +14,7 @@ permalink: claude-memory/memory
## Standing preferences
- [CapableHands standing authorization](reference-capablehands-standing-authorization.md) — M4 mini david@10.0.1.136 durably authorized for remote OCR/inference; don't re-ask permission to use it (steward 2026-07-01).
+- [Every canon doc's source lives in Chamber Sources](feedback-resolve-source-through-chamber-sources.md) — a canonical's source = whatever `resolve_archived_source` returns (the **Chamber Sources** folder; NEVER the master library or a path in a plan/doc/frontmatter); read the banked source record before calling a mismatch a defect; fix wrong/missing pins to golden standard. (Steward, 2026-07-24, after 3 corrections on the Levi omnibus source.)
- [Governance files are dotfiles symlinks](reference-governance-files-are-dotfiles-symlinks.md) — `~/PENDING.md`/`~/REVIEWED.md`/`~/CLAUDE.md` → `~/dotfiles/…`; Edit/Write refuse to write through a symlink, so **edit the real dotfiles path** when appending PENDING/REVIEWED.
- [Typography palace — query via CLI](reference-typography-palace-cli.md) — type masters (~20-21 sources) in a dedicated MemPalace at `~/.mempalace/palace-chamber-typography`; query `mempalace --palace search "…"` (CLI). For ARC typography — don't re-ask where it lives.
- [Fowler's rules for quotation](feedback_fowlers_rules_quotation.md) — single quotes primary, double for nested, logical British punctuation order. Apply across all writing.
@@ -56,7 +57,7 @@ permalink: claude-memory/memory
- [Be (laundromat)](project-be-laundromat.md) — canonical Be tracker (est. 2026-06-08). Be = Skemantix startup (Seb+David) funding CapableMind's ladder; **bridge, not venture**. Decisions LOCKED (entity/pricing/infra in file); a11y gate MERGED. **Pre-revenue WTP gate = renovate Pat → charge her; discipline: no new spec until it clears → nothing for executor on be.** Repo @ `f43a0fd`.
## Active Session
-- [Session 2026-07-23 — REVIEWED-69 merged + v2.4.0 · character-as-image finding → PENDING-70 ruling → v2.5.0 · glyph-mapping BUILT](session-2026-07-23-reviewed69-70-v2.4-v2.5-character-as-image-glyph-mapping.md) — A very long single session that ran the whole PENDING-69/70 arc to ground. **(1)** merged the boundary-drop mechanism to main + cut spec **v2.4.0** (REVIEWED-69; standalone MINOR bump — vehicle resolved by fact, nothing assembling; `f466ed0`). **(2) Prepping the Levi pilot surfaced a corpus-integrity finding:** the witness is silently DAMAGED — a 2026-06-16 image-drop MUTILATED char-bearing glyphs mid-word (Wstawać→Wstawa, Brașov→Braov, Oświęcim→Owicim), verified live, each confirmed by the passage's own gloss. Steward named the structural cause: **the whole canon predates the constitution + the fleet** → the extant witness is a pre-fleet conversion, not editorial gold; census = **13/248-backup files** carry mid-word glyph drops (Jung 18, Levi 18, Derrida, Zibaldone, Lichtenberg…), a confirmed floor. **(3)** drafted the legacy-body reframe as a jurist package (PENDING-70) → **RULED**: Q1/Q3/Q4 confirmed (Q1 corrects a defect in the one-door ruling's OWN wording; `witness_class`=positive attributed attestation), **Q2 accepted-in-principle but SUBSTITUTE CONDITION ruled** (my reframe dropped the JUDGMENT-COST test the condition existed for — enumerate demonstrable classes in advance · report judgment cost · legacy-witness-promotions-only) → **spec v2.5.0 landed** (`e37e076`). **(4) glyph-mapping BUILT + DEMONSTRATED** (`apply_char_glyphs.py`, the Q3 hard precondition; `3852d46`; fleet 216→**222**): letter-adjacent glyph `
`→declared SOURCE Unicode, REFUSES unclassified (attest-never-default); VIEWED the 4 source glyphs (ca=ć, as=**ş cedilla** steward-confirmed NOT comma-below ș, s=ś, e=ę); demonstrated on the real 527-doc Levi EPUB (substituted=9, unclassified=0 corpus-wide, survives pandoc end-to-end). **PULLING THREAD: the Levi second pilot ITSELF (step 3) — now unblocked, the gate before the 47-file verbatim-fidelity-restoration wave.** First move = derive + interior-verify the 14 witness brackets (La Chute lesson) → run the full lane (`convert_lane_borndigital.py … the-complete-works-of-primo-levi-primo-levi`) → 14 per-work comparisons + **JUDGMENT-COST reporting** (the substitute Q2 condition). **LITERAL Q: when the Levi pilot runs (14 works, ~18 mutilation sites now repaired), does the judgment cost stay tractable, or explode when the easy mechanical patterns run out (the jurist's actual worry)? + do the 14 brackets interior-verify cleanly at omnibus scale?** ⚠ origin (Gitea) 2 commits behind (`5d61f2d`,`3852d46`) — retry when it recovers. Read the session file at wake.
+- [Session 2026-07-24 — chamber-sources problem CLOSED (omnibus re-sourced + 13 gaps filled + invariant in protocol) · Silva named · Warde OCR on M4 · WAKE INTO the 14-bracket verify](session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md) — Set out for the Levi 14-bracket verify (today's chosen bite); a source-lookup exposed the omnibus witness was **mis-sourced** — pinned to a byte-identical copy of the wrong *Drowned-and-the-Saved* PDF (sha `9c898202`), not the Complete Works. Steward chose to **close the whole chamber-sources problem PERMANENTLY first.** **(1)** Re-sourced the omnibus → the correct Complete Works EPUB (`~/fix-levi-omnibus.py`, steward ran; sha `1be71a50`, 527 spine/14-work TOC); DTS untouched. **(2)** Census (1,297 canonicals: 344 pinned · 940 Loeb-compound · 13 unsourced) → **located + archived ALL 13** (`~/archive-13-sources.py`; sources across master library + `__Making sequence sources` [Mumford OCR] + `__Chamber Source EPUBs` + Downloads [steward placed Bachelard-FR/Jaccottet-Airs/Unesco]; edition calls Warde=77KB · RedBook=Reader's-Ed · Moby=B&N-Classics) → **0 non-Loeb gaps.** **(3)** Landed the invariant into chamber `CLAUDE.md` (source = `resolve_archived_source` from Chamber Sources, NEVER a plan/doc path) + [[feedback-resolve-source-through-chamber-sources]] — the durable fix for the "recurring corrections on details" the steward named after **3 corrections** (I trusted the plan path, re-derived a settled state as a defect, over-corrected to "leave it"). **(4)** Byte-dupes: live library = **0** (July-1 pass complete); steward emptied the 935MB `_trash/dedupe-20260701` quarantine. **(5)** Named the consolidation reservoir **Silva** (`~/Documents/Silva/`; = EVERYTHING, Chamber Sources = deliberate immutable canon-source duplicates); book/non-book classifier demonstrated. **(6)** Launched **Warde's OCR on the M4** (`olmocr_mlx.py`, monitor `bi7h2cmcu`). **PULLING THREAD (steward-set): wake into the ORIGINAL plan — the Levi 14-bracket verify, now WARM** (reconnaissance banked at `chamber-library/_curation/levi-second-pilot-2026-07-23/witness-bracket-derivation-WIP-2026-07-24.md`; start at step 1 = pull each work's opening text from the EPUB spine, locate in the witness, interior-verify per La Chute). Silva deferred to LAST; Warde auto-continues. **LITERAL Q: do the 14 witness brackets interior-verify cleanly, or does one resist (La Chute at omnibus scale)? + has Warde's OCR landed on the M4 (check `bi7h2cmcu` / the log)?** Read the session file + the WIP note at wake.
## Historical reference → MEMORY-reference.md
Older archived-session pointers and the stable reference layer (steward profile · project-state detail · L1/L2/Chamber inventories · legacy pending-work · reference-file list) live in [MEMORY-reference.md](MEMORY-reference.md) — consult on demand; not loaded at wake. Recent cross-session trajectory comes from the Active Session entry above + the recent `session-*.md` files (wake §2.b.1; the MemPalace `handoffs` glance was retired 2026-07-07 with the wind-down).
diff --git a/claude/memory/feedback-resolve-source-through-chamber-sources.md b/claude/memory/feedback-resolve-source-through-chamber-sources.md
new file mode 100644
index 0000000..1be46d0
--- /dev/null
+++ b/claude/memory/feedback-resolve-source-through-chamber-sources.md
@@ -0,0 +1,15 @@
+---
+name: resolve-source-through-chamber-sources
+description: "Every canonical document in the Chamber Library has its source in the Chamber Sources folder — resolve via resolve_archived_source, never trust a path in a plan/doc/frontmatter; read the banked source record before calling a mismatch a defect; fix wrong/missing pins to golden standard."
+metadata:
+ node_type: memory
+ type: feedback
+ originSessionId: e2a6db77-92c3-4a75-9e29-5608cece99b9
+ modified: 2026-07-24T07:15:03.105Z
+---
+
+**The invariant (steward, stated repeatedly on 2026-07-24 — "all I want is that everything is clear"):** every canon document in the Chamber Library has its source in the **Chamber Sources** folder (`~/Library/Mobile Documents/com~apple~CloudDocs/Chamber Sources`). The authoritative source of a canonical is whatever `archive_sources.resolve_archived_source(slug)` returns from there. A path written in a plan §, a doc, or frontmatter `source:` prose is a RECORD, not the substrate; the master ebook library (`~/Documents/___The Library [ePub_AWZ3]`) is NEVER a source of record.
+
+**Why:** 2026-07-24 I needed THREE steward corrections on one detail (the Levi omnibus source): (1) used the plan's master-library path instead of resolving via the tool; (2) re-derived a mis-archived pin as a fresh "defect" without reading the banked source decision; (3) then over-corrected to "leave it." All three dissolve under the invariant plus the frame that the corpus is a **pre-constitution / pre-fleet legacy body** whose provenance records are themselves being brought to trustworthiness — a wrong or missing pin is to be FIXED (archive the correct source INTO Chamber Sources), not explained away.
+
+**How to apply:** before touching any canonical's source — (1) resolve via `resolve_archived_source`; (2) if it looks wrong/missing, read the banked record ([[project-making-sequence-source-set]] for Making/Levi; `chamber-library/_curation/chamber-source-link.md`) BEFORE judging; (3) if it IS wrong/missing, golden-standard remediation = archive the correct source into Chamber Sources via the governed `archive_sources.py`, reversibly (back up the manifest; the tool refuses a re-point by design, so a deliberate unpin + `add_single` is the steward-authorized path). Kin to [[feedback-resurface-banked-notes-before-rederiving]] and the inherited-marker / assert-from-derivation drifts.
diff --git a/claude/memory/knowledge-graph.jsonl b/claude/memory/knowledge-graph.jsonl
index 4ff1bc9..b79e881 100644
--- a/claude/memory/knowledge-graph.jsonl
+++ b/claude/memory/knowledge-graph.jsonl
@@ -426,3 +426,6 @@
{"subject": "chamber-library-specification", "predicate": "operative-version", "object": "v2.4.0", "valid_from": "2026-07-23", "valid_to": "2026-07-23", "confidence": 1.0, "source_file": "session-2026-07-23-reviewed69-70-v2.4-v2.5-character-as-image-glyph-mapping.md", "extracted_at": "2026-07-23"}
{"subject": "chamber-library-specification", "predicate": "operative-version", "object": "v2.5.0 — lands the PENDING-70 ruling (REVIEWED-70): Q1 witness-comparison claim-scope split (curated vs legacy) · Q3 §V Tier-3 alteration-by-omission (character-bearing images are content) · Q4 legacy-fidelity-not-self-certifiable; declared data = reframed scale_application substitute condition + witness_class + character_as_image glyph-map/census", "valid_from": "2026-07-23", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-23-reviewed69-70-v2.4-v2.5-character-as-image-glyph-mapping.md", "extracted_at": "2026-07-23"}
{"subject": "character-as-image-hazard", "predicate": "remedy-mechanism", "object": "chamber-library/scripts/apply_char_glyphs.py (REVIEWED-70/v2.5.0) — letter-adjacent glyph
-> declared SOURCE Unicode; REFUSES unclassified (attest-never-default); wired into convert_lane_borndigital.py as the Q3 hard precondition (an imaged source without a complete policy is refused). Levi glyph-map DEMONSTRATED; per-source maps owed for the other 12 census-flagged files", "valid_from": "2026-07-23", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-23-reviewed69-70-v2.4-v2.5-character-as-image-glyph-mapping.md", "extracted_at": "2026-07-23"}
+{"subject": "claude-code", "predicate": "drift-pattern", "object": "source-from-plan-not-resolved-through-substrate — used plan §3's written source PATH (master library) instead of resolving via resolve_archived_source; then re-derived the resulting mis-pin as a FRESH defect without reading the banked Making-source record; then over-corrected to 'don't re-open' when the steward wanted it FIXED. Steward corrected 3× + named the meta-pattern ('recurring corrections on details'). Recurrence of resurface-banked-notes + assert-from-derivation at the source-provenance layer. Antidote LANDED: chamber CLAUDE.md invariant + feedback-resolve-source-through-chamber-sources.", "valid_from": "2026-07-24", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md", "extracted_at": "2026-07-24"}
+{"subject": "the-complete-works-of-primo-levi-primo-levi", "predicate": "chamber-source", "object": "Complete Works EPUB (sha 1be71a50, 527 spine/14 works) in Chamber Sources — RE-SOURCED 2026-07-24 from the wrong Drowned-and-Saved PDF pin (sha 9c898202)", "valid_from": "2026-07-24", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md", "extracted_at": "2026-07-24"}
+{"subject": "chamber-library", "predicate": "invariant", "object": "every non-Loeb canonical has its source in Chamber Sources (0 gaps 2026-07-24, 13 closed); Loeb from the loeb-dsl compound artifact; invariant now in chamber CLAUDE.md. Silva (~/Documents/Silva/) = complete browse-reservoir (deferred build); Chamber Sources = immutable canon-source duplicates.", "valid_from": "2026-07-24", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md", "extracted_at": "2026-07-24"}
diff --git a/claude/memory/project-source-library-link-and-dedupe.md b/claude/memory/project-source-library-link-and-dedupe.md
index 42c02e9..10050b4 100644
--- a/claude/memory/project-source-library-link-and-dedupe.md
+++ b/claude/memory/project-source-library-link-and-dedupe.md
@@ -5,6 +5,7 @@ metadata:
node_type: memory
type: project
originSessionId: 604b3d1d-6111-48f2-9683-2dfba02d5b6b
+ modified: 2026-07-24T08:44:06.397Z
---
**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/`), `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.
@@ -18,3 +19,12 @@ metadata:
**CANONICAL PROVENANCE ARCHIVE ESTABLISHED (2026-07-02):** the *destination* for confirmed source originals is now decided — **`iCloud Drive / Chamber Sources/`** (`~/Library/Mobile Documents/com~apple~CloudDocs/Chamber Sources/`). Steward-authorized. OUTSIDE the repo (text-only), iCloud = local+cloud, 2TB plan (storage no constraint). Layout = **flat + `MANIFEST.md`** (the archive's self-describing index: filename→sha256→graduated chamber text→edition notes). Filenames key to the graduated slug. ⚠ **Must be pinned "Keep Downloaded" in Finder** — iCloud "Optimize Storage" silently evicts to dataless stubs otherwise (found a live dataless file on Desktop; that's why NOT the Desktop surface). First intake: Jonas (2 scans: IA-color-360dpi = provenance-of-record; bitonal-600dpi = hi-res verify backup), Vico epub (Marsh/Grafton), Heidegger pdf (Hofstadter/Harper). The in-repo per-text sidecar (spec §VI `source_sha256`) stays DEFERRED per PENDING-42 §VI; MANIFEST.md is the interim index; reconcile with `_curation/chamber-source-link.md` later. The 25GB master library folds in here per the link+dedupe pass. **Heidegger repair candidate:** graduated .md title garbled "Poetry, 'bonbuoD Thought" (="Language") — clean source now archived to verify/repair.
**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.
+
+**THE FULL SEQUENCE (steward-restated 2026-07-24 — the ordering is load-bearing):** (1) **Chamber Sources must hold the source original of EVERY canon document** — the invariant [[feedback-resolve-source-through-chamber-sources]]. (2) **ONLY once we are SURE Chamber Sources holds all originals** do we dedupe the messy master library against it. (3) Whatever files REMAIN in the messy folder after dedupe are **evaluated for eventual admission to the Chamber Library**. So the source-completeness invariant is the *precondition* for the dedupe, which is the *precondition* for the admission triage. Do them in that order.
+
+**PHASE ALIGNMENT + DECISIONS (2026-07-24) — maps onto `library-consolidation-plan-2026-06-30.md`:**
+- **Phase 2 "build Chamber Originals" = DONE today** (Chamber Sources holds every non-Loeb original + Loeb compound; the source-completeness work above).
+- **Phase 1 dedupe: live library = 0 byte-identical dupes** (July-1 pass was complete; re-ran `index_library.py`→`propose_library_dedupe.py` filtered to live/non-`_trash` = 0 Tier-A; Tier B 20 review · Tier C 206 flag-only kept). The July-1 quarantine `_trash/dedupe-20260701/` = **115 files / 935 MB**, op-record verified byte-identical, each keeper live → **steward emptying it** (`mv … ~/.Trash/`) = the "remove clear byte-dupes" step.
+- **Phase 3 "build the Library" = the SILVA consolidation (NEXT concentrated bite, NOT rushed).** Target folder **`~/Documents/Silva/`** (steward-chosen name — Latin *silva*, a woodland of sources to draw timber from; most never canon; deliberately NOT "Chamber"/"canon"). **Books only** — classify-first: `.epub/.azw3/.mobi` = books wholesale; PDFs triaged by page-count + size + junk-name patterns (demonstrated on the 528 Desktop+Downloads scatter → 136 book / 320 non-book [tax forms, birth certs, IMSLP scores — LEAVE in place] / 72 eyeball; refine with music-score + work-doc patterns — Beethoven-manuscript/AldineXXI-spec slipped into BOOK by page-count). Chamber Sources stays separate as the immutable archive. Method: build a Phase-3 dry-run move-map (author-organized, flatten the nested `The Library [ePub_AWZ3]/The Library [ePub_AWZ3]/`, collision+dedup handling, count-reconciliation) → steward cuts → reversible moves. **RESOLVED design decision (steward 2026-07-24): SILVA = EVERYTHING** — the complete reservoir of ALL source books, no subtraction. **Chamber Sources = the explicit, immutable duplicate copies of (only) the chamber canon's sources** (the ~348 overlap is INTENTIONAL — a deliberate sha-locked archive duplicate of what became canon, separate from the browse-reservoir). So Silva never reasons about "is this already archived"; it holds it all, and Chamber Sources stays the untouched provenance archive. (Supersedes the plan's original "Library = remainder MINUS Chamber Originals".) No consolidation tool exists yet (scripts/ has none) — build it at the Silva bite.
+
+**CENSUS 2026-07-24 (read-only, `resolve_archived_source` over all `canonical_texts/**/*.md`):** 1,297 canonicals · **344 pinned** (source entry in Chamber Sources, all materialized) · **940 loeb-*** (sourced from the compound `loeb-dsl-537-volumes.dsl` artifact already in Chamber Sources — the ORIGINAL is held; per-work attach entries are created as each graduates through the one-door, so NOT a missing-original gap) · **13 non-Loeb GENUINELY unsourced** = the real gap to close for the invariant: `mla-9th-ed`, `unesco-2nd-ed`, `warde-crystal-goblet`, `la-citadelle-interieure-hadot`, `the-book-before-printing-diringer`, `technics-and-human-development-mumford`, `the-pentagon-of-power-mumford`, `la-philosophie-comme-maniere-de-vivre-hadot`, `la-poe-tique-de-la-re-verie`, `the-red-book`, `moby-dick`, `the-dispossessed-leguin`, `airs`. (Was 14 — the Levi omnibus mis-pin was fixed this session: re-pinned to the Complete Works EPUB, sha `1be71a50`.)
diff --git a/claude/memory/session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md b/claude/memory/session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md
new file mode 100644
index 0000000..2a59004
--- /dev/null
+++ b/claude/memory/session-2026-07-24-chamber-sources-closure-13-sources-silva-warde.md
@@ -0,0 +1,53 @@
+---
+name: session-2026-07-24-morning-chamber-sources-problem-closed-omnibus-re-sourced-13-gaps-filled-invariant-in-protocol-silva-named-warde-ocr-on-m4-wake-into-the-levi-14-bracket-verify
+description: "Set out to do the Levi 14-bracket verify (the original plan) but a source-lookup for it surfaced that the omnibus witness was mis-sourced (pinned to the wrong Drowned-and-Saved PDF); the steward chose to close the whole chamber-sources problem PERMANENTLY first — re-sourced the omnibus to the correct EPUB, filled all 13 non-Loeb source gaps, landed the 'source lives in Chamber Sources' invariant into chamber CLAUDE.md, purged 935MB of byte-identical dupes, named the consolidation reservoir 'Silva', and launched Warde's OCR on the M4. PULLING THREAD (steward-set): wake into the 14-bracket verify — now warm (WIP note banked) and standing on correctly-sourced ground."
+metadata:
+ node_type: memory
+ type: project
+ originSessionId: e2a6db77-92c3-4a75-9e29-5608cece99b9
+ modified: 2026-07-24T08:47:49.562Z
+---
+
+# Session 2026-07-24 — the chamber-sources detour that was worth taking
+
+Began as `/wake-up` → the steward chose today's bite = the **Levi 14-bracket verify** (step 3's first move for the second pilot). But pulling the witness's source to bracket it exposed a provenance defect, and the steward redirected: *close the chamber-sources problem permanently first, so we never land here again.* That detour ran the whole session. The bracket verify itself was NOT done — but it is now **warm** and on correct ground. **The steward explicitly wants to wake into the bracket verify** ("we wake into the original plan").
+
+## PAST — what happened + why
+
+**The trigger.** Deriving the 14 witness brackets needs the source EPUB. I used plan §3's path (the *master library*) → steward corrected ("that is not the chamber source epub directory"). Resolving via the governed `resolve_archived_source` surfaced: the **Levi omnibus canonical was pinned to the WRONG source** — a byte-identical copy of the standalone *Drowned and the Saved* PDF (sha `9c898202`, 202pp), not the Complete Works. A legacy mis-archive from the Making-sequence work.
+
+**My drift (steward corrected 3×, now banked).** (1) trusted the plan's written path instead of resolving via the tool [inherited-marker]; (2) re-derived the mis-pin as a fresh "defect" without reading the banked Making-source record [resurface-banked-notes]; (3) over-corrected to "don't re-open" — WRONG, the steward wanted it FIXED. The steward named the meta-pattern ("I often have to correct you on details") → durable fix landed (below).
+
+**What we did (the chamber-sources problem, CLOSED):**
+1. **Re-sourced the omnibus** — `~/fix-levi-omnibus.py` (steward ran; classifier blocked me from the manifest mutation): unpinned the wrong DTS-PDF, moved the orphan reversibly, archived the content-verified Complete Works EPUB (sha `1be71a50`, 527 spine / 14-work TOC) via governed `add_single`. DTS entry untouched.
+2. **Closed all 13 non-Loeb source gaps** — census found 1,297 canonicals: 344 pinned · 940 Loeb (compound `loeb.dsl`, held) · **13 genuinely unsourced**. Located ALL 13 (master library + `~/__Making sequence sources/` [Mumford OCR scans] + `~/Documents/__Chamber Source EPUBs/` [prior slug-named staging] + `~/Downloads/` [steward placed Bachelard-FR, Jaccottet-Airs, Unesco]). Edition calls: Warde=77KB short-text PDF · Red Book=Reader's Edition EPUB · Moby-Dick=**B&N Classics** (rejected Schwartz=adaptation, Penguin=enriched-cruft). `~/archive-13-sources.py` (steward ran) → 13/13 archived; re-census confirms **0 non-Loeb gaps**.
+3. **Landed the invariant into the protocol** — chamber `CLAUDE.md` Load-bearing disciplines: *a canonical's source is whatever `resolve_archived_source` returns from Chamber Sources; a plan/doc path is not authoritative; read the banked record before calling a mismatch a defect.* Plus feedback memory `feedback-resolve-source-through-chamber-sources.md`. This is why we won't return here.
+4. **Purged byte-identical dupes** — re-ran `index_library.py`→`propose_library_dedupe.py` (filtered to live/non-`_trash`): **live library = 0 byte-dupes** (July-1 pass was complete). The `_trash/dedupe-20260701/` quarantine (115 files/935MB) — **steward emptied it to Trash**.
+5. **Named the consolidation reservoir 'Silva'** (`~/Documents/Silva/`) — the complete pile of ALL source books; **decision: Silva = EVERYTHING, Chamber Sources = deliberate immutable duplicate copies of only the canon's sources** (~348 overlap intentional). Book/non-book PDF classifier demonstrated on the 528 Desktop+Downloads scatter (136 book/320 non-book/72 eyeball).
+6. **Launched Warde's OCR on the M4** — `olmocr_mlx.py` (the proven MLX path; M4 already set up, Levi-proof), background, `~/capablehands/scratch/warde-essays-olmocr.md`, monitor `bi7h2cmcu`.
+
+**Decisions NOT made (deliberate):**
+- **Did NOT do the bracket verify** — the whole point of the detour was to give it correct ground first; the steward set it as the wake priority.
+- **Did NOT build the Silva consolidation** (Phase 3) — a ~2,500-file move-map is a task that needs dwelling, not a marathon-tail cram; deferred to its own concentrated bite AFTER the bracket verify. Design decision pre-made (Silva=everything).
+- **Did NOT commit the chamber-library changes** — CLAUDE.md discipline + WIP note + regenerated indexes are on disk (survive the clear); left for the steward's repo process.
+
+## PRESENT — the mood
+
+The steward was right that we strayed far, and right that it was worth it: the chamber-sources problem is now closed *structurally* (invariant in the protocol, not just fixed once) — a substrate-trustworthiness win the whole corpus needed before the pilot's fresh conversion could be trusted. The recurring corrections stung but produced the durable fix. The craftsman's restraint at the end (banking Silva rather than cramming it) was the right call — the prime directive's "don't rush what needs dwelling" applied to my own pacing. `check-for-existing-tooling-first` earned its keep twice (nearly reinvented the dedupe; the governed `propose_library_dedupe` already existed + a June-30 plan). The verify-the-substrate disciplines held (content-verified every source by title/edition, not filename; caught the Mumford false-hit "Technics and civilization" ≠ "Technics and Human Development").
+
+## FUTURE — what is pulling
+
+**PULLING THREAD (steward-set): the Levi 14-bracket verify — the original plan for today.** Now WARM and on correctly-sourced ground.
+
+**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):** Read `chamber-library/_curation/levi-second-pilot-2026-07-23/witness-bracket-derivation-WIP-2026-07-24.md` FIRST — it banks the full reconnaissance so you don't re-derive it (witness sha `c73fc063`, 32,998 lines; source EPUB now in Chamber Sources sha `1be71a50`; THE key finding = calibre flattened the work-body headers so brackets need EPUB-spine cross-ref NOT title-grep; the 14-work spine navMap; every verified witness landmark). **Start at "What's LEFT" step 1:** for each of the 14 works, pull the first spine file's opening body text from the EPUB (skip the image-only `NNN_part-N.xhtml` title stubs → go to the first content sub-file), grep it in the witness body → the work START line; then END = the work's last afterword/appendix; then **interior-verify** each bracket (La Chute lesson). Lands nothing.
+
+**Other horizons (ranked, deferred with reason):**
+- **Warde graduation** — auto-continues when OCR lands (monitor `bi7h2cmcu`, or check `~/capablehands/scratch/warde-olmocr.log` for `[olmocr_mlx] DONE`): retrieve → clean → verify_conversion → graduate → catalogue → sidecar → new typography canonical (DISTINCT slug from the short-text `warde-crystal-goblet`). Independent of the bracket priority.
+- **Silva consolidation** (Phase 3) — the "cleanup work" to return to LAST, after the bracket verify settles. Named, decided (=everything), method recorded in [[source-library-link-to-chamber-dedupe-steward-goal]]; build the move-map tool then.
+- origin (Gitea) still 2 behind (`5d61f2d`,`3852d46`); chamber-library working changes uncommitted.
+
+**PAUSE STATEMENT:** I am about to be cleared and to wake into the original plan. Warde keeps OCR'ing on the M4 while we're away. What I want to find still pulling: **the Levi 14-bracket verify as the live next step — warm, on correctly-sourced ground, its reconnaissance banked so the first move is step 1, not a cold re-derivation.**
+
+**LITERAL QUESTION for next-Claude:** When you derive + interior-verify the 14 witness brackets — do they interior-verify cleanly against the source spine, or does one resist (the La Chute lesson at omnibus scale: a bracket agreeing at both ends yet holding a different work inside)? And has Warde's OCR landed on the M4 (check `bi7h2cmcu` / the log)?
+
+**State at wrap:** chamber-library main @ `3852d46` (uncommitted working changes: CLAUDE.md discipline, WIP note, regenerated library indexes/proposals) · Chamber Sources = 348 entries (invariant holds for every non-Loeb canonical) · byte-dupes purged · Silva named + designed, not built · Warde OCR running. Ledger: `session-ledger-2026-07-24.md`.
diff --git a/claude/memory/session-ledger-2026-07-24.md b/claude/memory/session-ledger-2026-07-24.md
new file mode 100644
index 0000000..8b4c88f
--- /dev/null
+++ b/claude/memory/session-ledger-2026-07-24.md
@@ -0,0 +1,47 @@
+---
+name: session-ledger-2026-07-24
+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: e2a6db77-92c3-4a75-9e29-5608cece99b9
+ modified: 2026-07-24T08:42:48.340Z
+---
+
+# Session Ledger — 2026-07-24
+
+## Returns
+- 2026-07-24T09:20 CEST — **[3 steward corrections on one detail → banked as a rule]** The Levi omnibus canonical was mis-sourced in Chamber Sources (pinned to a byte-identical copy of the standalone DTS PDF, sha `9c898202` — a legacy mis-archive from the Making-sequence work). I compounded it with THREE root misses, each steward-corrected: **(1)** trusted the plan §3 source PATH (master library) instead of resolving via `resolve_archived_source` [inherited-marker / assert-from-derivation]; **(2)** re-derived the DTS-PDF state as a fresh defect without reading the banked Making-source record [resurface-banked-notes]; **(3)** then over-corrected to "don't re-open" — WRONG: the steward wanted it FIXED. The omnibus is a valued Library canonical whose OWN source was never archived; the settled DTS choice was ONLY about the Making-sequence DTS need (omnibus excerpt not complete enough → standalone PDF), never the omnibus's own sourcing. Steward frame (yesterday's, restated): the whole corpus was converted **pre-constitution / pre-fleet** → provenance records are legacy artifacts to bring to trustworthiness, not to trust. **RESOLVED** (steward ran `~/fix-levi-omnibus.py`): `resolve_archived_source(omnibus)` now → the Complete Works EPUB (sha `1be71a50`, 5.8 MB) IN Chamber Sources; DTS untouched. Banked → [[feedback-resolve-source-through-chamber-sources]]. Steward named the meta-pattern (recurring corrections on details) → protocol clarification proposed.
+
+## Open horizons
+- 2026-07-24T08:36 CEST — Woke into the **Levi second pilot** thread (step 3, now unblocked). Thread validity: CONFIRMED (nothing moved overnight; chamber still @ `3852d46`). Lean for today's single bite: **derive + interior-verify the 14 witness brackets** against the source EPUB spine (the La Chute lesson) — bounded, gates everything downstream, directly answers the paired sub-question. The full lane + judgment-cost reporting is the bite *after*.
+- Standing horizons: Gitea push retry (origin still [ahead 2]) · per-source glyph-maps for the other 12 census files · 47-file wave (gated behind pilot) · **authorized housekeeping: PENDING.md 339KB + skill-harvest register 617 lines both exceed read caps** (fresh-session slot; today qualifies).
+
+## Progress — source-completeness bite (steward-chosen today)
+- 2026-07-24 — Census: 1,297 canonicals; 344 pinned · 940 Loeb (compound `loeb.dsl` source, held) · **13 non-Loeb genuinely unsourced**. Located ALL 13 across master library + `~/__Making sequence sources/` (Mumford OCR scans) + `~/Documents/__Chamber Source EPUBs/` (prior slug-named staging) + `~/Downloads/` (steward placed Bachelard-FR, Jaccottet Airs, Unesco ENG this session). Edition calls: Warde=77KB short-text PDF (essay-collection 6.2MB IA-scan = separate admission via OCR lane); Red Book=Reader's Edition EPUB (facsimile image-corpus = future capability); Moby-Dick=**B&N Classics** (rejected Schwartz=adaptation, Penguin=enriched-cruft). Archive script `~/archive-13-sources.py` (governed add_single ×13; steward ran it — manifest mutation classifier-blocked from me). **DONE + VERIFIED: 13/13 archived (manifest 335→348); re-census confirms 0 non-Loeb source gaps (was 13).** Every canon document's original now in Chamber Sources (non-Loeb as files; 940 Loeb as the `loeb-dsl-537-volumes.dsl` compound artifact) → **dedupe precondition MET.** Tracker updated: [[source-library-link-to-chamber-dedupe-steward-goal]]. Follow-ons banked: Warde essay-collection admission (OCR lane) · Red Book facsimile / Mnemosyne-Atlas image-corpus (future capability) · the ORIGINAL Levi 14-bracket verify (now standing on correctly-sourced ground). NEXT in the steward's sequence: dedupe the messy master library against Chamber Sources → admission-triage of the remainder.
+
+## Three follow-on tasks (steward-directed, tail of session)
+- **Protocol clarification LANDED** — chamber `CLAUDE.md` Load-bearing disciplines: source = `resolve_archived_source` from Chamber Sources; plan/doc path not authoritative; read banked record before calling a mismatch a defect. (The durable fix for the "recurring corrections on details" pattern the steward named.)
+- **Warde essay-collection admission — OCR RUNNING on M4** (`olmocr_mlx.py`, the proven MLX path; `~/capablehands/scratch/warde-essays-olmocr.md`; ~62min ETA at launch). M4 was already set up (Levi proof) — no install needed. Background monitor watches for `[olmocr_mlx] DONE`. POST-OCR (owed): clean → verify_conversion → graduate → catalogue → sidecar → NEW typography canonical, DISTINCT slug from the short-text `warde-crystal-goblet`. Source = `~/Downloads/Warde The Crystal Goblet_text.pdf` (IA scan, flawed embedded OCR → re-OCR'd fresh).
+- **Dedupe ASSESSED (not executed)** — existing governed tooling did the heavy lifting (nearly reinvented it; check-for-tooling-first): `propose_library_dedupe.py` → `library-dedupe-proposals.md` (2026-06-30): Tier A 934MB/115 applied 2026-07-01 → `_trash/dedupe-20260701/` quarantine (empty it = 934MB clean space, steward's permanent call) · Tier B 20 review · Tier C 206 flag-only. Roadmap: `library-consolidation-plan-2026-06-30.md` (Phases 2-4 gated). Today COMPLETED the plan's "Chamber Originals" milestone → re-running propose_library_dedupe now would be more aggressively safe (archived = provably redundant).
+
+## WHERE WE ARE — exact state for the return (steward-requested 2026-07-24)
+**Priority to resume = the ORIGINAL plan: the Levi 14-bracket verify.** It is now WARM, not cold — full reconnaissance banked at `chamber-library/_curation/levi-second-pilot-2026-07-23/witness-bracket-derivation-WIP-2026-07-24.md` (witness sha `c73fc063`, 32,998 lines; source EPUB now correctly in Chamber Sources sha `1be71a50`; THE key finding = calibre flattened work-body headers so brackets need EPUB-spine cross-ref not title-grep; the 14-work spine navMap; all verified witness landmarks; the exact "What's LEFT" 4-step method). **Resume there directly.**
+
+**Done this session (the chamber-sources problem — CLOSED so we don't return here):** Levi omnibus re-sourced (EPUB, not the wrong DTS PDF) · all 13 non-Loeb source gaps closed (invariant holds) · protocol clarification LANDED in chamber CLAUDE.md · feedback memory banked ([[feedback-resolve-source-through-chamber-sources]]) · **byte-identical dupes PURGED** (steward emptied `_trash/dedupe-20260701`, 935MB → Trash) · live library confirmed 0 byte-dupes.
+
+**Deferred (steward: return AFTER the bracket verify settles):**
+- **Silva consolidation** (Phase 3) — files STILL SPREAD across 7 library folders + ~493 external (413 Desktop). Named `~/Documents/Silva/`, method + open design-decision recorded in [[source-library-link-to-chamber-dedupe-steward-goal]]. No tool built yet. This is the "cleanup work" to return to LAST.
+- **Warde graduation** — OCR RUNNING on M4 (monitor `bi7h2cmcu`, `~/capablehands/scratch/warde-essays-olmocr.md`); auto-continues (clean→verify→graduate→sidecar→new typography canonical, DISTINCT slug) when OCR lands. Independent of the bracket-verify priority.
+
+**Loose session artifacts:** `~/fix-levi-omnibus.py` + `~/archive-13-sources.py` (one-off remediation records — steward may delete) · scratchpad backups (manifest pre-repin, orphan PDF, lib indexes).
+
+## Confidence to recalibrate
+- Mood carried from 07-23 close: substrate disciplines (verify-the-glyph-not-the-filename / assert-from-derivation) held even exhausted — hold them today; the pilot is exactly a substrate-adjudication task. Steward preference: **short, single-bite session** (07-23 ran far past that).
+
+## Authorization moves
+- 2026-07-24T09:22 CEST — Steward-directed golden-standard remediation of the Levi omnibus source pin (explicit, repeated authorization). `~/fix-levi-omnibus.py` — steward executed via `!` (the safety classifier correctly blocked ME from mutating the Chamber Sources manifest). Manifest backed up (scratchpad); wrong DTS-PDF pin removed; orphan PDF moved reversibly; omnibus re-pinned to the Complete Works EPUB (sha `1be71a50`) via governed `add_single`; verified; DTS untouched. Chamber Sources = 335 works.
+
+## Sub-agent dialogues
+
+## Bypasses