Files
dotfiles/claude/memory/session-2026-07-12-evening-schema-lock-b2-fleet-keystone-ratified.md
David F GliddenandClaude Opus 4.8 48a2aec25d wrap 2026-07-12 evening: session record + MEMORY demote/promote + KG drift + harvest
- session-2026-07-12-evening-…: full A1→schema-lock→B2→PENDING-57-keystone-ratified arc;
  pulling thread = LAND THE KEYSTONE (wire verify_body_conservation into graduation).
- MEMORY.md: demote-on-promote (A1-to-docling → reference; evening session Active).
- knowledge-graph.jsonl: +1 drift-pattern (a-check-for-one-tier-isn't-proven-for-another).
- skill-harvest-register: Doc-currency-on-wrap BUILT into both CLAUDE.md; Symmetria §3 flag proposed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jYS1tpR4P4NBxui4FSgfv
2026-07-12 21:15:46 +02:00

53 lines
11 KiB
Markdown

---
name: session-2026-07-12-evening-sidecar-schema-locked-b2-fleet-v1-pending-57-verbatim-gate-keystone-ratified
description: "A very long continuation of 2026-07-12. Locked the sidecar schema (3 jurist rounds, additive-only), built build_loeb_sidecar to fleet-v1 (the preserve-aware Loeb B2 extractor + genre-heterogeneous footnote pairing + generic flag-and-hold net), then took the KEYSTONE — PENDING-57 body_word_conservation verbatim gate — through THREE jurist rounds to FULL ratification (V-DSL demonstrated by injection test after the naive reuse false-flagged; loss-teeth built; retroactive sweep folded; 43-book census confirmed). REVIEWED-55/56/57 filed. Doc-currency pass + institutionalized 'Doc-currency on wrap' into both repos' CLAUDE.md. Committed+pushed everything. PULLING THREAD: land the keystone next session — wire verify_body_conservation into verify_graduation + graduation-spec (source access + tier dispatch + the retroactive drift-tolerance) and run the diagnostic sweep for the corpus-health map."
metadata:
node_type: memory
type: project
originSessionId: 6d218283-2676-4855-8221-19cb51946ad2
---
# Session 2026-07-12 evening — the keystone laid (ratified), the tool built, the docs made current
The day's second half. It began in A1 (the verbatim-gate wake) and ended with the keystone gate **fully ratified** — the single highest-leverage instrument in the whole Chamber→Gold→Engine forest — plus its tool (B2) built to fleet-v1, the schema it writes into LOCKED, and the discoverable docs made current so future-us doesn't re-derive any of it. Everything committed + pushed.
## PAST — what we did + why
**1. Sidecar schema → LOCKED (3 jurist rounds).** Wrote the jurist relay (`docs/sidecar-schema-FOR-JURIST-2026-07-12.md`), the B2-evidence addendum, drove it through: (a) architecture ruling (keep `meta@1`, additive-only), (b) whole-schema lock CONFIRMED unconditional after B2 demonstrated flag-and-hold *in code* on the corpus's densest apparatus volume, (c) the **additive-only amendment discipline** (LOCKED = existing-field meaning; FLEXIBLE = new optional fields/`app[]` kinds = FIX; changing OR **removing** a field = PROPOSAL — jurist added removal). Two minor items confirmed (`loeb-render:*` attestation vocab; `app[]` kinds table/glyph). **REVIEWED-56 filed; schema doc → LOCKED.**
**2. B2 → fleet-v1 (`scripts/build_loeb_sidecar.py`).** The preserve-aware Loeb DSL extractor. **KEY substrate finding (steward-corrected):** the DSL colors are the **Loeb reader's RENDERING cues, not semantic markup** — `[c darkmagenta]`=headers, `[c dimgray]`=line-anchors+page-markers+`[sup]`-refs; `<word>` angle-brackets = **critical-edition editorial insertions the legacy `strip_tags` DELETES**. Architecture: keep MD verbatim (word-conservation holds), ADD typed structure to the sidecar; line-anchors exact-by-construction. Built through iteration: darkmagenta→sections (deduped), dimgray→anchors/provenance, `[sup]`→notes, `<section>`-div→sections, table/glyph→`app[]` flag-and-hold, **editorial-insertion** as a genuine third apparatus kind (found on the FIRST diverse volume — vindicating the density≠diversity concern), a **generic net** for unrecognized structure (0 truly-novel across 6 literary genres → structural space bounded). **Footnote ref↔body pairing** added (4 classifier iterations; a textbook PASS-BUT-FALSELY — Plato 96% masked verse `in_fn`-leak; settled conservative both-signals: prose 96% / drama 94% / verse 66% / fragments 48%, all unpaired honest-flagged, 0 false-pairs; genre-heterogeneous, stopped rather than over-fit). In `test_tools` (fleet → 111).
**3. THE KEYSTONE — PENDING-57 verbatim gate, 3 jurist rounds to FULL ratification.** `verify_body_conservation.py` wired for per-tier: V-DSL (reflow-tolerant multiset) / V-TEXT (re-convert + k-gram) / V-SCAN (abstain) → FLAG/REVIEW/PASS. The arc: (a) architecture ratified, V-DSL demo demanded; (b) **V-DSL demonstrated — the naive reuse of the V-TEXT k-gram check FALSE-FLAGGED a clean book** (1070 "fabrications", only 6 truly-new = the MD subtitle; rest = coverage misses from the DSL→MD REFLOW) → corrected to reflow-tolerant word-multiset → clean PASS verse+prose, injection teeth; loss half flagged as delegating to extract_loeb_dsl's self-report; (c) full ratification on 2 conditions, **both closed same-session**: built independent **loss teeth** (boilerplate-vocab classifier; clean `lost_content=0` PASS, drop `banquet`→FLAG naming it), confirmed the **43-book census** (V-SUSPECT 29 + V-NONE 14 = the fenced-out tier, correctly outside the sweep). Jurist's 2 follow-ups done (stale note fixed; residual + revisit-trigger documented in the gate's own docstring). **REVIEWED-57 filed.** Change-class PROPOSAL (distinct from REVIEWED-55's refusal-only-FIX: a FLAG has no already-trusted fallback to canon).
**4. Retroactive diagnostic probe (ratified §6, read-only, the "push further").** 9 graduated Loeb canonicals vs the DSL: **7/9 PASS**; the 2 FLAGs = **verified false-positives** (scattered high-frequency stopword drift — I hypothesized accent-variant, *checked, refuted my own hypothesis*). **Finding: the retroactive sweep needs a cross-extractor drift-tolerance before the 952-book run** (forward gate unaffected). Diagnostic-first working as designed — de-risked the sweep on 9 books.
**5. Doc-currency + institutionalization (steward-directed).** Fixed the anti-reinvent gaps in chamber `CLAUDE.md` (added `build_loeb_sidecar` + `verify_body_conservation` to the fleet; rewrote the Loeb-DSL terminology *flatten-vs-preserve*; check-for-existing-tool discipline; corrected the remotes note) + the runbook. **Institutionalized a standing "Doc-currency on wrap" protocol into BOTH `chamber-library/CLAUDE.md` and `studium-engine/CLAUDE.md`** so wrapping work there keeps those docs current, not memory. **Deprecated-scripts answer: none archivable now** (extract_loeb_dsl is a live dependency; the cruft-strippers/ocrmac_pdf are *slated* behind the unlanded 2b amendment).
**6. Committed + pushed everything.** chamber (`f6d9010` code + `1f9867c` docs → GitHub + Gitea), studium (`7e8e322`), dotfiles (`d9692f7` → GitHub; Gitea mirror lagged, non-blocking), CM-AI (`5b6068c` scan-register). 30MB regenerable sidecar-drafts gitignored.
## PRESENT — the mood
Two-phase, sustained, and *governed throughout* — the loop was load-bearing on every architectural move (schema lock, gate, amendment all ran executor-drafts → jurist-rules → steward-ratifies). The returns worth carrying: **verified-before-asserting held under length** — the difflib→shingle pivot, the docling flat-footnotes, the DSL color meaning, the V-DSL naive-reuse false-flag, the retroactive accent-hypothesis REFUTED — all grep/measure, not inference. **Honest-about-limits** throughout (the 2/17 join, the genre-heterogeneous pairing, the loss-teeth masked-vocab residual — none dressed up). **The jurist's demonstration-discipline was the through-line and it kept paying**: every "sounds simpler" intuition (V-DSL) got a demonstration that vindicated the caution. Recalibrations: **a check proven for one tier is NOT proven for another** (V-DSL≠V-TEXT — the k-gram false-flagged the DSL reflow); **executor-composition-bias at hour-N** (kept generating big "push further" directions — the courte-pause between them was the antidote); the mild **over-caution on the CM-AI push** (held, then corrected — "everything" was explicit and it's a research doc).
## FUTURE — what is pulling
**PULLING THREAD: LAND THE KEYSTONE.** PENDING-57 is fully ratified (REVIEWED-57 filed) but *not yet wired*. Next session: wire `verify_body_conservation` into `verify_graduation.py` + `graduation-spec.yaml` (per-tier dispatch: V-DSL re-extract / V-TEXT re-convert / V-SCAN abstain → FLAG-blocks/REVIEW-holds/PASS; tag REVIEWED-57), **fold in the retroactive-sweep cross-extractor drift-tolerance found today**, then **run the diagnostic sweep** across the graduated canon (952 V-DSL + 239 V-TEXT) → the **corpus-health map** that sizes the whole reprocess. Ratified, authorized, zero governance latency, serves all three forest tracks (B/C/D), completes the arc.
**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):**
- Everything is committed + pushed; working trees clean (bar the wrap's own memory writes).
- Start: read `verify_graduation.py`'s `collect_checks(fm, body, spec)` — the integration point. The gate needs the SOURCE (from the frontmatter source pin / a source path) + the TIER (from source type) to call `verify_body_conservation`. That source-access + tier-dispatch is the real engineering.
- `verify_body_conservation.classify_dsl` already carries the loss residual + revisit-trigger in its docstring; the drift-tolerance for the retroactive sweep is a NEW addition (ignore high-freq function-word drift; flag distinctive content drops).
- The retroactive probe script is in scratchpad (read-only; regenerate if cleared).
**Other open horizons (forest-ranked, from `chamber-library/docs/chamber-program-open-work.md`):**
- **2b — the sidecar-wiring graduation amendment** (Docling+sidecar as the graduated structural layer; retires ocrmac_pdf + cruft-strippers). Needs ONE steward scoping call: **Loeb-first or full-corpus?** Drafting it overlaps the loop. Gates B2's graduation.
- **B2 run** — the primary corpus lever (952 Loeb); tool is BUILT; needs A1-landed + 2b-ratified. Then non-Loeb reconversions + the ~110-file frontmatter residue (reconversion precedes frontmatter).
- **Engine D1 — V1 (`verify-quote`) + N1 (tree builder)** — the parallel UNBLOCKED track; nothing touched it today; freshest ground; doesn't wait for the corpus.
- **Register refresh**: `chamber-program-open-work.md` is stale (A1 shows `[?]`, now ratified; REVIEWED-55 "not placed", now filed).
**PAUSE STATEMENT:** I am about to be away from this. The keystone is *ratified but not laid* — the single most important thing to find still pulling is the landing (wire the gate, run the sweep). Everything is committed and pushed off-disk; the tool is built; the schema is locked; the docs are current. What I want to find still pulling on return: the keystone landing, and the corpus-health map it produces.
**LITERAL QUESTION for next-Claude:** When you wire `verify_body_conservation` into `verify_graduation`, does the graduation candidate actually have its SOURCE on hand (the source_verified pin / a resolvable path) at gate-time — or does the source-access integration need its own small design before the tier dispatch can call re-extract/re-convert? (If the source isn't reachable at gate-time, that's the real first sub-problem of the landing, not the tier logic.)
**State at wrap:** chamber (schema LOCKED, B2 fleet-v1, gate ratified-not-wired, docs current), studium (Doc-currency protocol added), dotfiles (PENDING-56/57, REVIEWED-55/56/57, ledger) — ALL committed + pushed (dotfiles Gitea mirror lagging, GitHub has it). Test fleet 92→111. The Doc-currency-on-wrap protocol now lives in both repos' CLAUDE.md.