session 2026-07-06: MEMORY.md two-file compaction (213→17KB) + self-bounding wiring (/wrap-up §3 demote-on-promote, /wake-up §2.a load-gate); skill-harvest closures; Olson graduation-state note

This commit is contained in:
David F Glidden
2026-07-06 12:43:39 +02:00
parent 8e3dbcf54f
commit f802f905e4
7 changed files with 744 additions and 617 deletions
+12 -3
View File
@@ -39,6 +39,7 @@ The single place proposed skills live so they don't evaporate between sessions.
- **Symmetria §3 — two flags added** (2026-06-05, authorized + built same evening): *trust-prior-pass-frame* (frame-inheritance from prior verification into untested domain) + *census-through-truncation* (count first, then look). Closes the long-standing §3 patch proposal.
- **`reference-verification-ladder.md`** (2026-06-05, authorized + built same evening): one canonical home for the proven instruments (byte-identical compile gate, expected-delta/delta-classification, censused-routes, measure-toolchain-before-spec, compiled-selector grep, governed-char byte gate, WCAG compute, fresh-clone gate, live-fetch gate, per-type×per-viewport, re-verify-at-extension-scope). Ends the per-wrap re-proposing; future instruments append there, not here.
- **`/arc-typeset` REJECTED** (2026-06-05): superseded — §I.k.b/c moved the mechanical pass into the build; LINT class carries judgment warnings; multilingual §2.5 carries authoring notes; `french-typography-pass` covers the French preparation layer. Do not re-propose without a new gap.
- **MEMORY.md two-file self-bounding architecture — BUILT 2026-07-06** (steward-authorized; closes three long-open proposals below). MEMORY.md 213KB→17KB (91.8%); split into `MEMORY.md` (wake-loaded live index) + `MEMORY-reference.md` (lossless history + reference layer). **Closes:** (a) the 2026-06-08 *`/wrap-up` §3 compress-at-demotion* patch → built as the richer **demote-on-promote** rule (prior Active Session relocates to `MEMORY-reference.md` in the same move; trackers stay one-liners; budget check); (b) the 2026-06-08 *deeper MEMORY.md reduction* proposal → done (the reference-layer split it described, plus the finding that the fat 8KB ARC tracker line — not just the archive — was the real bloat); (c) the *wake-canary* (2026-06-07) → the **truncation/load-integrity half** is now a standing `/wake-up` §2.a gate (truncated load = loud flag + trim). **Still open from the wake-canary proposal:** the *link-resolution* half (every pointer + `[[link]]` resolves at every wake) was applied once as a verification instrument this pass but is NOT yet a standing wake step — remains PROPOSED. Root-cause framing: the recurrence was role-conflation (one file doing live-index + archive + reference), no self-bounding, no load-integrity gate; the compress-in-place pass of 2026-06-08 attacked the level not the class, so it re-bloated.
## Candidate patches not yet proposed (watch-list)
@@ -83,9 +84,9 @@ The single place proposed skills live so they don't evaporate between sessions.
**Memory-index (MEMORY.md) — the archive pass + the durable fixes:**
- **DONE 2026-06-08 (steward-authorized, live): compress-in-place archive pass.** 90 archived-session bullets compressed to one-line pointers (detail preserved in the session files), **285KB→157KB**, all 239 pointers preserved, every load-bearing section byte-identical; backup `/tmp/MEMORY.md.bak`. ⚠ A naive split-at-first-`## Archived` was **caught-and-avoided** — the file is INTERLEAVED (archived blocks scattered among load-bearing reference sections: Pending work / Feedback / Drift patterns / ARC project state / CapableMind L1 / Personal Context / Reference Files). Surgical compression of only archived bullets is the correct tool for an interleaved index.
- **[PATCH proposal] `/wrap-up` §3 — compress at demotion.** When demoting Active Session → Archived, compress the entry to a one-liner in the *same move* (it's already in the session file). Prevents index re-bloat at the source — without it the index re-grows ~4–5KB/session and this pass recurs.
- **[PROPOSAL] deeper MEMORY.md reduction (only if 157KB still trips "only part loaded").** The load-bearing REFERENCE sections (steward profile / project states / ARC project state / CapableMind L1 / Reference Files) are large but largely STABLE — candidate to move to a consult-on-demand `MEMORY-reference.md`, leaving the wake-loaded MEMORY.md = standing prefs + trackers + Active Session + recent. Riskier (real memory, not duplication); its own focused pass, not a tail-of-session move.
- **[reminder] the wake-canary** (PROPOSED 2026-06-07, above) still awaits authorization — the paired guardrail (every MEMORY.md pointer + `[[link]]` resolves at wake); should cover MEMORY.md + any future archive/reference split files.
- **[PATCH proposal] `/wrap-up` §3 — compress at demotion.** When demoting Active Session → Archived, compress the entry to a one-liner in the *same move* (it's already in the session file). Prevents index re-bloat at the source — without it the index re-grows ~4–5KB/session and this pass recurs. **→ BUILT 2026-07-06** as demote-on-promote in the two-file architecture (see built-log). CLOSED.
- **[PROPOSAL] deeper MEMORY.md reduction (only if 157KB still trips "only part loaded").** The load-bearing REFERENCE sections (steward profile / project states / ARC project state / CapableMind L1 / Reference Files) are large but largely STABLE — candidate to move to a consult-on-demand `MEMORY-reference.md`, leaving the wake-loaded MEMORY.md = standing prefs + trackers + Active Session + recent. Riskier (real memory, not duplication); its own focused pass, not a tail-of-session move. **→ BUILT 2026-07-06** (its own focused pass, exactly as advised — backup + full read + byte-exact split + link canary). The predicted reference sections all moved to `MEMORY-reference.md`; the pass also found the fat 8KB ARC tracker line was itself a bloat source. CLOSED.
- **[reminder] the wake-canary** (PROPOSED 2026-06-07, above) still awaits authorization — the paired guardrail (every MEMORY.md pointer + `[[link]]` resolves at wake); should cover MEMORY.md + any future archive/reference split files. **→ PARTIALLY BUILT 2026-07-06:** the *truncation/load-integrity* half is now a standing `/wake-up` §2.a gate. The *link-resolution* half was applied once (this pass, as a verification instrument — caught that all 8 unresolved links were pre-existing) but is NOT yet a standing wake step. **STILL OPEN:** wire link-resolution as a recurring wake check (covering MEMORY.md + MEMORY-reference.md); low-urgency (cheap, but the split introduced no new breakage, so no active pain).
## New proposals (2026-06-09 — the headless-Chrome measurement harness, awaiting steward)
@@ -339,3 +340,11 @@ The single place proposed skills live so they don't evaporate between sessions.
| **CLAUDE.md staleness canary (git tripwire)** | create (small) OR git hook | If the `scripts/` set or `graduation-spec.yaml` changed but `CLAUDE.md` didn't since, flag "may be stale." Bounded, low-false-positive — the two most CLAUDE.md-relevant change classes. **Prompts; never auto-writes** (a bot rewriting the disciplines is the automation-of-recognition risk — the loop stays load-bearing). Sibling of the proposed **wake-canary** (MEMORY.md pointer-resolution). | git pre-commit / a `/repo-doc-canary` | **PROPOSED (optional; pairs with the wake-canary)** |
*(Two proposals + two docs built. The freshness mechanism is the load-bearing one — it answers the steward's live question and applies this whole session's thesis [storage isn't memory; a protocol that exercises it is] to our own orientation docs. Not manufactured: the docs were just built, so the "how do they stay true" question is real and now. The count-vs-event correction is the substantive contribution — a raw threshold would institutionalize decorative maintenance.)*
### Harvest 2026-07-06 (MEMORY.md two-file compaction + Olson graduation opened)
| Element | Kind | One-line | Where it lands | Status |
|---|---|---|---|---|
| **memory/index restructure = byte-exact slice + md5-conservation + link-canary** | verification-ladder entry | When restructuring a memory index or any lossless-relocation of prose between files, do it as **line-range slices (never retype)** + prove **byte-conservation** (md5 each moved slice == source slice) + a **link-resolution canary** (every `](file.md)` and `[[wikilink]]` resolves; distinguish pre-existing-broken from new-broken by grepping the original). Today's MEMORY.md 213→17KB split: proved the 198KB relocated tail md5-identical to source, and verified all 8 canary-flagged links were pre-existing (0 regressions) rather than asserting "the split looks fine." Kin to the byte-identical compile gate, generalized to prose-file moves. | `reference-verification-ladder.md` | **PROPOSED** |
*Also this session (recorded, not new proposals): the self-bounding wiring (`/wrap-up §3` demote-on-promote + `/wake-up §2.a` load-integrity gate) was BUILT + authorized live — see the built-log entry above. `/graduate-chamber-source` (still PROPOSED, build-on-packaged-driver) gained another reinforcing instance — the Olson orientation walked the graduation pipeline manually again; the GRADUATION-STATE.md note is effectively its per-book empirical spec.*