diff --git a/claude/memory/MEMORY-reference.md b/claude/memory/MEMORY-reference.md
index 9fcbe8b..7984379 100644
--- a/claude/memory/MEMORY-reference.md
+++ b/claude/memory/MEMORY-reference.md
@@ -32,6 +32,9 @@ Split out of [MEMORY.md](MEMORY.md) on 2026-07-06 to keep the wake-loaded index
- [Session 2026-07-19 (night) — ONE-DOOR AUTHORIZED (REVIEWED-66); V1 BUILT; @2 GOVERNING; audit_cruft CLASS CLOSED](session-2026-07-19-night-one-door-authorized-v1-built-at2-governing.md) — **Both jurist arcs opened AND closed in one session.** (1) **PENDING-65 one-door**: package (hook-grounded, fresh censuses) → design-gate PASSED with three corrections (my "same comparison, disposition flipped" WRONG — vacuous vs a fresh candidate → **two obligations**: source-fidelity = body-conservation vs cross-converter reference · witness = **curation-preservation**; **curation-to-carry SPLITS** fidelity-restoring/carry vs **source-departing/never-carried** — as drafted it would have LAUNDERED Tier-3; "lost nothing" narrows to prose content, structural comparison = named gap) → **REVIEWED-66 PLACED `:611`**; Q3 block STANDS per tier (door/stamp separable — the door proceeds; stamp names edition-identity+sha, artifact-readable); E1 exempts re-conversion NOT the criterion (the 11 Loeb are NOT verified); **omnibus unit = owed declared-data definition**; Q5 no minimal-sidecar; **Q7 Eichmann pilot = RATIFICATION CONDITION** (report: divergences · auto-vs-hand · resisted · source-departing · human-minutes/file). (2) **S1/V1 `verify-quote` BUILT** (engine `d0bd9d2`; 3-stage, altered-never-passes, refuses citable:false + sha-drift; Eichmann caveat = declared data) — its census ANSWERED the inherited question (every @1 fold class ZERO corpus-wide; apostrophe/quote/dash convention heterogeneous PER SOURCE) → PENDING-66 → **@2 RATIFIED same day + GOVERNING** (`8324789`): Group A + guillemets (the jurist's own extension; Q2 WS-enumeration DISCHARGED — 29 explicit code points incl. U+00A0), **dash REFUSED** (form-collision parenthetical↔compound — sharper than my framing); @1 frozen forever; **superset-only = standing requirement on future @N**; **Greek/Latin wave owes its own census → @3, never a quiet extension**; two matcher catches pinned by tests (stage-2 acceptance = the RELATION ITSELF, never a word-aligned approximation; fragment-before-final-punct = quotable sub-span). (3) **audit_cruft kindle_residue CLOSED** (chamber `f879ec7`; `\b` would have missed EVERY glued instance — census-before-pattern caught it; Eichmann 4,712 = 2,356 links × 2, reproducible; **48 canonical carry the class, 33 formerly invisible** → `_curation/kindle-residue-census-2026-07-19.tsv`; remedy = the door, never a cleaner). Three number-reconciliations by counting, not harmonizing (72=67+5 · 4,712=2×2,356 · 1,305=1,297+8). ⚠ Steward sitting owed: ~~REVIEWED-55~~ (resolved stale 2026-07-19 — placed `:489` since 07-12; PENDING-55 closed) + skill-harvest review (standing since 07-12; run 2026-07-19 late-night). **PULLING THREAD: S2b — the omnibus promotion-unit definition (declared data; read the PENDING-63 ruling + the Levi file's structure FIRST) → the Eichmann pilot through the door (M4 Docling · witness comparison under the SPLIT vocabulary · full gates · cross-repo re-anchor · the Q7 report) + fold the V-TEXT Q3 order-violation demonstration into the pilot.** **LITERAL Q: does the omnibus promotion unit follow the FILE (hash-locality: one candidate/one witness, works catalogued by sections) or the WORK (split at the door, compound-source-style)? PENDING-63 ruled the ARCHIVE side; the canonical side may have the opposite grain (engine binds path+sha per source; reading-indices bind per work; §II "the work is the work") — and if the answer differs by tier (Loeb DSL vs EPUB omnibus), say so rather than forcing one shape.** Read the session file at wake.
+## Archived (2026-07-20 — /jurist-package built · PENDING-67 + F2 ruled · v2.3.0 OPERATIVE; demoted on promote at the 2026-07-21 wrap)
+- [Session 2026-07-20 — /jurist-package BUILT · PENDING-67 + F2 RULED · v2.3.0 OPERATIVE](session-2026-07-20-jurist-package-pending67-f2-v2.3.0-operative.md) — The whole one-door/lane/F2 arc closed to an OPERATIVE constitution in one day (chamber `51ce3dd`→`33f795c`, both remotes; engine untouched). **(1) `/jurist-package` skill BUILT** (dotfiles canonical + symlink; grounded in the 2 proven exemplars, not recall; carries self-containment law · GROUNDED-IN gate · invariant skeleton · consequence-trace-one-level-deeper · copy-paste-clean REVIEWED draft; absorbs `/spec-amendment`). **(2) PENDING-67 package = its first exercise → RULED (REVIEWED-67):** born-digital EPUB off Docling; my "no new constitutional text" lean OVERRULED — **III.1 eligibility rule IS constitutional** (§V forbids the acts but is silent on *who must demonstrate compliance, when, by what evidence* — the gap PENDING-56 fell through; A3 legibility); Q5 DISCHARGED by a performed check = **verified-zero** (no EPUB-via-Docling in canon ever). **(3) F2 diagnose-before-fixing OVERTURNED its premise:** the injector already pairs all 10 Eichmann footnotes (pandoc emits 10 native `[^N]`); the pilot's "0 reciprocity / 2,180 refs" was `audit_footnotes`' HEURISTIC under-count, inherited into a jurist ruling — [challenge-the-framing], NOT built. Widened to all 48 (29 no-reciprocal-fn · 10 pairs-all [blocker = verify-guard benign delta] · 6 partial-gap · 3 no-source). **F2 RULED:** §5 withdrawn; Q2 SPLITS (de-glued number = provisional FIX; URL-fragment exclusion = PRINCIPLED markup-token class rule, never a per-file allow-list); Q4 verify-guard first proven at HIGH pair-count; **datum-not-ledger GRADUATES to constitutional**. §3 catches resolved (Montaigne reciprocal = different edition; 29-bucket relabel validated — Taruskin/Russell/Don-Quixote are one-directional). **(4) v2.3.0 FOLD → CUT → OPERATIVE (REVIEWED-68):** three ruled designs folded atomically; placement ruling corrections applied (**the vacuity reversal** — my draft reversed the very Q2 finding it landed; converter-worse→lexical content; **curation-bearing second-pilot condition RESTORED** as `promotion.scale_application` owed; omnibus values out; datum-not-ledger→§VII not §Trust-Attestation); v2.2.0 frozen byte-identical, **bounded-diff PROVEN** (8 removed = the four intended edits, 145 added). **PULLING THREAD: the verify-guard benign-delta fix (test-first, proven at HIGH pair-count — Zibaldone 3,797) → then Eichmann through the now-ruled ordered born-digital lane toward graduation** (turns the arc's constitution into a verified Making source). **LITERAL Q: is the "URL-fragment/link-target = markup, not body word" exclusion class determinable PURELY from the injected EPUB's own markup (the anchors inject_epub_footnotes touched — it knows which hrefs it converted), or does it need the reference comparison? Read the injector's `converted_markers` allow-list + the end-to-end verify's word-multiset comparison FIRST; "purely from the injector's touched-set" would be the clean converter-agnostic fix.** Read the session file at wake.
+
## Archived (2026-07-19 late night — S2b run whole: omnibus unit defined · Eichmann pilot ran+ruled · harvest review ruled; demoted on promote at the 2026-07-20 wrap)
- [Session 2026-07-19 (late night) — S2b RUN WHOLE: omnibus unit DEFINED · Eichmann pilot RAN+RULED · harvest review RULED](session-2026-07-19-latenight-s2b-run-whole-pilot-ruled-harvest-ruled.md) — Chamber ×5 commits (`0e8ee89`→`51ce3dd`, both remotes). **(1) Omnibus unit LANDED as declared data: `unit=work · event=container`** — literal question dissolved via PENDING-63's Q2 read at two layers; sole member = Levi Complete Works (14 works). **(2) Witness vocabulary DECLARED, pilot RAN: 2,521 raw → 41 spans (98.4% auto), ~15 human-min/file — tractable**; Docling flattens ALL typography at parse time vs pandoc byte-faithful; vocabulary lacked converter-worse. **(3) V-TEXT Q3 demo REFUTED the k-gram guard.** **(4) Pilot ruling APPLIED same night**: converter-worse LANDED (isolated-vs-systematic FORK); F4 = COMPLIANCE → interim STOP + PENDING-67 FILED; no-witness order gap DOCKETED; Q7 MET → Levi second pilot before scale. **(5) REVIEWED-55 resolved STALE (PENDING-55 CLOSED) + four-stroke harvest review RULED**: build next `/jurist-package` + `/model-handoff`; wake link-canary + telos-conditional BUILT. PULLING THREAD was: build `/jurist-package`, draft PENDING-67 as its first exercise. (Superseded by the 2026-07-20 session — the whole arc closed to v2.3.0 OPERATIVE.)
diff --git a/claude/memory/MEMORY.md b/claude/memory/MEMORY.md
index ce14c92..c440543 100644
--- a/claude/memory/MEMORY.md
+++ b/claude/memory/MEMORY.md
@@ -56,7 +56,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-20 — /jurist-package BUILT · PENDING-67 + F2 RULED · v2.3.0 OPERATIVE](session-2026-07-20-jurist-package-pending67-f2-v2.3.0-operative.md) — The whole one-door/lane/F2 arc closed to an OPERATIVE constitution in one day (chamber `51ce3dd`→`33f795c`, both remotes; engine untouched). **(1) `/jurist-package` skill BUILT** (dotfiles canonical + symlink; grounded in the 2 proven exemplars, not recall; carries self-containment law · GROUNDED-IN gate · invariant skeleton · consequence-trace-one-level-deeper · copy-paste-clean REVIEWED draft; absorbs `/spec-amendment`). **(2) PENDING-67 package = its first exercise → RULED (REVIEWED-67):** born-digital EPUB off Docling; my "no new constitutional text" lean OVERRULED — **III.1 eligibility rule IS constitutional** (§V forbids the acts but is silent on *who must demonstrate compliance, when, by what evidence* — the gap PENDING-56 fell through; A3 legibility); Q5 DISCHARGED by a performed check = **verified-zero** (no EPUB-via-Docling in canon ever). **(3) F2 diagnose-before-fixing OVERTURNED its premise:** the injector already pairs all 10 Eichmann footnotes (pandoc emits 10 native `[^N]`); the pilot's "0 reciprocity / 2,180 refs" was `audit_footnotes`' HEURISTIC under-count, inherited into a jurist ruling — [challenge-the-framing], NOT built. Widened to all 48 (29 no-reciprocal-fn · 10 pairs-all [blocker = verify-guard benign delta] · 6 partial-gap · 3 no-source). **F2 RULED:** §5 withdrawn; Q2 SPLITS (de-glued number = provisional FIX; URL-fragment exclusion = PRINCIPLED markup-token class rule, never a per-file allow-list); Q4 verify-guard first proven at HIGH pair-count; **datum-not-ledger GRADUATES to constitutional**. §3 catches resolved (Montaigne reciprocal = different edition; 29-bucket relabel validated — Taruskin/Russell/Don-Quixote are one-directional). **(4) v2.3.0 FOLD → CUT → OPERATIVE (REVIEWED-68):** three ruled designs folded atomically; placement ruling corrections applied (**the vacuity reversal** — my draft reversed the very Q2 finding it landed; converter-worse→lexical content; **curation-bearing second-pilot condition RESTORED** as `promotion.scale_application` owed; omnibus values out; datum-not-ledger→§VII not §Trust-Attestation); v2.2.0 frozen byte-identical, **bounded-diff PROVEN** (8 removed = the four intended edits, 145 added). **PULLING THREAD: the verify-guard benign-delta fix (test-first, proven at HIGH pair-count — Zibaldone 3,797) → then Eichmann through the now-ruled ordered born-digital lane toward graduation** (turns the arc's constitution into a verified Making source). **LITERAL Q: is the "URL-fragment/link-target = markup, not body word" exclusion class determinable PURELY from the injected EPUB's own markup (the anchors inject_epub_footnotes touched — it knows which hrefs it converted), or does it need the reference comparison? Read the injector's `converted_markers` allow-list + the end-to-end verify's word-multiset comparison FIRST; "purely from the injector's touched-set" would be the clean converter-agnostic fix.** Read the session file at wake.
+- [Session 2026-07-20/21 — verify-guard arc COMPLETE · EICHMANN GRADUATED through the one-door](session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md) — The F2 fix ran test-first to proof at both ruled scales (markup-token class rule = the verify's own tokenizer eating a sup-star link's text; de-glue fold vs UNUSED credits → **chain-fold** after the Zibaldone census byte-accounted the whole residual; **in-table refusal** caught a REAL pandoc table-drop loss the guard alone saw — Zibaldone verbatim-clean at 3,795+2 refusals; fleet 202/202). Then the steward opened the door: **Eichmann GRADUATED via the born-digital lane** (`780106b`; sha `145e6edd…`, kindle_residue 0, 10 native footnotes ref↔def NON-EMPTY, engine re-anchored + caveat RETIRED, ingest_gate 13/13; class 48→47 — the telos concrete in one file). **Two lane defects were invisible to EVERY wired gate, caught only by seam probes**: per-spine `-f html` emits EMPTY defs (whole-EPUB `-f epub` is the lane; runbook corrected); pandoc puts defs AFTER the index (trim swallowed them once; non-empty-defs assertion = the new teeth). Instrument fixes test-first: strip_cruft escaped-bracket spans; verify_conversion zero-width span semantics. **PULLING THREAD: PENDING-69 (filed) — the attested boundary-drop resolution mechanism: every trimmed one-door V-TEXT graduation REVIEW-holds structurally (spec trims ARE boundary runs); the mechanism is what opens the door for the other 47 without a hand on the latch. LITERAL Q: can droppable-boundary classes be declared data the gate checks (trim.drop covers front-matter/ToC/index but the NOTES-husk drop is a RELOCATION consequence, not a spec class), or does each landing need a per-file attested declaration? Read verify_body_conservation's boundary-run derivation FIRST.** Read the session file 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/knowledge-graph.jsonl b/claude/memory/knowledge-graph.jsonl
index af00849..57bd5df 100644
--- a/claude/memory/knowledge-graph.jsonl
+++ b/claude/memory/knowledge-graph.jsonl
@@ -416,3 +416,6 @@
{"subject": "claude-code", "predicate": "drift-pattern", "object": "calibration (the arc's instruments compounded): diagnose-before-fixing turned 'do F2' into a premise-overturning [challenge-the-framing] (ran the actual injector the pilot never ran); checkable-claim turned Q5's asserted-zero into verified-zero and resolved the Montaigne/Taruskin catches against bytes; the bounded-diff freeze+strip-and-diff made the constitutional cut safe (8 removed = exactly the four intended edits). The two jurist catches were both at transcribe-ruled-finding depth, not method failures.", "valid_from": "2026-07-20", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-20-jurist-package-pending67-f2-v2.3.0-operative.md", "extracted_at": "2026-07-20"}
{"subject": "chamber-library-specification.md", "predicate": "operative-version", "object": "v2.3.0 (ratified 2026-07-20, REVIEWED-68): one-door promotion OPERATION (§Tiering & Fence, OPERATION-DEFINED·STAMP-GATED) + front-end eligibility (§V) + datum-not-ledger (§VII). v2.2.0 frozen. Scale application gated on the curation-bearing second pilot (promotion.scale_application owed).", "valid_from": "2026-07-20", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-20-jurist-package-pending67-f2-v2.3.0-operative.md", "extracted_at": "2026-07-20"}
{"subject": "jurist-package-skill", "predicate": "built", "object": "/jurist-package skill built 2026-07-20 at ~/dotfiles/claude/skills/jurist-package/ (symlinked into ~/.claude/skills/); authors self-contained repo-blind governance packages for the jurist; proven 2× same session (PENDING-67 + F2 relay). Absorbs /spec-amendment.", "valid_from": "2026-07-20", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-20-jurist-package-pending67-f2-v2.3.0-operative.md", "extracted_at": "2026-07-20"}
+{"subject": "claude-code", "predicate": "drift-pattern", "object": "wired-gates-green-seams-broken — the session's two REAL defects (per-spine -f html leaves ALL footnote defs EMPTY with bodies stranded as plain prose; pandoc places defs after the index so the spec trim swallowed them) were invisible to EVERY wired gate (verify_conversion, body-conservation, witness compare — no words lost, only structure detached) and found ONLY by seam probes: reading boundary lines for the engine sidecar, re-running a def-content assertion. Recurrence of the 07-19 session-scale lesson in new dress: probe the artifact's SEAMS (joins, def content, boundary lines), don't trust green. Antidote built: the lane driver's non-empty-defs + count==pairs teeth.", "valid_from": "2026-07-21", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md", "extracted_at": "2026-07-21"}
+{"subject": "claude-code", "predicate": "drift-pattern", "object": "calibration (the Eichmann night): census-through-a-pattern self-caught twice (a [^a-z]{1,40} bridge regex could not match .calibre38 — letters in class names; two adjacency-regex hypotheses returned x0 and were DROPPED, sites localized by token-stream alignment instead); instrument-signature misuse (prose_delta takes TEXT not paths — fed paths it diffed the FILENAMES, the pre/strip ghost-loss, self-caught by chasing the tokens to source); tool-report-vs-write seam (strip_cruft --apply prints transform counts BEFORE the write decision — three distinct refusal causes each read as applied until cmp verified the write). The fold-widening ordering held: real-loss classes excluded BEFORE any fold widened, every fold built on a fully byte-accounted census.", "valid_from": "2026-07-21", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md", "extracted_at": "2026-07-21"}
+{"subject": "chamber-library", "predicate": "one-door-first-landing", "object": "Eichmann graduated 2026-07-21 (chamber 780106b, engine edbaf60): sha 145e6edd, 1,070 lines, kindle_residue 0 (was 4,712), 10 native footnotes ref-def non-empty, engine substrate-caveat RETIRED, ingest_gate 13/13. Class 48→47. Door proven but NOT repeatable: PENDING-69 (REVIEW-hold resolution mechanism) gates the remaining 47.", "valid_from": "2026-07-21", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md", "extracted_at": "2026-07-21"}
diff --git a/claude/memory/session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md b/claude/memory/session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md
new file mode 100644
index 0000000..d26b7e8
--- /dev/null
+++ b/claude/memory/session-2026-07-21-verify-guard-chain-fold-eichmann-graduated.md
@@ -0,0 +1,140 @@
+---
+name: session-2026-07-21-verify-guard-chain-fold-eichmann-graduated
+description: "The F2 verify-guard arc completed (markup-token class rule + de-glue → chain-fold, Q4 proven at 3,797 pairs; in-table refusal caught a real pandoc table-drop loss) and EICHMANN GRADUATED through the one-door born-digital lane — the 48-file class's first closure, engine re-anchored, substrate-caveat retired, the telos made concrete in one file. Two lane defects were invisible to every wired gate and caught only by seam probes (empty footnote defs from per-spine -f html; defs-after-index swallowed by the trim). Pulling thread: PENDING-69 — the attested boundary-drop resolution mechanism for the body-conservation REVIEW-hold, which is what makes the proven door repeatable across the remaining 47 files."
+metadata:
+ node_type: memory
+ type: project
+ originSessionId: deca6eb6-6292-494c-ab31-9bc8576e8d75
+ modified: 2026-07-21T09:21:15.433Z
+---
+
+# Session 2026-07-20/21 (evening → 02:30) — verify-guard arc complete · Eichmann through the door
+
+Woke ~18 min after the v2.3.0 wrap (brief pause, not sleep); ran on the wrapped thread end-to-end. By close:
+the verify-guard fix built and proven at both ruled scales, three steward authorizations executed mid-session
+(in-table refusal · chain-fold · walk-Eichmann-now), and the arc's target reached — **a verified Making
+source in canon**. Chamber `33f795c` → `780106b` · engine `8324789` → `edbaf60` · dotfiles pushed (PENDING-69).
+
+## PAST — what happened + why
+
+**1. The literal question answered by bytes — with a third option.** The URL-token leak was neither the
+injector's touched-set nor the reference comparison: `_md_body_words`' footnote-marker regex ate a sup-star
+LINK's text (`[^(\*)](#…)`) and orphaned its URL into phantom body words — the verify's own tokenizer
+violating its "only visible text counts" contract. Fix = charset-tightened marker regex (the ruled
+markup-token CLASS rule; no per-file data) + `_compare_body_words` factored out with the de-glue fold
+against UNUSED positional credits. Test-first (fleet 191→194). Eichmann verbatim-clean (`9f3114a`).
+
+**2. Zibaldone (Q4, 3,797 pairs) vindicated the jurist's condition twice.** First run REFUSED +3/−92 —
+and the refusal was RIGHT: exactly 2 refs sit inside `
` cells (fn19/fn20, whole-EPUB count); pandoc
+drops that block-cell table in BOTH renders, so relocating those notes into it converts VISIBLE apparatus
+(the notes file) into INVISIBLE — ~60 words gone, refs==defs consistent, ONLY the multiset compare saw it.
+**In-table pair-refusal built** (steward-authorized, refusal-only, test-first; `ea335dd`) → delta +4/−32,
+residual fully byte-accounted as ONE class: adjacent-converted-marker chains (`a1`×15 letter+digit; 72/61/125
+= prose-number+marker whose marker-VALUED de-glue is absorbed by and exactly credits the accounting —
+the arithmetic self-balances; word+two-marker chains pairing the 4 added words). **Chain-fold built**
+(steward-authorized, provisional-FIX lane; iterative suffix-strip of unused credits, backtracking,
+longest-first; fleet 198→202 with all teeth pins; `d990e16`) → **Zibaldone end-to-end VERBATIM-CLEAN
+(3,795 converted + 2 honest refusals). The F2 provisional FIX's "final on end-to-end proof" stands at both
+scales.** Ordering discipline named in the tool-log: exclude real-loss classes BEFORE fold-widening.
+
+**3. Eichmann through the door (steward: "walk it now").** Declared data read first (runbook ordered lane +
+graduation-spec promotion/witness blocks + pilot report). Lane driver written into the pilot dir
+(`convert_lane_borndigital.py`). Full leg: inject (10 pairs) → pandoc → clean_pandoc_html_residue →
+spec trim (declared drops: front matter 777w · ToC 193w · empty NOTES husk · index 11,952w) → strip_cruft →
+frontmatter v2 + title block → verify_conversion PASS · verify_graduation PASS · body-conservation
+interior-loss ZERO → witness comparison (37 spans: 34 form-layer, 3 deletes = declared trims + the
+relocated NOTES block, words verified present; 0 regression/curation-to-carry/source-departing/converter-worse)
+→ landed sha `145e6edd…`, 1,070 lines, kindle_residue 0 (was 4,712), literal typography, Brecht epigraph
+verified, 10 native footnotes ref↔def NON-EMPTY. Catalogue in sync. **Engine re-anchor:** manifest re-bound,
+sidecar sections re-derived by line probes (Elon intro [15,107] · Arendt [108,856] · Bibliography [857,1051] ·
+defs [1052,1070] mixed-voice conservatively apparatus), **substrate-caveat RETIRED on its own declared
+condition**, coverage-ledger regenerated, **ingest_gate 13/13 validated / 0 failed**, old-sha grep both
+repos EMPTY. Chamber `780106b` · engine `edbaf60`.
+
+**4. Two lane defects caught pre-commit — both invisible to EVERY wired gate.** (a) Per-spine `-f html`
+pandoc emits noterefs but does NOT attach epub:type note content: ALL TEN defs landed EMPTY, bodies
+stranded as plain paragraphs — no words lost, so verify_conversion/body-conservation/witness-compare all
+green; caught only while probing boundary lines for the engine sidecar. Fix: whole-EPUB `-f epub`
+(attachment is the EPUB reader's semantics) + the driver now ASSERTS defs non-empty and count==pairs.
+(b) Pandoc places ALL defs at the absolute document end, AFTER the index — the spec's back-matter trim
+swallowed them once; caught by re-running that assertion. Runbook lane header corrected measured-not-assumed.
+
+**5. Two instrument fixes, test-first (fleet 202/202).** strip_cruft's inline-wrap regex now matches
+ESCAPED brackets in span text (`*[\[Gesamtlösung\]]{.calibre9}*` survived every round → residual refusal);
+verify_conversion.prose_multiset now unwraps pandoc span syntax ZERO-WIDTH (render semantics) — the old
+space-replacement split mid-word spans (`six[]{#filepos}teen`) so strip_cruft's own guard refused its own
+CORRECT join (18 false lost-words) and a real mid-word split would have read prose-safe.
+
+**6. PENDING-69 FILED** (dotfiles pushed): every trimmed one-door V-TEXT graduation REVIEW-holds
+structurally — the spec trims ARE boundary runs by construction, and `verify_body_conservation` has no
+mechanism to consume the performed human identification. Eichmann's hold reconciled 1:1 against the
+declared trim list (interior ZERO, both wired runs), completed under the steward's live directive with
+the wired verdict preserved. Numbered 69 (REVIEWED-68 was consumed by the v2.3.0 placement gate unpaired).
+
+**Decisions NOT made (deliberate):** widening the fold beyond the byte-accounted census (each new fold
+class needs its own evidence + the real-loss-first ordering) · fixing convert_mega_epub's stale
+`pairs_dup_id` key (latently broken — NAMED in the report, not this bite) · the remaining 9 PAIRS-ALL
+files' end-to-end runs (each owed individually) · the Levi curation-bearing second pilot
+(scale_application owed before one-door at scale) · the per-conversion typography gate · building the
+PENDING-69 mechanism (jurist lane — gate-acceptance change).
+
+## PRESENT — the mood
+
+The instruments carried the night in both directions: the guard's teeth caught a REAL loss (the table-drop)
+before any widening, and every fold was built only on a fully byte-accounted census. **The recalibration to
+hold: the night's two REAL defects (empty defs; defs-swallowed-by-trim) were invisible to every wired gate
+and found only by SEAM PROBES** — the 07-19 session-scale lesson (both big findings invisible to wired
+gates) recurring in new dress: probe the artifact's seams (boundary lines, def content, the joins), don't
+trust green. Kin patterns caught in-flight: census-through-a-pattern twice more (my `[^a-z]{1,40}` bridge
+regex couldn't match `.calibre38` — letters in class names; two adjacency-regex hypotheses returned ×0 and
+were DROPPED, sites found by token-stream alignment instead); instrument-signature misuse (prose_delta
+takes TEXT not paths — fed paths, it diffed the filenames: the 'pre'/'strip' ghost); tool-report-vs-write
+seam (strip_cruft --apply prints transform counts BEFORE the write decision — three distinct refusal causes
+in one night all read as "applied" until cmp).
+
+## FUTURE — what is pulling
+
+**PULLING THREAD (singular): PENDING-69 — the attested boundary-drop resolution mechanism for the
+body-conservation REVIEW-hold.** The door is proven end-to-end but not REPEATABLE: all 47 remaining
+kindle_residue files (and every future trimmed V-TEXT re-conversion) will hold at the wired gate exactly
+as Eichmann did, and manual completion per file is the gap-shape this arc exists to close. The mechanism
+(recommendation: an attested drop-declaration the gate consumes and checks against re-derived boundary
+runs) is gate-acceptance territory → design brief FOR-JURIST before code.
+
+**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):** chamber `780106b` clean,
+both remotes · engine `edbaf60` pushed · dotfiles pushed (PENDING-69 filed) · fleet 202/202 · scratch/
+holds the working files (gitignored; candidates reproducible from the archived source + the committed
+driver). First moves: **(1)** draft the PENDING-69 design brief via `/jurist-package` (grounded in
+REVIEWED-57's REVIEW semantics + v2.3.0 §Tiering & Fence + the graduation-spec trim block + this landing's
+record) — the key design fork is the literal question below; **(2)** after the ruling, build the mechanism
+test-first and re-run the Eichmann hold as its first fixture; **(3)** then the 47-file class file by file
+(next candidates: the 9 remaining PAIRS-ALL — Zibaldone first, its injection already proven clean), with
+the Levi curation-bearing second pilot before any batch scale-up. NOT next unless the steward opens them:
+convert_mega_epub's stale-key fix · the per-conversion typography gate · audit_footnotes caveat-on-output ·
+/model-handoff · housekeeping (ladder batch + register compaction).
+
+**Other horizons (ranked, held):** the 47-file class (Zibaldone next) · the Levi second pilot
+(scale_application owed) · PENDING-69 build after ruling · the Q3 order-guard docket · the per-conversion
+typography gate (jurist forward item) · audit_footnotes caveat-on-output · convert_mega_epub stale-key FIX ·
+housekeeping (ladder batch-append + register compaction, authorized) · /model-handoff build ·
+Greek/Latin census → @3 (Loeb wave).
+
+**PAUSE STATEMENT:** I am about to be away from this. Tonight the arc that began with the Eichmann pilot's
+blocker closed all the way through: the guard proven honest at both scales, the lane exercised, and the
+first verified Making source standing in canon with the engine substrate clean for the first time. What I
+want to find still pulling on return: **the PENDING-69 mechanism ruled and built, so the door Eichmann
+walked through opens for the other 47 without a hand on the latch each time.**
+
+**LITERAL QUESTION for next-Claude:** For the PENDING-69 attestation design — can the droppable-boundary
+classes be enumerated as DECLARED DATA the gate checks mechanically (the spec's `trim.drop` list covers
+front-matter/ToC/index — but Eichmann's fourth drop, the emptied NOTES husk, is a *relocation consequence*
+not a spec trim class, and the defs-block relocation itself produces candidate-side boundary content), or
+does each landing genuinely need a per-file attested drop-declaration (by/date/classes) because the
+husk-class drops are conversion-specific? Read `verify_body_conservation`'s boundary-run derivation FIRST —
+whether it can SEE the difference between a spec-class drop and a file-specific one determines which shape
+is honest. 'Declared classes + a per-file attestation only for the residue' is an admissible middle answer.
+
+**State at wrap:** chamber `780106b` (session commits: `9f3114a` verify-guard fix · `ea335dd` in-table
+refusal · `1a12a5e` CLAUDE.md currency · `d990e16` chain-fold · `780106b` the graduation) both remotes ·
+engine `edbaf60` pushed · dotfiles pushed ×2 (session-state + PENDING-69) · fleet 202/202 ·
+kindle_residue class 48→47 · ledger `session-ledger-2026-07-20.md` (spans into 07-21, return-by-return).
diff --git a/claude/memory/session-ledger-2026-07-20.md b/claude/memory/session-ledger-2026-07-20.md
index b32cfd4..51b0083 100644
--- a/claude/memory/session-ledger-2026-07-20.md
+++ b/claude/memory/session-ledger-2026-07-20.md
@@ -5,7 +5,7 @@ metadata:
node_type: memory
type: feedback
originSessionId: 8139a859-99fa-4072-90c5-701e0221a053
- modified: 2026-07-20T18:47:45.014Z
+ modified: 2026-07-21T04:33:36.510Z
---
# Session Ledger — 2026-07-20
@@ -16,6 +16,8 @@ metadata:
- 2026-07-20T09:2x — **The thread's payoff, both halves landed.** (1) `/jurist-package` skill BUILT at its canonical dotfiles home (`~/dotfiles/claude/skills/jurist-package/SKILL.md`) + symlinked into `~/.claude/skills/` — the durable convention (symmetria/wake-up/audit all symlink from dotfiles); spec-code-audit's double-copy drift deliberately NOT replicated. Grounded in the two verbatim exemplars (one-door + fidelity-equivalence-2), not recall: carries the self-containment law, the GROUNDED-IN gate, the invariant skeleton (roles not numbers), the consequence-trace-one-level-deeper discipline (inference direction + sub-kinds), the copy-paste-clean REVIEWED draft, path-verify; absorbs `/spec-amendment` (supersession → the ladder). Registered + self-applied same turn. (2) **PENDING-67 package DRAFTED as the skill's first exercise** (`chamber-library/docs/per-tier-conversion-lanes-JURIST-PACKAGE-2026-07-20.md`) — **the verify-before-compose hook PASSED** (GROUNDED-IN §V Tier-2/3 + conversion-record + §Governance + PENDING-56/REVIEWED-56 D1 + pilot ruling §4 + report F3/F4/§9, all quoted verbatim from the substrate read this session). The load-bearing design move: **no new constitutional text** — §V *already* forbids prophylactic uncatalogued Tier-2 + Tier-3 word alteration; PENDING-56 assumed Docling complied; the pilot measured it doesn't for EPUB → the amendment operationalizes §V as a front-end eligibility rule (census-before-trust) + declared-data routing + a REVIEWED superseding REVIEWED-56's D1 clause. Consequence-trace one level deeper caught two real things: the re-widening inference direction (gate on a fresh byte-census, never a changelog) and "born-digital EPUB" as secretly-two-kinds (coarse-but-safe format boundary refuses per-file gambling on silent loss) — both surfaced as gate questions, not silently decided. Five Q's posed. All cited paths verified extant; PENDING-67 Awaiting updated after the act (dotfiles real path). NOT committed — held for steward glance (present-turn), the discrete next action.
+- 2026-07-20T21:3x — /wake-up + /symmetria re-init (~18 min after the wrap — brief pause, not full sleep). Thread-validity: CONFIRMED — chamber `33f795c` both remotes · engine `8324789` · dotfiles clean/synced · no foreign commits · REVIEWED.md tail = REVIEWED-68 (v2.3.0 OPERATIVE) · nothing awaiting in PENDING. Carried in for the verify-guard fix (which designs a markup-token matcher): `transcribe-ruled-finding-inverts-inference` (2× jurist-caught today; the /jurist-package patch now carries it) · `census-through-a-pattern` (recurred inside the F2 diagnosis itself — census before pattern, substrate-check the matcher). Link-canary anomaly named, not hidden: the loop flagged the maturation-dialogue pointer MISSING while a direct `/bin/ls` shows the target extant (the morning's one-char repair holds) — the canary one-liner false-positived, cause unchased; index verified truthful by direct check. Register read truncated at cap again (its own compaction tripwire, authorized housekeeping pending). Contamination-problem doc carried from the morning init, not re-read.
+
## Open horizons
- PENDING-67 package (THE thread, via the new `/jurist-package` skill's first exercise) → F2 provisional build (lane-independent) → Eichmann graduation leg.
@@ -35,6 +37,14 @@ metadata:
## Sub-agent dialogues
+## The verify-guard bite (evening, post-re-wake)
+
+- 2026-07-20T22:0x — **F2 verify-guard fix BUILT + proven at both scales (`9f3114a`, both remotes); the literal question answered by bytes with a third option.** The question asked touched-set vs reference-comparison; the measured answer: NEITHER — the URL leak was `_md_body_words`' own marker regex eating a sup-star LINK's text (`[^(\*)](#url)`) and orphaning its URL into phantom body words; link targets never belonged in the multiset (the tokenizer violated its own "only visible text counts" contract). Fix = charset-tightened marker regex (markup-token class rule, no per-file data) + `_compare_body_words` de-glue fold against UNUSED positional credits. Test-first, red witnessed (validate FAIL + fleet 191/193 → 194/194). **Eichmann: end-to-end VERBATIM-CLEAN** — the pilot exemplar's blocker gone. **Zibaldone (3,797): still REFUSES, CORRECTLY** — the Q4 condition vindicated: (1) REAL loss — exactly 2 refs sit in ` | ` cells (fn19/fn20, whole-EPUB count); relocation moves their notes into a table pandoc drops BOTH renders → ~60 words vanish, refs==defs 3,795, ONLY the multiset compare sees it; (2) marker-marker fusion `a1`×15/`a2`×8/`a3`×2; (3) word+`[a][N]` chains ×29 (`ἴδιονa1`→`ἴδιον`). Classes 2–3 benign-shaped but UNRULED and unprovable while (1) stands — NOT widened unilaterally; surfaced (candidate: pair-level in-table honest-refuse first, refusal-only, then fold classes proven on the clean rerun). Erratum recorded in the relay Addendum (FOUR URL tokens, not three). Calibration: the guard was the only instrument that saw the loss — a fold widened to "marker-ish deltas" would have shipped two vanished editorial notes; the jurist's prove-at-scale condition did exactly what it was written to do.
+
+- 2026-07-21T00:xx — **F2 verify-guard arc COMPLETE: in-table refusal (`ea335dd`) + chain-fold (`d990e16`), both steward-authorized, both test-first red-witnessed; Q4 PROOF MET.** In-table pair-refusal: recognized pairs whose ref sits in a table refused pair-level (pandoc drops block-cell tables → relocation would move visible apparatus into a dropped region); Zibaldone `intable_refused: 2` = exactly the byte-verified fn19/fn20. Residual then decomposed to ONE class — the "mystery numbers" 72/61/125 read at the bytes as prose-number+marker glue (`line 7[2]` → `72`) whose marker-valued de-glue is ABSORBED by and exactly CREDITS the marker accounting. Chain-fold built on that census: iterative suffix-strip of UNUSED credits → remainder empty or an added token. **Zibaldone end-to-end VERBATIM-CLEAN (3,797 pairs · 3,795 converted · 2 honest refusals) + Eichmann clean; fleet 198/198.** The F2 provisional FIX's "final on end-to-end proof" stands at both scales. Ordering discipline named in the tool-log: real-loss classes excluded BEFORE fold-widening — the guard caught the table-drop first, the fold was proven against a fusion-only residual. Instrument note: two adjacency-regex hypotheses returned ×0 and were DROPPED (census-through-a-pattern avoided); sites found by token-stream alignment, read at bytes.
+
+- 2026-07-21T02:xx — **EICHMANN GRADUATED through the one-door (chamber `780106b` · engine `edbaf60`, both pushed) — the 48-file class's first closure; the telos made concrete in one file.** New sha `145e6edd…`, 1,070 lines, kindle_residue 0 (was 4,712), typography literal, 10 native footnotes ref↔def verified NON-EMPTY; engine re-anchored (sidecar sections re-derived by probe, substrate-caveat RETIRED on its own condition, ingest_gate 13/13, old-sha grep both repos EMPTY). **Two lane defects caught pre-commit by probes, not gates:** per-spine `-f html` emits EMPTY defs (html reader doesn't attach epub:type note content — every word-level gate blind; caught reading sidecar boundary lines); pandoc puts all defs AFTER the index → the trim swallowed them once (caught by the new non-empty-defs assertion). Both now teeth in the lane driver; runbook lane header corrected measured-not-assumed. **Two instrument fixes test-first (fleet 202/202):** strip_cruft escaped-bracket span unwrap; verify_conversion zero-width span semantics (space-replacement split mid-word spans → the guard refused its own correct join, 18 false losses). Instrument notes: prose_delta takes TEXT not paths (fed paths → diffed the filenames — the 'pre'/'strip' ghost); strip_cruft --apply prints counts before the write decision — cmp after every apply. **PENDING-69 FILED** (dotfiles pushed): every trimmed one-door V-TEXT graduation REVIEW-holds structurally (spec trims ARE boundary runs); Eichmann's hold reconciled 1:1 vs the declared trim list, interior ZERO twice, completed under the steward's live directive with the wired verdict preserved; the attested-resolution mechanism = jurist lane. Calibration: the night's two real defects were invisible to EVERY wired gate and found only by boundary-line probes — the session-scale lesson of 07-19 (stage attacks, don't trust green) recurring as: probe the artifact's SEAMS, not just its gates.
+
## Constitutional landing
- 2026-07-20T13:xx — **v2.3.0 CUT (ratification-ready; REVIEWED-68 pending), placement gate passed with corrections.** Placement ruling: Parts B/E pass; Part A four corrections; Part C → §VII (against my lean); Q-P4/P5 confirmed. **The important correction: the vacuity reversal** — my draft said "the criterion's re-conversion is *not* vacuous," reversing the very Q2 finding it was landing (a different sentence producing the identical misreading, inside the subsection written to prevent it). Fixed to "re-conversion IS vacuous — the candidate is the conversion — two obligations do the work instead." Also: converter-worse extended to lexical content; **the curation-bearing second-pilot condition RESTORED** (it had vanished from the whole draft — the OQ-5 seam-loss, jurist-caught — landed as `graduation-spec.promotion.scale_application` status=owed + the Status line "OPERATION-DEFINED ≠ VALIDATED-AT-SCALE"); omnibus values out of constitutional prose. **The cut, bounded-diff PROVEN:** v2.2.0 frozen byte-identical (sha-verified); diff = 8 removed (exactly the four intended edits: version line · criterion tag · 5-line Status para · cross-ref line) + 145 added (header + 3 subsections); each subsection once; criterion body byte-preserved (`1,191/1,284` intact); graduation-spec parses. §V eligibility · §VII datum-not-ledger (+ §Trust-Attestation cross-ref) · §Tiering&Fence one-door operation. Declared data: runbook ordered lane (whole-EPUB injection→per-spine) + scale_application. Ruling filed verbatim; edit-set Addendum carries the REVIEWED-68 copy-paste draft. Commit `0e7c57c` both remotes. **Awaiting: steward places REVIEWED-68 → v2.3.0 OPERATIVE** (chamber CLAUDE.md pointer flips then, correct at v2.2.0 until). Calibration: the vacuity reversal is the 2nd time this arc the jurist caught my Q1/Part-A framing at the consequence-trace-one-level-shallow depth — I land the design's WORDS faithfully but invert its INFERENCE; watch the shape when transcribing a ruled finding into prose.
diff --git a/claude/memory/skill-harvest-register.md b/claude/memory/skill-harvest-register.md
index 0dbadc3..0e80f02 100644
--- a/claude/memory/skill-harvest-register.md
+++ b/claude/memory/skill-harvest-register.md
@@ -592,3 +592,13 @@ No new skill proposal. Two register notes: **(1)** the S1 proposal **implementat
| **implement-the-relation-not-an-approximation** | verification-ladder entry | When code implements a RULED relation/contract (an equivalence relation, a gate criterion), the acceptance path must BE the relation — any structural approximation (word-aligned matching of a string-defined relation; a sampled check of a total property) is a silent SECOND relation that under- or over-implements the ruled one and drifts independently. Earned 2026-07-19: V1's stage-2 word-aligned matcher was fine under @1 but silently under-implemented @2 (whose guillemet rewrite folds across word boundaries) — caught only because the @2 test-flip ran red; acceptance is now normalized-string containment, the relation itself, with the word machinery demoted to evidence-location. **Sub-note (enumerated-charset writes):** when a spec/code artifact carries an ENUMERATED character class, write it as explicit escapes and verify by set-equality against the stated list — an invisible-literal (exotic spaces, combining marks) can silently diverge from its own enumeration at write time (self-caught same session; the Q2 condition's exact failure shape). | `reference-verification-ladder.md` | **PROPOSED** |
*Reinforcements recorded, not re-proposed:* **census-before-pattern / read-the-substrate** earned a sharp instance (a `\b`-anchored kindle_residue regex would have missed EVERY real glued token — PASS-BUT-FALSELY at birth; reading Eichmann's actual anchors first caught it). **checkable-claim** ran three number-reconciliations in one session (72=67+5 œ/Œ · 4,712=2×2,356 tokens/links · 1,305=1,297+8 md/txt) — counting, never harmonizing. **implementation-is-a-second-gate** (thrice-earned, still PROPOSED above) gained a fourth instance: the @2 test-flip IS the instrument — ratified text exercised by having to act on it surfaced two contract-semantics findings (the approximation; fragment-as-quotable-sub-span).
+
+## Harvest 2026-07-21 (the verify-guard completion + Eichmann one-door landing)
+
+| Element | Kind | One-line | Where it lands | Status |
+|---|---|---|---|---|
+| **seam-probe the artifact (gates test claims; probes test joins)** | verification-ladder entry | The night's two REAL defects (empty footnote defs from per-spine `-f html`; defs-after-index swallowed by the trim) were invisible to EVERY wired word-level gate — no words lost, only structure detached — and caught only by boundary-line probes + a def-content assertion. Instrument: after any structural transform, probe the SEAMS (def content non-empty, boundary lines, join sites), never only the gates. Joins the authorized Stroke-2 ladder batch. | `reference-verification-ladder.md` | **PROPOSED (→ Stroke-2 batch)** |
+| **cmp-after-apply (tool-report ≠ write-decision)** | verification-ladder entry | `strip_cruft --apply` prints its transform counts BEFORE the write decision; three distinct refusal causes in one night (residual, prose-guard, existing backup) each read as "applied" until `cmp` proved otherwise — and a vacuous prose_delta(identical files)==0 rode one of them. Instrument: after ANY `--apply`, verify the write (cmp/mtime) before trusting downstream checks. Joins the Stroke-2 batch. | `reference-verification-ladder.md` | **PROPOSED (→ Stroke-2 batch)** |
+| **`convert_lane_borndigital.py` → fleet promotion** | tool promotion | The one-door born-digital lane driver (whole-EPUB inject → whole-EPUB pandoc `-f epub -t markdown-smart` + non-empty-defs teeth) lives in the pilot dir; the 47-file class will run it repeatedly. Promote to `scripts/` + test_tools fixture when the class batch starts (build-on-need — not before PENDING-69's mechanism makes landings repeatable). | `scripts/` | **PROPOSED (build-on-need)** |
+
+*(No skill patches: wake-up/wrap-up/symmetria/jurist-package all served as written this session.)*
|