session 2026-07-25→27: spec v2.7.0 (REVIEWED-75) + v2.8.0 (REVIEWED-73 voice-purity) landed; source_lines FIX ×2; 2 skill proposals

Session file + ledger returns + 7 KG appends (2 drift-patterns, 3 good-direction,
2 facts) + feedback-derive-the-rule-from-the-consumer-not-from-the-survivor.
MEMORY.md: prior Active Session demoted to MEMORY-reference.md, new promoted.
Skill-harvest register: /wake-up backlog substrate-check patch + /field-divergence-sweep
create, both PROPOSED for steward authorization.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xefg5EXwcpd9RMAr63dWrD
This commit is contained in:
David F Glidden
2026-07-27 19:35:17 +02:00
co-authored by Claude Opus 4.8
parent 0a7feef12c
commit d7824cffe8
6 changed files with 108 additions and 1 deletions
+1
View File
@@ -30,6 +30,7 @@ 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-24 night — the V-TEXT wave's first bite censused the whole class; the unlock is named, the engine track is independent; demoted on promote at the 2026-07-25 wrap)
- [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.
- [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)**. Turned whack-a-mole into a **finite census** (`_curation/v-text-wave-gap-census-2026-07-24.md`) — **SUPERSEDED IN PART 2026-07-25** by the mechanism-census (its "31→one fix" was a volume proxy; see [[feedback-census-by-mechanism-not-proxy]]). **PULLING THREAD was: build the unlock, prove it by graduating `the-shape-of-a-pocket`** — done 2026-07-25 (cleaner A built; the answer: NOT one fix deep). LITERAL Q ("is 'heavy-styled' one fix deep") → ANSWERED no.
## Archived (2026-07-24 evening-continued — REVIEWED-72/74 BUILT + LANDED atomically (spec v2.6.0); the 47-file V-TEXT wave UNBLOCKED; demoted on promote at the 2026-07-24 night wrap)