session 2026-07-25: cleaner A (footnote-aware) + mechanism-census replaces volume-proxy; feedback-census-by-mechanism-not-proxy

This commit is contained in:
David F Glidden
2026-07-25 09:22:36 +02:00
parent 30f3776095
commit 0424e76dcb
6 changed files with 126 additions and 3 deletions
+3 -2
View File
@@ -6,7 +6,7 @@ metadata:
type: note
permalink: claude-memory/memory
originSessionId: 22915403-bc5d-4796-9c7d-196b7c30d2f9
modified: 2026-07-24T17:47:49.571Z
modified: 2026-07-25T07:21:48.338Z
permalink: claude-memory/memory
---
@@ -24,6 +24,7 @@ permalink: claude-memory/memory
- [Constitution-as-block, then pull-based corpus](feedback-constitution-as-block-then-pull-based-corpus.md) — steward discipline (2026-07-14): finish the **constitution as one block FIRST**, THEN corpus-into-spec **pulled by what each engine phase needs**. **Bounded question → bounded answer; don't surface N new threads**; keep open-thread count LOW. Above [[feedback-shorter-concentrated-sessions]].
- [Close thoroughly — no frequent deferrals](feedback-close-thoroughly-no-frequent-deferrals.md) — steward directive (2026-07-16): **frequent deferrals ARE how the cloud accumulated**; close ALL of a block that's closable-now; distinguish closable-now vs genuinely-blocked (**name the specific dependency**, never a vague defer). Completeness complement to [[feedback-constitution-as-block-then-pull-based-corpus]].
- [Checkable claim surfaces bugs](feedback-checkable-claim-surfaces-bugs.md) — insisting on a checkable claim (number, substrate-fact, discriminating test) over a soft classification repeatedly EXPOSES a real bug; the demand for verifiability is itself a defect-detector. Steward-named 2026-07-13. (Caught F-5 + the "finally" overclaim, 2026-07-17.)
- [Census by mechanism, not proxy](feedback-census-by-mechanism-not-proxy.md) — a plan-of-record generalization must carry the instrument that can bear it; census by RUNNING the real pipeline, not a cheap proxy (class-volume ≠ fix-class); distrust the bucket that arrives when you want to feel done. The 2026-07-24 "31 heavy-styled = one fix" proved wrong on first real run (2026-07-25). Kin to [[feedback-completion-is-a-tripwire]], [[feedback-checkable-claim-surfaces-bugs]].
- [Completion is a tripwire](feedback-completion-is-a-tripwire.md) — the *feeling* of "done" is the cue to verify the tail (census/gate/scan-check), not the signal to ship; the last 10% is invisible from inside the first 90%. Ninety-Ninety as a security property (steward 2026-07-06).
- [Studium Engine charter](reference-studium-engine-architectural-charter.md) — the engine's constitutional doc (`studium-engine/docs/the-studium-engine-architectural-charter.md`): reasoner-at-centre over a BOUNDED provenanced corpus; three cognitions; boundedness=trust. Read before building the engine.
- [Studium Engine = Sixtus-V craftsman collaboration](feedback-studium-engine-sixtus-v-collaboration.md) — work the ground freely (I build, surface only vision-forks); **constraint-candidates** = 3rd governed instrument (I name, steward applies). Studium-engine only; heavier loop for L1/L2.
@@ -57,7 +58,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-24 night — the V-TEXT wave's first bite censused the whole class; the unlock is named, the engine track is independent](session-2026-07-24-night-vtext-wave-censused-cleaner-unlock-engine-tracks.md) — Ran ONE file (Moby-Dick) end-to-end: **calibration ANSWERED** (clean PASS, fab 0, threshold-40 holds) but a cascade (edition-swap Penguin→B&N · imaged `$` glyph the backup-only census MISSED, caught by the lane's live guard · `strip_cruft` can't clean nested calibre spans) resolved into a ROOT — **`test_tools` = 35 unit tests / 0 integration tests**, so the REVIEWED-72 writer switch (`gfm-raw_html`→`markdown-smart`) silently **orphaned `clean_pandoc_html_residue` AND the ratified footnote fallback (REVIEWED-54 §5)**; nothing tests the composition. Turned whack-a-mole into a **finite census** (`_curation/v-text-wave-gap-census-2026-07-24.md` = the durable artifact): 48 files = 3 classes dominated by **ONE fix** = (A) pre-processing nested-span/anchor cleaner [HTML-parser, prose-safe — NOT regex] + (B) `_tokens` ignores pandoc `{…}` attribute grammar as a **CLASS not prefix-list** [verified: per-format `mbp_pagebreak`/`filepos` fall out for free; **FIX-on-restored-intent**]. Fallback retirement **DISCHARGES REVIEWED-54 §5's condition** (ran its regexes vs §5's named classes arendt/montaigne/doniger/métamorphoses + the wave residual → **ALL NONE**; L'Enracinement hand-converted, never touched it) → still an **AMENDMENT** (state destination-posture=leave-unconverted-and-flag · retire≠delete: eichmann/virilio/taylor/sennett name it, *not* Sennett/Mauss/Jung). **Change-impact principle now 3 instances** (F4/1046 · cleaner · fallback) → generalize into §Governance. **Carpet-lift (steward, pre-wrap):** the no-integration-test fault line is **TIER-WIDE** — V-DSL same whack-a-mole (~11/2041; 17-work novel-structure watch-list); **V-SCAN deeper** (gate ABSTAINS by design → can't see OCR corruption). **Engine track = curated 13-work Station-I voice-set INDEPENDENT of the wave** (only Eichmann overlapped, already done) → parallel is the actual topology, unlock serves the wave; **0 canonicals hold `verified`** (order-demonstration-gated; path=Eichmann §7 passage-order guard) → engine's fence = `converted`+attested-voice-boundaries, to be **STATED not assumed**. Discipline reinforced ~6×: **test don't infer, against substrate — even a ruling's premise, even the steward's own memory** (running won every time). **PULLING THREAD = build the unlock, prove it by graduating `the-shape-of-a-pocket`** (smallest heavy-styled 1855, non-imaged, source in hand) end-to-end. State at wrap: **3 uncommitted chamber-library files** (`graduation-spec.yaml` moby-dick glyph-map WIP · `tool-evolution-log.md` · the census doc — **recommend committing it**); no canonical touched; no code built (analysis+census only). **LITERAL Q: is 'heavy-styled' truly ONE fix deep, or does a second obstacle hide behind the class-marker one — the way the integration-test gap hid behind 'the wave'?** Read the session file + the census doc at wake.
- [Session 2026-07-25 — cleaner A (footnote-aware) built + the mechanism-census that ended the guessing](session-2026-07-25-cleaner-a-footnote-aware-and-the-mechanism-census-that-ended-the-guessing.md) — Built **cleaner A** (`scripts/strip_source_presentation.py`) test-first into a **footnote-aware presentational stripper** per the steward's **3-gate ruling**: (1) apparatus-preservation guard INSIDE the tool (`verify_apparatus` — note elements + href→id link graph; the failure `verify_lossless` is blind to; text-losslessness ≠ apparatus-preservation), (2) relational rules throughout (unwrap gated on `epub:type` + live link graph, never a name list), (3) policy as governed declared data, not a tool default (`unwrap_wrappers` OFF by default). Fleet 234→248 (commits `6d7ff84`→`73ae8e3`). Proved on `the-shape-of-a-pocket`: solves layer-1 (class→0) + layer-2 (div-fences 150→48) **footnote-safe** (7 defs); residual is **curation-policy, not a tool gap**. **LITERAL Q "is heavy-styled one fix deep?" ANSWERED: NO** (class markers · fences · internal-nav · art plates are distinct kinds). **⚑ Two self-corrections (assert-from-derived, twice): buggy `\b` census + `^..\d+..:` def-count regexes** → caught vs substrate; the false "div-unwrap breaks footnotes 7→0" had shaped part of the ruling, corrected before propagating. **The reflective turn (steward: "could we have foreseen this? whack-a-mole?")** → banked **[[feedback-census-by-mechanism-not-proxy]]** + RAN a **mechanism-census over 48 wave files** (`_curation/mechanism-census-2026-07-25.tsv`, `a527e0a`; volume-census superseded `06331fb`): **8 clean/near-clean · 21 internal-nav (one ruling) · 2 MIXED 2nd-mechanism · 8 pandoc-class-leak [all French/translation] · 8 glyph-needed · 1 azw3.** Dominant lever = **ONE internal-nav CURATION RULING (~31 files), NOT one cleaner.** Steward's held-point validated (banked lesson's first live test): "ONE ruling clears 23" is inference-from-composition (the gap that falsified the volume census) → checked → clears **21/23**; 2 hide a 2nd mechanism. **PULLING THREAD = the internal-nav curation ruling** (constitutional-adjacent: *what a canonical IS*), deferred to a **fresh head**; first validate on ONE file (composition ≠ what-removal-does), pre-frame as a SPLIT (carrier-dangling `#filepos` vs surviving-target), second-hand-check the census tool in a different bucket. State: 5 commits UNPUSHED (Gitea flaky — steward's call); `graduation-spec.yaml` WIP uncommitted (last session's); no canonical touched. Read the session file + the census TSV 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).