Files
dotfiles/claude/memory/session-2026-07-12-evening-schema-lock-b2-fleet-keystone-ratified.md
T
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

11 KiB

name, description, metadata
name description metadata
session-2026-07-12-evening-sidecar-schema-locked-b2-fleet-v1-pending-57-verbatim-gate-keystone-ratified 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.
node_type type originSessionId
memory project 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.