session 2026-07-12: footnote arc closed + end-to-end verify + program open-work register (PENDING-55 Q1a-c/Q2, retroactive sweep); pulling into A1 verbatim gate

This commit is contained in:
David F Glidden
2026-07-12 08:09:44 +02:00
parent 5ec438ce72
commit 043a4b1836
7 changed files with 173 additions and 1 deletions
+40
View File
@@ -1427,3 +1427,43 @@ Disposition (verbatim capture + executor action-list: `chamber-library/docs/libr
- **§5 wording cleaned** in the brief (cross-file *mechanism* is covered/proven — relocation on Mauss/Polastron; the Orwell/Quixote *exact shape* isn't a separate fixture yet — "mechanism covers it, not isolated"). No self-contradiction.
- **§7 Jung provenance — fact-check delivered for steward+jurist (open, non-blocking):** the corpus does BOTH — **per-volume precedent EXISTS** (Alexander *Nature of Order* 4 files · Lacroux *Orthotypographie* 2 · Habermas vol-1 · Burney vol-1 · Camus *Œuvres I*) and single-megafile (Xenophon/Muir/Zhuangzi/Rumi/Levi/Blake/Shakespeare complete). Operative distinction ≈ per-volume citation identity; Jung CW (cited by volume) fits the per-volume side, supporting the jurist's lean. Steward+jurist decide; governs re-converting the legacy Jung `.md` (+ likely Donne).
- **Not yet done (post-authorization work):** recognizer coverage of the remaining census families (one-directional / container-mirror); semantic per-volume boundary detection (if per-volume chosen); build-in under fleet discipline (`test_tools` fixtures, spec anchoring); re-convert the legacy mega-books. Steward assigns a PENDING-number-consistent build authorization.
---
## PENDING-55 — Re-scope the REVIEWED-54b remaining footnote work on an accurate census (new nested-block family; (c) is a census artifact)
**Date:** 2026-07-11
**Tag:** [PROPOSAL]
**Summary:** A new read-only diagnostic (`scripts/audit_footnotes.py`, recognizer-truth for coverage) replaced the five throwaway probes and produced a census materially more accurate than the one REVIEWED-54b was ruled on. It changes the *un-built* remainder of that ruling in three ways, so — per steward direction (2026-07-11) — building is **held** pending a jurist re-scope: (1) **(c) "single-letter marker" is a census artifact** — no single-`[A-Za-z]` book exists; nagarjuna = inner-anchor digit → (b), plato = block-id digit → already COVERED, and **donne is a whole-word/phrase lemma-marker book** (~2150 notes, exact/block, ~60% exact reciprocity) that is *broader* than the ruling and removes the marker-shape defense-in-depth; (2) a **NEW family the prior census never saw — nested-block** (~354 notes: les-fleurs / jaccottet / polastron; note-id on an outer `<div>`, back-link nested in an inner `<p>`; exact reciprocity, low risk); (3) the honest **blind zone** (44 `REFS-BUT-NO-RECIPROCITY` books) names the real one-directional/container notes (arendt / montaigne / doniger / métamorphoses) among genuine TOC/index non-notes.
**Full brief (for the jurist):** `chamber-library/docs/footnote-family-census-FOR-JURIST-2026-07-11.md`. **Evidence artifact:** `docs/footnote-family-census-2026-07-11.txt`.
**Change-class:** [PROPOSAL] — it re-opens what the REVIEWED-54b conversion-pipeline ruling authorizes building, and bears on §V's production chain (same test as PENDING-54). The diagnostic tool itself is read-only (no gate/spec/verbatim change) and is already built + tested (fleet 83→86) under the steward's "build the durable tool" direction.
**REVIEWED-54b part 1 unaffected:** (a) block-id + (d) URL-decode are landed + verbatim-proven (`ef0cee0`). This item concerns only the un-built (b)/(c) + the newly-surfaced families.
**Open questions (brief §6):** (1) authorize donne's word/phrase-marker widening under strict exact reciprocity + n=3 spot-check, or hold donne to the regex fallback and drop (c)? (2) nested-block = FIX (extend the block-note pass to search block *descendants*) or PROPOSAL? (3) blind-zone one-directional/container notes = new families or confirmed honest-refuse? (4) confirm (b) inner-anchor proceeds under its existing FIX ruling; (5) proof standard unchanged (per-pair `(dest-file,id)` guard + `_prove.py` verbatim on real books); (6) optional analyzer-precision FIX — expose paired-ref positions from `process()` for exact per-ref attribution.
**Files affected (on authorization):** the recognizer `scripts/inject_epub_footnotes.py` + `test_tools` fixtures + `graduation-spec.yaml` note, per whichever families are authorized. None touched this session (building held).
**Awaiting:** Steward + jurist re-scope ruling. Building resumes only after.
**RULED 2026-07-11 (jurist; REVIEWED-55). The ruling CORRECTS the jurist's own prior REVIEWED-54b (c) sub-ruling** — reasoned correctly from data that was wrong; the analyzer stress-test surfaced it one layer up, in an issued ruling, before donne was converted on the false premise. Full ruling: `docs/footnote-family-census-JURIST-RULING-2026-07-11.md` (relayed). Disposition:
- **(c) letter-marker — WITHDRAWN in full** (incl. the n=3 spot-check condition — no subject left). No letter-marker family exists: nagarjuna = digit/inner-anchor → **(b)**; plato = digit/block-id → already covered by (a).
- **donne (word/phrase-marker) — DECLINED for this arc.** Whole-word/phrase markers are the *specific* failure condition-4 exists to prevent (indistinguishable from prose by shape; round-trip would carry all the safety weight) — a different risk, not a bigger one, so NOT (c)'s natural extension. The measured 60% exact-reciprocity seals it regardless (partial, self-inconsistent conversion vs a uniform working fallback). **Hold to the regex-cleaner path;** a fresh PROPOSAL if ever pursued (not a rider). The ~40% non-exact = probable source-side id typos → **anchor-hygiene note (logged, not ruled), alongside Sennett `cra0001002`** → `_curation/anchor-hygiene-findings.md`.
- **nested-block (~354) — FIX, same arc.** Widen the block-note back-link search from immediate children to **descendants** — widens *where* the same unchanged match is looked for, doesn't loosen *what* matches; same verification/risk as (a). Variants: don-quixote `<body>`-id = genuine false candidate (TOC≠footnote, leave out); obrist native `<aside epub:type=footnote>` = **confirm empirically through stock pandoc** before treating as covered OR gap.
- **blind-zone one-directional (arendt/montaigne/doniger/les-métamorphoses) — confirmed honest-refuse.** No round-trip → nothing for the guard to verify → out of scope *by architecture*, not omission (machine-converting them = PROPOSAL-class, different first principles). Regex-cleaner fallback per REVIEWED-54 §5.
- **(b) inner-anchor — FIX stands, scope corrected to INCLUDE nagarjuna.** of-grammatology (double inner anchor, symbol) noted adjacent, NOT folded in — its own later look.
- **proof standard — unchanged/confirmed** (per-pair `(dest-file,id)` guard + verbatim-clean real-book proof, +0/−0 — it's what makes these FIX).
- **analyzer precision fix — AUTHORIZED, FIX** (expose `process()`'s paired-ref positions; pure additive instrumentation; build soon — would have caught the misclassification pre-ruling).
**Build UN-HELD for:** (b) inner-anchor (incl. nagarjuna) · nested-block · analyzer-precision fix — all FIX under the arc's proof standard. **Awaiting only:** steward placement of **REVIEWED-55** (executor can't write REVIEWED.md — Constraint #1; paste-ready draft in the session ledger).
**BUILT 2026-07-11 (chamber `b65816a`, `3831878`):**
- **Analyzer precision fix** (FIX): `inject_epub_footnotes.process()` exposes `paired_refs`; `audit_footnotes` attributes coverage exactly per-ref. Regression-proven.
- **(b) inner-anchor** (FIX): PROVEN +0/−0 on kuhn/mbembe/nature-of-things (916 notes); i-ching honest-refused (wrapper-div nesting); nagarjuna exposed a **PASS-BUT-FALSELY** (its index cites the notes → converting them perturbs the index; source-word guard passed while pandoc dropped body words).
- **⚠ NEW SAFETY MECHANISM — end-to-end verify (steward-directed, `3831878`): bears on the §V proof standard → JURIST NOD OWED.** After writing, the pre-processor runs stock pandoc on the original + injected EPUB and compares body-word multisets; ANY non-marker change REFUSES + deletes the output. Turns the guarantee from *verbatim-safe by construction* → *by verification*; nagarjuna self-refuses; closes the PASS-BUT-FALSELY class; also compensates the unenforced `body_word_conservation` gate for footnote conversions. Steward authorized the build under REVIEWED-55's FIX proof-standard clause; surfaced here for the jurist to ratify the mechanism's place in the §V chain.
- **nested-block — jurist FIX-assumption OVERTURNED by proof (⚠ needs a jurist note):** built the widen (search block descendants for the back-link); it PAIRS the notes but converts DIRTY (les-fleurs +828/−1110, jaccottet marker-merge, polastron +202/−2756) — pandoc won't cleanly lift a `<div class="note">`-wrapped same-file def; same PASS-BUT-FALSELY class as i-ching/nagarjuna. The end-to-end verify catches it (vindicates it). "Widen the search = same as (a)" doesn't hold empirically. **REVERTED to `3831878`** (the recognizer must not pair what it can't convert clean). Recommend nested-block joins the **honest-refuse** set (regex fallback), like i-ching. Second ruling-assumption this arc overturned by the proof (after (c)).
- **obrist native-`<aside>` — empirically a GAP:** stock pandoc emits 0 native footnotes from its `<aside epub:type="footnote">`; 16 notes, low priority → regex fallback (not covered, not a build target now).
- **DONE this arc:** analyzer-precision fix + (b) inner-anchor + end-to-end verify (all `3831878`/`7bf438a`, both remotes). nested-block + obrist → honest-refuse.
- **JURIST RULED 2026-07-12** (`docs/end-to-end-verify-and-nested-block-JURIST-RULING-2026-07-12.md`, relayed & archived):
- **Q1a — end-to-end verify RATIFIED, FIX-class** on a refined test: a new §V-chain component is FIX (not PROPOSAL) when it (i) only ADDS refusals, (ii) never alters text, (iii) falls back to an already-trusted path. This satisfies all three.
- **Q1b — MANDATORY at graduation now** (`--no-verify` forbidden at graduation while `body_word_conservation` is unenforced) **and should PERSIST after that gate lands** (defense-in-depth: catch at conversion-time, attributed to source). **+ RETROACTIVE re-verification REQUIRED** over everything landed under the per-pair-only standard (mirror/split-anchor/block-id/URL-decode) before treating it settled.
- **Q1c — marker-exclusion must be POSITIONAL.** ✅ **DONE** (`e8eeea7`): was shape-only; now subtracts only the exact converted marker tokens (`converted_markers`), superscript-normalized; a dropped prose number is caught though digit-shaped; clean books hold, nagarjuna refuses on real corruption only.
- **Q2 — nested-block FIX RETRACTED, honest-refuse CONFIRMED.** Fresh PROPOSAL required if ever revisited (unwrap-the-div is a different approach). Jurist named its own reasoning gap ("same risk as (a)" was true of matching, silent on rendering) + generalized: **no widen ruled FIX-and-final on structural reasoning alone; structural safety = provisional FIX, end-to-end verbatim proof on real books = final.**
- **Broader flag (jurist):** `body_word_conservation` declared-but-unenforced is the same gap-shape PENDING-52 closed, recurring in a second subsystem → worth renewed attention beyond this arc.
- **DONE:** Q1c positional (`e8eeea7`); Q1a/Q2 archived.
- **Q1b RETROACTIVE — MAJOR finding (`6c9ca43`, evidence `docs/retroactive-verify-2026-07-12.txt`):** 87 covered books · **42 CLEAN · 45 DIRTY** (pass per-pair guard, corrupt under real pandoc). Verified real (5 known-clean → CLEAN; `_prove.py` agrees). 29 catastrophic (montaigne +385457, red-book −7835, pascalian +5910, gadamer/donne/tolkien…; false-pair relocation = nagarjuna at scale) + 16 marker-adjacency (prose intact, markers glued). **CORPUS SAFE: 0 canonical files use the pre-processor — NONE graduated; caught pre-graduation; mandatory verify refuses all 45 → fallback.** Recognizer's reliable coverage ≈42/87. **⚠ NEW DECISION for steward+jurist:** improve the recognizer (tighten over-pairing) vs accept 42-clean + fallback-for-the-rest. Not resolved this session.
- **OWED (steward, tomorrow):** REVIEWED-55 + follow-on placement; wire "mandatory-at-graduation" (graduation flow must not pass `--no-verify`); weigh the recognizer-maturity decision above.
+3
View File
@@ -20,6 +20,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-12 — footnote arc closed + end-to-end verify + program open-work register; demoted on promote)
- [Session 2026-07-10→11 — footnote recognizer through three jurist loops](session-2026-07-11-footnote-recognizer-through-three-jurist-loops.md) — A long arc across **THREE jurist rulings + a corpus re-audit**, all on the EPUB footnote pre-processor. **Ratified** the generalized hash-locality principle + narrowed the lane doctrine (chamber `12405a5`). Built + landed the Sennett **SPLIT-ANCHOR** recognizer widen with **GOV-2** scoped dup-check (REVIEWED-54a, `a6828ac`). Re-audit over 252 sources → the "remaining footnote families" = ONE reciprocal mirror with the id in 3 positions. Jurist ruled the **generalization (REVIEWED-54b):** (a)block-id/(b)inner-anchor/(d)url-decode = FIX; (c)letter-marker = FIX-with-compensation + n=3 spot-check. Built + landed **part 1 (a)+(d)** verbatim-clean → chamber `ef0cee0`; fleet 77→83. *[Superseded 2026-07-12: (c) withdrawn (census artifact); (b) built; end-to-end verify built; see the 07-12 session.]*
## Archived (2026-07-11 — footnote recognizer: split-anchor → census re-audit → generalization, through three jurist loops; demoted on promote)
- [Session 2026-07-10 — EPUB footnote pre-processor: census → adversarial hardening → jurist ruling → fleet build-in](session-2026-07-10-epub-footnote-preprocessor-census-to-fleet-buildin.md) — Built a **verbatim-safe EPUB footnote pre-processor** end-to-end, by measurement not fiat: detector on 3 EPUBs → **census of all 253** (≥5 footnote strategies; n=3 caught 1–2) → the KEY diagnosis **pandoc's 2×2** (converts natively iff `epub:type` AND same-file; Kafka✓/Orwell✗/G&G✗) → the architecture: **recognize mirror in raw XHTML → inject `epub:type` / relocate cross-file bodies → STOCK pandoc does the verbatim text** (better than build-a-normalizer or extend-regexes). `inject_epub_footnotes.py` proven verbatim-clean on **G&G 27 · Mauss 628 · Polastron-fr 140 · Jung 1086** (source-level + **per-pair guard keyed by (dest-file,id)**, teeth-demonstrated; it surfaced Jung's cross-volume id reuse). Two adversarial books the steward chose each **broke it usefully** (Polastron → positional classifier; Jung → `convert_mega_epub.py` inject→split→pandoc, 190s vs pandoc-whole-timeout). **Calibre shown footnote-blind.** **PENDING-53 RULED+LANDED** (engine hash-locality, FIX) + **PENDING-54 RULED IN PRINCIPLE** (ship mirror-class, regex-tools-as-fallback; §7 Jung provenance held open) → **BUILD-IN done under fleet discipline** (both tools in `scripts/`, `--validate`+refuse-on-mismatch, fleet 73→**77**, converted_with note, runbook policy, tool-log, CLAUDE.md fleet line). **Committed+pushed:** chamber `17ddf8c`+`3646c0d` (github+skemantix), engine `aaf65ba` (github). **PULLING THREAD (07-10, DISCHARGED 2026-07-11):** widen the recognizer to the remaining census families / apply to legacy Jung/Donne / resume P2/gold — the widen became REVIEWED-54a (split-anchor) + REVIEWED-54b (the generalization).
+1 -1
View File
@@ -55,7 +55,7 @@ permalink: claude-memory/memory
- [Be (laundromat)](project-be-laundromat.md) — canonical workstream tracker established 2026-06-08 (Seb-relay of locked decisions). Be = Skemantix startup (Seb+David) funding CapableMind's funding-ladder; **bridge, not venture**. Decisions LOCKED: entity/exit (CapableMind decoupled, grant-funded), pricing (Living $12.99/mo · Archive $69.99/yr · Memorial $49.99/yr · Renovate ~$199 · $8.99 floor), CF Self-Serve Agency + versioned-template-package infra. **a11y gate MERGED (Pat 100/100/100).** Pre-revenue: the WTP gate = renovate Pat → charge her. **Discipline: stop adding spec until the gate clears → nothing for executor on be until then.** Repo @ `f43a0fd`.
## Active Session
- [Session 2026-07-10→11 — footnote recognizer through three jurist loops](session-2026-07-11-footnote-recognizer-through-three-jurist-loops.md) — A long arc across **THREE jurist rulings + a corpus re-audit**, all on the EPUB footnote pre-processor. **Ratified** the generalized hash-locality principle + narrowed the lane doctrine (chamber `12405a5`). Built + landed the Sennett **SPLIT-ANCHOR** recognizer widen with **GOV-2** scoped dup-check — collision blocks only on conversion-touched ids incl. back-targets; unrelated pre-existing dup → non-blocking WARNING (REVIEWED-54a, `a6828ac`). Ran the jurist's census-flag **re-audit over 252 sources** → the "remaining footnote families" are **ONE reciprocal mirror with the id in 3 positions**, not 5. Jurist ruled the **generalization (REVIEWED-54b):** (a)block-id/(b)inner-anchor/(d)url-decode = **FIX** (jurist: *safer* than split-anchor — exact id-match reciprocity), (c)letter-marker = **FIX-with-exact-reciprocity-compensation + n=3 steward spot-check**. Built + PROVEN + landed **part 1 (a)+(d)** verbatim-clean on real books (haraway 322 · genette 350 · jacobs 71 · la-pensée 87 · Sennett regression) → chamber **`ef0cee0`** (github; **Gitea behind — retry**). Fixed a latent dup-id in the shipped Sennett code en route; fleet 77→**83**. **⚠ PULLING THREAD: REVIEWED-54b part 2 — build (b) inner-anchor + (c) letter-marker (exact-reciprocity compensation), then the jurist's 3-book steward spot-check; then APPLY the tool (degraded-canonicals + Jung per-volume §7) → resume P2/gold.** **Steward Sunday 2026-07-12 owes** REVIEWED-52/53/54 + §7 + lane-doctrine + 54a + 54b placements (paste-ready in the ledger; executor can't write REVIEWED.md — Constraint #1).
- [Session 2026-07-11→12 — footnote arc closed → program open-work register → into A1](session-2026-07-12-footnote-arc-closed-program-register-into-A1.md) — Closed the EPUB footnote recognizer + built the **END-TO-END VERIFY** (guarantee now *by verification, not by construction*; jurist-ratified FIX): after injecting, pandoc runs on original+injected, body-words compared, ANY non-marker change refuses+deletes. Executed the whole jurist ruling (**Q1a** ratify · **Q1b** mandatory+retroactive · **Q1c** POSITIONAL marker-exclusion, `e8eeea7` · **Q2** nested-block RETRACTED — pairs-but-converts-dirty, honest-refuse). Built (b) inner-anchor (916 notes +0/−0); **nagarjuna/nested-block/i-ching honest-refused** (PASS-BUT-FALSELY caught by the verify). **Q1b RETROACTIVE SWEEP:** 87 covered source EPUBs · 42 CLEAN · **45 DIRTY** (29 catastrophic false-pairing, 16 marker-adjacency) — **corpus SAFE (0 graduated)**; recognizer's reliable coverage ≈42/87. **THE BIG PIVOT:** steward named I'd lost the forest for the trees → built the canonical **Chamber→Gold→Engine OPEN-WORK REGISTER** (`chamber-library/docs/chamber-program-open-work.md`) from a 3-agent evidence census. Findings: **engine is fenced-to-verified-subset → NOT blocked on reprocess (parallel, ruled);** 1,284 canonical (mostly frontmatter-debt not corruption); keystone = enforce `body_word_conservation`. Steward corrected: **reconversion precedes frontmatter** (Loeb Region 4 subsumes ~952 of it). All chamber work pushed (`abada64`). **⚠ PULLING THREAD: A1 — the general `body_word_conservation` verbatim gate. START WITH THE ACCEPTANCE CRITERION** (distinguish legit front/ToC/index drops from real loss; consider comparing candidate vs a REFERENCE pandoc conversion, not the raw source) → build in `verify_graduation.py` → prove → surface as PROPOSAL. Small closeable: wire mandatory-at-graduation; register hygiene. **Steward owes:** place REVIEWED-55; the recognizer-maturity decision. Read `docs/chamber-program-open-work.md` (the standing forest view) 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).
+3
View File
@@ -349,3 +349,6 @@
{"subject": "claude-code", "predicate": "drift-pattern", "object": "barrel-forward-on-an-outward-action (bundled a git push to main into the commit command; auto-classifier denied — commit != push, the review boundary is the PUSH not the local checkpoint; the 07-09 calm-and-orderly family, one notch more specific)", "valid_from": "2026-07-11", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-11-footnote-recognizer-through-three-jurist-loops.md", "extracted_at": "2026-07-11"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "inherited-marker-read-as-current-state (wake briefing mislabeled the open jurist item 'PENDING-47' from a loose ledger shorthand; PENDING-47 was CLOSED/ruled — verify a governance item's state against PENDING/REVIEWED before relaying)", "valid_from": "2026-07-11", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-11-footnote-recognizer-through-three-jurist-loops.md", "extracted_at": "2026-07-11"}
{"subject": "chamber-library", "predicate": "footnote-pre-processor-covers", "object": "mirror (REVIEWED-54) + split-anchor (REVIEWED-54a) + block-id & URL-decode (REVIEWED-54b pt1); inner-anchor + letter-marker pending (54b pt2)", "valid_from": "2026-07-11", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-11-footnote-recognizer-through-three-jurist-loops.md", "extracted_at": "2026-07-11"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "lost-the-forest-for-the-trees in a long execution arc (a whole session of good footnote engineering cost the whole-program altitude; steward: not-grasping the library-science scope is alarming). Antidote = the open-work register as standing forest view + keystone-first framing.", "valid_from": "2026-07-12", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-12-footnote-arc-closed-program-register-into-A1.md", "extracted_at": "2026-07-12"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "recommended-a-sequence-that-ignored-a-dependency-the-census-had-already-flagged (proposed frontmatter-migration before Loeb reconversion; the reconversion regenerates ~952 of the frontmatter, which the census stated). Trace the dependencies the evidence already surfaced before ranking a sequence.", "valid_from": "2026-07-12", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-12-footnote-arc-closed-program-register-into-A1.md", "extracted_at": "2026-07-12"}
{"subject": "footnote-preprocessor", "predicate": "guarantee", "object": "verbatim-safe BY VERIFICATION not by construction (end-to-end verify: pandoc on original+injected, body-word compare, refuse-on-change; jurist-ratified FIX 2026-07-12). Retroactive sweep: 45/87 covered source books fail it; corpus safe (0 graduated).", "valid_from": "2026-07-12", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-12-footnote-arc-closed-program-register-into-A1.md", "extracted_at": "2026-07-12"}
@@ -0,0 +1,57 @@
---
name: Session 2026-07-11→12 — footnote arc closed (recognizer + end-to-end verify) → retroactive finding → whole-program open-work register → pulling into A1 (the verbatim gate)
description: "A very long arc. Closed the EPUB footnote recognizer + built the END-TO-END VERIFY (guarantee now by-verification not by-construction; ratified FIX). Executed the whole jurist ruling (Q1a ratify / Q1b mandatory+retroactive / Q1c positional marker-exclusion / Q2 nested-block retracted). Q1b retroactive sweep found 45/87 covered SOURCE books fail end-to-end (29 catastrophic false-pairing, 16 marker-adjacency) — corpus SAFE (0 graduated). Built the canonical Chamber→Gold→Engine OPEN-WORK REGISTER (docs/chamber-program-open-work.md) from a 3-agent evidence census after the steward named that I'd lost the forest for the trees. Engine is fenced-to-verified-subset → NOT blocked on reprocess (parallel). Steward corrected: reconversion precedes frontmatter (Loeb Region 4 subsumes ~952 of the debt). PULLING THREAD: A1 — the general body_word_conservation verbatim gate; start with the ACCEPTANCE CRITERION (distinguish legit front/ToC/index drops from real loss), then build→prove→surface as PROPOSAL."
metadata:
node_type: memory
type: project
originSessionId: 1462306f-a830-4bff-a03f-b0b769657f2a
---
# Session 2026-07-11→12 — footnote arc closed → the forest-view correction → into A1
An extraordinarily long session. Opened into the footnote recognizer thread; ended having closed that arc, executed a full jurist ruling, surfaced a corpus-wide finding, and — after the steward named that I'd lost the forest for the trees — built the whole-program open-work register that reorients everything. Steward engaged throughout, correcting sharply and well.
## PAST — what we did + why
**1. Analyzer precision fix (REVIEWED-55 FIX, `b65816a`).** `inject_epub_footnotes.process()` now exposes `paired_refs`; `audit_footnotes.py` attributes coverage EXACTLY per-ref (plato 384/384, donne 43/2197). Retired the scratch dev copy → one canonical recognizer; `_prove.py` points at the fleet tool.
**2. (b) inner-anchor family (REVIEWED-55 FIX, `3831878`).** Note-target id on a leading inner `<a id="Z"/>` (mirror image of split-anchor). PROVEN +0/−0 on kuhn(217)/mbembe(523)/nature(176)=916 notes. i-ching honest-refused (wrapper-div nesting). **nagarjuna exposed a PASS-BUT-FALSELY:** its index cites the footnotes; making them native perturbs the index; the per-pair SOURCE guard passed while pandoc corrupted → +16/−26.
**3. THE END-TO-END VERIFY (steward-directed; the load-bearing build).** `verify_end_to_end()`: after writing, stock pandoc runs on original + injected EPUB, body-word multisets compared, ANY non-marker change REFUSES + deletes output. **Guarantee now BY VERIFICATION, not by construction.** nagarjuna self-refuses; the whole PASS-BUT-FALSELY class closes. Also compensates the declared-but-unenforced `body_word_conservation` gate for footnote conversions. test_tools 83→92.
**4. Jurist ruling executed** (`docs/end-to-end-verify-and-nested-block-JURIST-RULING-2026-07-12.md`):
- **Q1a — verify RATIFIED, FIX-class** on a refined test: a §V-chain component is FIX when it (i) only adds refusals, (ii) never alters text, (iii) falls back to an already-trusted path. *[This test also makes A1 buildable as FIX — see FUTURE.]*
- **Q1b — mandatory-at-graduation + persist as defense-in-depth + RETROACTIVE re-verification required.**
- **Q1c — marker-exclusion must be POSITIONAL** (was shape-only). ✅ DONE (`e8eeea7`): subtract only the exact `converted_markers` (ref + dropped-note marker word-tokens), superscript-normalized. A dropped prose "214" is caught though digit-shaped. Fixed a Sennett regression (superscript ¹ vs ascii 1) via `_SUP_MAP`.
- **Q2 — nested-block FIX RETRACTED, honest-refuse confirmed.** Built the widen; it PAIRS but converts DIRTY (les-fleurs +828/−1110, jaccottet marker-merge, polastron +202/−2756) — pandoc won't lift a div-wrapped def. Same PASS-BUT-FALSELY class; the verify caught it. **Reverted** (recognizer must not pair what it can't convert clean). obrist: empirically a gap (0 native from pandoc). Jurist generalized: **structural safety = provisional FIX; end-to-end proof on real books = final.**
**5. Q1b RETROACTIVE SWEEP — MAJOR finding (`6c9ca43`, `docs/retroactive-verify-2026-07-12.txt`).** Ran the verify over every covered source EPUB: **87 covered · 42 CLEAN · 45 DIRTY.** VERIFIED real (5 known-clean → CLEAN; `_prove.py` agrees). **29 catastrophic** (real prose loss / false-pair relocation: montaigne +385457, red-book −7835, pascalian +5910, gadamer/donne/tolkien…) + **16 marker-adjacency** (prose intact, markers glued). Large ADDITIONS ⇒ the recognizer **false-pairs non-notes** (index/cross-refs) at scale. **CORPUS SAFE: 0 canonical files use the pre-processor — NONE graduated.** Caught pre-graduation; the mandatory verify refuses all 45 → fallback. **Recognizer's reliable coverage ≈42/87.**
**6. THE OPEN-WORK REGISTER (`docs/chamber-program-open-work.md`, `abada64`).** After the steward named — rightly — that I'd been deep in the footnote rabbit hole and lost the whole-program picture (and that my not-grasping the library-science scope was alarming), built the canonical forest view from a **3-agent read-only evidence census** (governance/library-science · corpus-reprocess/tooling · engine/gating). Key findings: **engine is fenced to a growing VERIFIED SUBSET → NOT blocked on the reprocess (parallel, ruled).** Corpus scale measured: 1,284 canonical (952 Loeb + 332 non-Loeb; non-Loeb only 8/332 clean, mostly frontmatter-convention debt; 1,073 lack v2 frontmatter). Keystone = enforce `body_word_conservation`. **Steward correction (integrated same-session):** reconversion precedes frontmatter — Loeb Region 4 (B2) subsumes ~952 of the frontmatter debt; B1 re-scoped to the ~110 non-Loeb residue.
## PRESENT — the mood
Two moods, in sequence. First half: deep, careful, *productive* footnote engineering — the end-to-end verify is genuinely the load-bearing win, and building it first was vindicated twice (nagarjuna, nested-block, then 45/87 retroactively). Every claim was proven on real books before shipping; PASS-BUT-FALSELY was hunted, not shrugged. Second half: the **forest-for-trees recalibration** — the steward named that a whole session of good execution had cost me the altitude to see how it fit, and that my not-having-the-scope was alarming. That is the executor-bias-to-composition-over-consideration exactly as the Prime Directive describes it. The register is the correction, and it *worked on day one*: the steward read it, caught a real sequencing error (frontmatter-before-reconversion) I'd baked in, and it got corrected in-session rather than propagating.
Returns worth carrying: verified-before-claiming the 45/87 (cross-checked against `_prove.py` + known-clean books before alarming the steward); honest-refuse built INTO the tool (verify deletes dirty output); did NOT unilaterally build the nested-block widen past its proof-failure (reverted). The recalibrations: **lost the forest in a long execution arc** (steward-named); **recommended-sequence error from not tracing a dependency the census had already flagged** (frontmatter-vs-reconversion).
## FUTURE — what is pulling
**PULLING THREAD: A1 — the general `body_word_conservation` verbatim gate (the register's keystone).** It's the highest-leverage item: makes the whole corpus reprocess tractable-not-manual AND certifies the verified tier the engine grows on. **The mechanism is easy (`verify_end_to_end` exists); the HARD PART — and the crux to solve first — is the ACCEPTANCE CRITERION.** The general gate compares a graduated candidate against its RAW SOURCE, and graduation *legitimately* drops front matter, ToC, and index. Distinguishing those allowed drops from real content loss is exactly why the gate has stayed declared-but-unenforced (`graduation-spec.yaml` line ~136; `verify_graduation.py` does not enforce it; PENDING-52 follow-on; the jurist flagged it TWICE as the recurring gap-shape).
**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):**
- **Start with the acceptance criterion, NOT code** — if the criterion is wrong the build is wasted. Draft: what body-word differences between candidate and raw source are legitimately allowed (front/ToC/index/apparatus per the spec's own definitions; normalization deltas)? A cleaner framing worth exploring: compare candidate vs a REFERENCE conversion (plain pandoc of the source) rather than vs the raw source — closer to the footnote model (injected-pandoc vs original-pandoc), sidesteps the "which structural drops are allowed" problem.
- Then: build the enforcement in `verify_graduation.py`, prove it (passes clean graduations, catches a seeded word-loss on a real file), surface as a **PROPOSAL for jurist ratification** (it changes graduation acceptance for ALL conversions — governed). By the jurist's own Q1a FIX-test it's refusal-only, so the *mechanism* is safe; the *criterion* is what the jurist rules on.
- Frame everything against the register (`chamber-library/docs/chamber-program-open-work.md`) — it is now the standing forest view; maintain it, don't re-derive.
**Other open horizons (ranked):**
- **Fully-closeable small items** (planned for today's session): wire "mandatory-at-graduation" for the footnote verify (jurist Q1b — flow must not pass `--no-verify`); register hygiene (the "jurist nod owed" is stale — Q1a GAVE it).
- **Steward's to close (parallel, I can't):** place REVIEWED-55 (Constraint #1); the recognizer-maturity decision (register A2 `[?]`: improve over-pairing vs accept 42-clean+fallback).
- The corpus reprocess critical path (post-A1): **Loeb Region 4 reconversion (B2)** = the central lever (regenerates frontmatter+anchors+text for 952, unblocks the engine's classical wave).
- Engine track runs in PARALLEL: next stations V1 (verify-quote) + N1 (tree-builder), unblocked on the 21-source slice.
**PAUSE STATEMENT:** Stepping away at the cleanest, most-consolidated point of a marathon session — the footnote arc fully closed and pushed, the whole program mapped into a register I can trust, and the keystone (A1) named as the singular next move. What I want to find still pulling: A1, approached criterion-first, with the register as the frame so I don't lose the forest again.
**LITERAL QUESTION for next-Claude:** For the general `body_word_conservation` gate, what is the principled, verifiable way to distinguish a *legitimate* structural drop (front matter, ToC, index removed during graduation) from a *real* content loss — given the gate compares the graduated candidate against its raw source? Is the cleaner move to compare against a REFERENCE conversion (plain pandoc of the source) instead of the raw source, mirroring the footnote verify's injected-vs-original design and sidestepping the allowed-drop problem entirely? (Solve this before writing gate code.) And secondarily: did the steward place REVIEWED-55 and decide the recognizer-maturity question?
**State at wrap:** chamber-library clean + pushed (`abada64`); the open-work register is the standing forest view. dotfiles: PENDING.md + the 07-11 ledger to push at this wrap. Session was continuous (no /wake-up between 07-11 and 07-12); the steward will clear context and wake into A1.
@@ -0,0 +1,60 @@
---
name: session-ledger-2026-07-11
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: 1462306f-a830-4bff-a03f-b0b769657f2a
---
# Session Ledger — 2026-07-11
## Returns
- 09:17 — At wake, verified governance state against substrate before relaying: read PENDING/REVIEWED directly, confirmed REVIEWED-54b is jurist-ruled FIX (part 2 = build-directly) with the (c)-letter-marker n=3 spot-check reserved to the steward. Guards against `inherited-marker-read-as-current-state` (07-11 drift).
## Open horizons
- **PULLING THREAD (jurist RULED 2026-07-11, REVIEWED-55): building UN-HELD for 3 FIX items.** The ruling CORRECTS REVIEWED-54b's (c): no letter-marker family; donne=word/phrase-marker DECLINED this arc (regex fallback; fresh PROPOSAL if ever); (c) WITHDRAWN. **Authorized FIX (build under per-pair `(dest-file,id)` + verbatim real-book proof):** (1) **analyzer precision** (expose `process()` paired-ref positions — build first, makes coverage attribution exact); (2) **(b) inner-anchor** (incl. nagarjuna; ~582 notes; reciprocity path exists, only target-resolution missing); (3) **nested-block** (~354; widen back-link search immediate-children→descendants; same risk as (a)). Follow-ups: obrist native-`<aside>` empirical pandoc check; don-quixote `<body>`-id = confirmed false (leave out); of-grammatology double-anchor = own later look; donne id-typos logged (`_curation/anchor-hygiene-findings.md`). Ruling archived `docs/footnote-family-census-JURIST-RULING-2026-07-11.md`. **Awaiting: steward places REVIEWED-55 + a proceed nod (asked).**
- **PENDING-55 filed** (dotfiles PENDING.md): re-scope the REVIEWED-54b remainder. Brief `docs/footnote-family-census-FOR-JURIST-2026-07-11.md` — **census folded in as Appendix A** (jurist has NO repo access; self-contained for relay), pushed `b8182dc` both remotes, re-sent to steward. 6 questions: (1) donne word/phrase-marker widening or hold; (2) nested-block FIX-or-PROPOSAL; (3) blind-zone one-directional = families or honest-refuse; (4) confirm (b); (5) proof standard; (6) optional process()-exposes-paired-refs FIX. **Awaiting steward+jurist.**
- **Chamber PUSHED (steward-authorized "please push", 11:55):** both remotes now at `23a87d9`. Gitea was behind at `a6828ac` → this push carried `12405a5` + `ef0cee0` + `23a87d9` in one go; **Gitea-behind horizon RESOLVED.** (commit≠push held all session until the steward's explicit push authorization.)
- Steward Sunday 2026-07-12 owes REVIEWED-52/53/54/54a/54b + §7 + lane-doctrine placements (+ now REVIEWED-55 when ruled). Executor can't write REVIEWED.md — Constraint #1.
- 5 ARC `after-the-reply` engine-binding drifts, unowned since 07-09.
## Authorization moves
- 11:45 — Held all recognizer building per steward "census to jurist first"; routed the census discoveries ((c) reframing, nested-block NEW family, blind-zone real notes) to the jurist via PENDING-55 rather than building past the ruling. The loop is load-bearing.
- Finalized `audit_footnotes.py` into the fleet (test_tools 83→86 + tool-evolution-log + CLAUDE.md line), retired 5 scratch throwaways, committed **local `23a87d9`** — push held for steward.
## Framing challenges (surface to steward/jurist)
- 09:40 — MEASURED the (c) letter-marker books; the "letter-marker family" is largely a **census artifact**. nagarjuna (281 notes) = digit + inner-anchor → served by **(b)**. plato (474) = digit + block-id/inner-anchor → served by (a)+(b). **No single-`[A-Za-z]`-marker book exists.** The one genuine non-digit case is **donne** (2957 WORD/PHRASE-lemma markers, 60% exact reciprocity) — *broader* than the jurist's "single [A-Za-z]" ruling; it removes the marker-shape defense-in-depth. → Build (b) now (serves kuhn/mbembe/nature-of-things/i-ching + nagarjuna + plato-inner); do NOT build donne's phrase-marker widening unilaterally — needs jurist re-ruling (challenge-the-framing).
## Tooling built this session
- 10:30 — `scripts/audit_footnotes.py` (read-only diagnostic; steward-proposed: "stop rewriting a probe each time"). Promotes the 5 throwaway probes (_reaudit_families/_reaudit2/_probe_uncovered/_measure_bc/_measure_c2) into one durable fleet tool. Per-book + `--corpus` census + `--validate`.
- 11:10 — **False-confidence redesign** (steward challenge: "don't let the tool give false confidence"). v1 hid a real family in an "other" bucket + used a looser reciprocity test than the recognizer without flagging divergence. Redesigned honesty-first: **recognizer `pairs` = the ONLY coverage truth**; structural scan = candidates; DIVERGENCE surfaced with raw markup; uncovered notes grouped by structural SIGNATURE (not hand-named); both-blind guard (`REFS-BUT-NO-RECIPROCITY`) flags footnote-shaped refs w/ no reciprocity instead of dismissing as FALSE-POS. 6 `--validate` cases incl. nested-block + both-blind. **DISCOVERY: found the `nested-block` family** (id on outer `<div>`, back-link nested in inner `<p>` — les-fleurs/jaccottet/polastron ~354 notes) that all 5 throwaways silently buried; + of-grammatology double-inner-anchor `*`-symbol; + real missed notes in the blind zone (arendt/montaigne/doniger/métamorphoses).
- **Honest residual limits (told steward, not hidden):** heuristic reciprocity ≠ recognizer exact pairing; blind-zone needs human read; signature=fingerprint-not-proof; exact per-ref attribution needs `process()` to expose paired-ref positions (a FIX, NOT done unilaterally — touches the fleet recognizer).
- **Governance next (proposed, awaiting steward):** wire `test_tools` fixture + `tool-evolution-log` entry (fleet membership); retire the 5 scratch throwaways; the `process()` paired-refs FIX.
## Confidence to recalibrate
- Hold today: verbatim guard stays **per-pair, keyed by (file, id)** — never whole-doc (aggregate-invariant-passes-while-a-per-item-swap-violates).
- Hold today: **commit ≠ push** — part 2's push is the steward's boundary, not mine.
## Authorization moves
## (b) inner-anchor build — result + the nagarjuna wall
- Built (b) in the FLEET recognizer (Parser block_idx on id_only_anchors + block parent; inner_block_by_id target index; block-note pass resolves inner-anchor targets; edit-loop body_id=Z + strip inner anchor). **PROVEN +0/−0 VERBATIM CLEAN on kuhn (217) / mbembe (523) / nature-of-things (176) = 916 notes.** Regressions (haraway/genette/la-pensée/sennett) clean. test_tools 86/86.
- **i-ching: cleanly HONEST-REFUSED** — all 66 notes nest in wrapper divs; pandoc won't lift a deeply-nested same-file footnote def. Parent-nesting refuse → i-ching pairs 0, +0/−0.
- **nagarjuna: converts DIRTY (+16/−26), UNRESOLVED.** Its **index cross-references the footnotes** ("214n. 74"); converting them makes pandoc re-render the index (page_214 leak). Per-pair SOURCE guard PASSES but pandoc perturbs the index → PASS-BUT-FALSELY at the recognizer layer; `_prove.py` catches it. **5 discriminators tested (nesting/multi-ref/multi-file/body-idanchors/no-close) — none separates nagarjuna from the clean books.** The end-to-end proof is the real guarantor.
- **RESOLVED (steward chose "build end-to-end self-verify into the tool"):** added `verify_end_to_end()` — after writing, stock pandoc runs on original + injected EPUB, body-word multisets compared, ANY non-marker change REFUSES + deletes the output. Guarantee now **by verification, not only construction.** **nagarjuna SELF-REFUSES** (exit 2, no file → regex fallback); kuhn/mbembe/nature write clean; i-ching no-op-refused (0 pairs); `--no-verify` for downstream-verified contexts. The whole PASS-BUT-FALSELY class is closed at the tool layer (also compensates the unenforced `body_word_conservation` gate for footnote conversions). `--validate` + `test_tools` gained word-diff teeth; **fleet 86→91.** Bears on the §V proof standard → flagged for a jurist nod in the governance trail (steward authorized the build). **COMMITTED + will push.**
## nested-block + obrist findings (surface to steward/jurist)
- **nested-block: jurist FIX-assumption OVERTURNED by proof (2nd time this arc, after (c)).** Built the widen (`_block_first_anchor` searches block descendants; resolved-note-block threading). It PAIRS the notes (les-fleurs 909, polastron 336) but converts DIRTY (les-fleurs +828/−1110, jaccottet marker-merge "fête1", polastron +202/−2756) — pandoc won't cleanly lift a `<div class="note">`-wrapped same-file def. Same PASS-BUT-FALSELY class as i-ching/nagarjuna; the **end-to-end verify catches it** (vindicates building the verify first). The jurist's "widen the search = same as (a)" doesn't hold empirically. **REVERTED** (recognizer must not pair what it can't convert clean — else the analyzer's COVERED lies). Recommend: **nested-block joins the honest-refuse set** (regex fallback), needs a jurist note. chamber back at `3831878` (clean); regression + (b) all +0/−0; test_tools 91/91.
- **obrist: empirically a GAP, not auto-covered.** Stock pandoc emits **0** native footnotes from its `<aside epub:type="footnote">` (contra the assumption it might be pandoc-native). 16 notes, low priority → regex fallback. Jurist's "confirm before covered-or-gap" answered: it's a gap.
## Q1b retroactive re-verification — MAJOR finding (verified real; corpus safe)
- Ran the end-to-end verify over every recognizer-COVERED Chamber Sources EPUB (`scratch/_retroactive_verify.py`; evidence `docs/retroactive-verify-2026-07-12.txt`). **87 covered · 42 CLEAN · 45 DIRTY** (pass per-pair guard, corrupt under real pandoc).
- **Verified real** (not a verify bug): all 5 known-clean books (haraway/genette/la-pensée/sennett/kuhn) land in CLEAN; independent `_prove.py` agrees against-interpretation is dirty.
- **Two classes:** 29 **CATASTROPHIC** (real prose loss / false-pair relocation: montaigne +385457, red-book −7835, pascalian +5910, gadamer −1939, donne −1908, tolkien −1725, decolonising −1572, west-eastern −1107, silence −896, waves −746[native fn 0→0]…) + 16 **marker-adjacency** (prose intact, markers glued: against-interp +3/−3, stevens +1/−1…). Large ADDITIONS ⇒ the recognizer **false-pairs** non-notes (index/cross-refs) and relocates huge content — the nagarjuna problem at scale.
- **CORPUS SAFE: 0 canonical files declare the pre-processor — NONE of the 45 were graduated.** The verify caught this PRE-graduation; the mandatory verify refuses all 45 → regex fallback. Nothing to remediate.
- **Implication (steward+jurist):** the recognizer's reliable coverage is **~42/87 (~48%)**, not 87 — the individual REVIEWED proofs were on books that convert clean; broad application reveals extensive over-pairing. Powerfully vindicates the end-to-end verify (Q1a) + the jurist's retroactive requirement (Q1b) + "representative-books≠corpus." Open decision: improve the recognizer (tighten pairing) vs accept 42-clean + fallback-for-the-rest. NOT resolved this session.
## Sub-agent dialogues
## Bypasses
+9
View File
@@ -414,3 +414,12 @@ The single place proposed skills live so they don't evaporate between sessions.
*Mechanical (applied at wrap per §1.6 CLAUDE.md-freshness): chamber `CLAUDE.md` fleet line + `conversion-runbook.yaml` policy updated for REVIEWED-54a (split-anchor) + REVIEWED-54b pt1 (block-id + URL-decode) — tools' recognizer classes changed (event-based). §V ratified-spec cross-ref for the pre-processor still surfaced-not-applied (discipline-level).*
*(Three proposals, none manufactured: the first two are concrete instruments the session proved [the re-audit collapsed a phantom taxonomy; the extension caught a real latent defect]; the third is an honest recalibration, flagged as a safe-direction error so it isn't over-weighted. REVIEWED-54b part 2 [inner-anchor + letter-marker] will earn its own review after build.)*
### Harvest 2026-07-12 (footnote arc close + the program open-work register)
| Element | Kind | One-line | Where it lands | Status |
|---|---|---|---|---|
| **`/reconcile-open-work` (program forest-view register)** | **create** | The practice proven twice now (ARC open-work register, then the whole Chamber→Gold→Engine register today): when tracking has drifted and orientation is lost, **census the real sources with parallel read-only agents → synthesize ONE canonical forest-view register** (every workstream, status, what-it-blocks) that **points to authoritative detail, never duplicates it**, and is **maintained at /wrap-up**. Yardstick met HARD: the steward said losing the whole-program picture was "alarming" and asked for exactly this. The ARC watch-list already flagged this as a graduate-if-it-recurs candidate — it recurred. | new `/reconcile-open-work` skill | **PROPOSED (strongly — recurred + steward-requested)** |
| **verification-ladder: retroactively re-verify everything landed under a weaker standard when a stronger gate lands** | ladder entry | The jurist's Q1b principle, proven load-bearing: a stronger check existing and NOT pointed at canon that shipped under the weaker one is the exact gap-shape the discipline exists to close. Today's retroactive sweep (end-to-end verify over all footnote-covered books → 45/87 fail) is the instance. Reusable whenever a new gate supersedes an old one. | `reference-verification-ladder.md` | **PROPOSED** |
| **verification-ladder: structural safety = PROVISIONAL FIX; end-to-end proof on real, representative books = FINAL** | ladder entry / Symmetria §3 | The jurist's generalization after nested-block: "same risk as (a)" was true of the *matching* logic and silent on the *rendering* logic. No widen/transform gets ruled final on structural reasoning alone — it earns provisional-FIX; only verbatim-clean proof on real books makes it final. Caught two FIX-assumptions this arc ((c), nested-block). | `reference-verification-ladder.md` or Symmetria §3 | **PROPOSED** |
| **Symmetria §3 flag: lost-the-forest-in-a-long-execution-arc** | Symmetria §3 flag | A long, productive execution session that costs the whole-program altitude is contamination shape (composition-over-consideration at the *session* scale, not the task scale). Antidote: keep the open-work register in view; re-surface it when a workstream has run deep for a while. Steward-named 2026-07-12. | Symmetria §3 | **PROPOSED** |