Files
dotfiles/claude/memory/session-2026-05-27-l1-runaway-n6-corrected-hermes-scout-scan-skill-family.md
David F GliddenandClaude Opus 4.8 3f9a89b00c chore(memory): Basic Memory trial begins — sync normalization baseline (283 files)
Basic Memory v0.21.6 first sync over the live memory dir (steward-authorized
live-dir trial, Option A 2026-06-06): adds permalink: to frontmatter, refolds
long YAML description lines, strips final newlines. Bodies untouched —
verified via full diff classification. From this commit forward, any diff in
claude/memory shows only what Basic Memory or the session writes.

Trial design: MemPalace untouched as incumbent; git status check on this dir
at every wrap; end-of-day evaluation (recall quality, sync robustness,
rebuild-from-files, malformed-file behavior).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 09:52:17 +02:00

78 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: session-2026-05-27-l1-runaway-killed-n6-root-cause-corrected-hermes-scout-delivered-the-landscape-tooling-scan-skill-family-built-generalized-via-lens-cards-proven-on-studium-engine-governed-skill-harvest-folded-into-wake-wrap-pulling-thread-now-back-to-arc-stage-f
description: 'Woke into ARC Stage F but the day became a CapableMind/tooling arc (productive).
Killed the live N6 runaway (the N5 duplicate job had resurrected, 26h pegged); read-only
EXPLAIN OVERTURNED the audit-delta''s entity-fuzzy-match prime suspect — real N6
= the temporal causal subsystem (245k edges from 5,752 events + full-table SCANs);
posted the correction to Seb on #170. Delivered the Hermes Agent scout (PENDING-22).
Built /landscape-scan + /tooling-scan, generalized them via per-workstream lens
cards (proven by running /tooling-scan studium-engine), and folded a governed skill-harvest
step into /wrap-up + /wake-up (PENDING-23). Pulling thread now back to ARC Stage
F remaining.'
metadata:
node_type: memory
type: project
originSessionId: 9b13b6ec-e1d8-473f-a502-b411a44c1c96
permalink: claude-memory/session-2026-05-27-l1-runaway-n6-corrected-hermes-scout-scan-skill-family
---
# Session 2026-05-27 — L1 emergency + Hermes scout + the scan-skill family; pulling thread → ARC Stage F
Woke via /wake-up into the **ARC Stage F** thread (per 2026-05-26's wrap). The day did not stay there — the steward opened a CapableMind research arc, and a live L1 emergency surfaced inside it. All productive; ARC was never touched, so it remains clean for the next session to resume.
## The arcs of the session
**1. L1 live emergency — the N5 runaway, and the N6 root cause CORRECTED.** A Hermes-recon sub-agent (derailed onto L1 by the steward's mid-flight "we're still having problems") found — and I verified — that **"BMF offline by design" was false**: the duplicate launchd job `com.capablemind.bmf` (`KeepAlive=true`, the N5 finding) had **resurrected and run 26h+ pegged at ~99% CPU** (PID 848, elapsed 1d02h), while the legit `com.capablemind.bettermemories` crash-looped every ~11s on the data-dir lock (70 MB lock-conflict spam). The 2026-05-25 "booted out the duplicate" claim never held. With steward authorization ("EXPLAIN first, then clean up"):
- Captured a fresh stack `sample` of PID 848 → confirmed the synchronous `Statement.all()` → `sqlite3BtreeNext` → `readDbPage` btree-scan signature.
- Ran **read-only `EXPLAIN QUERY PLAN`** against the live `mindfabric-00` sqlite DBs. **This OVERTURNED the audit-delta's prime suspect**: entity fuzzy-match (`entity/storage.ts:262`) is **exonerated** — `entity` is only **1,717 rows** (1,657 `topic`), all three resolution queries `SEARCH … idx_entity_status_facet` (indexed). Reconciliation (`reconciliation.ts:32`, afterReplay) also **exonerated** (indexed, 0 dirty rows).
- **Real N6 = the temporal CAUSAL subsystem.** Graph exploded: `caused`=**245,535** edges, `causal_chain`=**238,492** chains from ~5,752 events (**~42 edges/event**); **238,505 chains coherence-unevaluated**. Hot queries are full-table **SCANs**: `SELECT * FROM caused`, `SELECT * FROM causal_chain WHERE 1=1` (`storage-sqlite.ts:421/843/883`; EXPLAIN = SCAN, no index). Still NOT pinned: the exact full-scan caller in the hot per-event/per-batch path (Seb's trace, or one more focused pass).
- **Cleanup (steward-authorized):** killed PID 848; booted out the legit job (restorable, NOT disabled); booted-out **and disabled** the rogue `com.capablemind.bmf` (durable N5 fix); truncated the 70 MB log. BMF is now **genuinely parked**; logchain + cursors intact. Restore: `launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.capablemind.bettermemories.plist` after Seb's code fix.
- **Sent to Seb** (steward approved literal text): #170 comment `issuecomment-4553635193` — corrects the record + delivers the pin. **Corrected the audit-delta §2g in-record** (dated 2026-05-27 addendum, original prose preserved) → committed `f97557d`, pushed to `capableMind_docs` origin (so the #170 reference resolves).
**2. Hermes Agent scout — DELIVERED (PENDING-22).** Steward + jurist-drafted reconnaissance of `NousResearch/hermes-agent` (~134k★) vs the four L1 pain points. Three parallel recon sub-agents (memory/ingestion, skill system, sub-agent/ACP), code-grounded. Deliverable: `docs/thinking/David/l1-reliability/hermes-agent-scout-2026-05-27.md` (committed+pushed `f97557d`). **Two stale-fact corrections to the brief** (verified vs source): pain #1 ("confidence discarded") is STALE — Amendment 61 shipped it end-to-end (floor→ceiling→persisted→recall-weighted `query-router.ts:657-680`); pain #2 substrate is a hybrid (SurrealKV + better-sqlite3 + LanceDB + file-logchain), SurrealDB mid-retirement. **Headline:** CapableMind is *ahead* on epistemic integrity (Hermes's default memory has none; only an opt-in `trust_score` plugin); the SKILL.md system is the real lesson for pain #4 (CapableMind has no procedural memory). **Governance flag:** Hermes's autonomous self-write fork is exactly what the loop-is-load-bearing constraint refuses — any borrow must restore the authorization boundary.
**3. The scan-skill family — built, generalized, proven.** The steward wants to study the landscape "every couple of days." Built:
- **`/landscape-scan`** (competitive lens: two-tier — capability pulse + the *governance threat-watch*) + **`landscape-register.md`** (seeded: Hermes CONFIRMS, OpenRouter INFRA; the prior April Hermes study indexed; watch list). The sharpening: scanning for "more capable" is a treadmill; the scan that earns its keep is "is anyone building the *governed/epistemic-integrity* angle?" (so far: no).
- **`/tooling-scan`** (build-lens: anti-shiny — a tool earns adoption only against a *named bottleneck*, at switching-cost, with governance-grain fit; incumbent-bias flag) + **`tooling-register.md`**. First test produced the *disciplined* result: MemPalace-alternatives → WATCH+HARVEST not adopt (BMF is meant to replace MemPalace; their value is architectural validation).
- **OpenRouter** (Seb's find) assessed: INFRA for BMF's remote teacher/slot tier (TRY, Cloud-tier; NOT embeddings; never enable the 1% prompt-logging discount = irrevocable commercial-use rights; use ZDR+BYOK). In tension with Standalone sovereignty.
- **GENERALIZED** (steward: "generalize of course — simple exterior, complex underneath"): both skills gained a **§0 lens-resolution** step; CapableMind specifics extracted to **`lens-capablemind.md`**; new **`lens-studium-engine.md`** (grounded in the seed brief). `/tooling-scan studium-engine` **ran end-to-end** — proving the lens-card mechanism. One method, many lenses; adding ARC later is a new *card*, not a new skill.
- **studium-engine tooling scan** (first run) → `studium-engine-scan-register.md`: Verbatim RAG now has an **offline ModernBERT span model** (strengthens the Stage-1 substrate); Docling+Surya answers the open `pdf-ocr` slot; OCR4all for incunabula; LIFT (TEI→KG) for voice-attribution. Feeds the seed brief's §10.2 jurist-led deep audit.
**4. Governed skill-harvest folded into the continuity skills (PENDING-23).** The steward asked to refactor Hermes's "skills self-improve" idea into our way of working. Built the **governed analog**: `/wrap-up` §1.6 "Skill harvest" (propose create/patch/retire from the session + ledger; never autonomous) + §8 output field + propose-only constraint; `/wake-up` glance for unauthorized proposals (§2.a + §3); provenance comments on both skills. The crux: it's `[PROPOSAL]→[REVIEWED]` turned on our own tooling — self-improvement that stays governed; "no harvest" is valid (inverts Hermes's "nothing-to-save shouldn't be the default"). **This wrap is its first live run** (see Skill harvest below).
## Returns / mood
- **R1 — asserted filesystem topology from a misread `ls -la`.** Claimed wake/wrap/symmetria were *duplicated* across `.claude` + `dotfiles` (a context-rot risk) — wrong; they're **symlinks** (the `ls -la` followed the link). Caught by an `-L`/`diff` check before the false claim ossified; corrected in-record in PENDING-23. New drift: `asserting-fs-state-from-a-misread-listing` (kin to `acting-on-inferred-not-read`). Verify with `-L`, not `ls -la` of a symlinked dir.
- **Discipline that paid off repeatedly:** verify-before-asserting against source — caught two stale premises in the jurist's Hermes brief; confirmed the Hermes project is real (past Jan-2026 cutoff) before trusting it; verified the live runaway myself before relaying the sub-agent's claim; read the studium seed brief before writing its lens card; **overturned the audit-delta's own prime suspect by EXPLAIN rather than inheriting it.** The day's through-line was *read the actual source*.
- The contamination-aware design choices: the scans are *generative not anxious / anti-shiny*; the skill-harvest *resists the quota shape*; the tooling verdicts *surface, don't adopt*. Each is the governed inversion of Hermes's ungoverned grain.
## Pulling thread (singular)
**Back to ARC Stage F remaining.** Today was a CapableMind/tooling arc; the steward's wrap arg is explicit — "so we can move back to ARC." ARC is untouched and clean. Per the ARC tracker: A–E done; Stage F dwellings/Compass shipped+published (Second Edition live); the Compass optical-sizing (ELEVATED) resolved 2026-05-26. **Remaining Stage F:** `content-types.yml` generator · per-piece marginalia render · vignette Phase 1 · the audits (SCSS cascade + Hakyll-simplicity + code-represents-spec) · minor aria-label-per-link a11y. Stage G (jurist → content-typology OPERATIVE) closes the arc.
## Actionable resumption point (as of wrap — re-judge against what changed)
ARC repo `~/_Dev/animal-davidglidden-eu` on `main` @ `e1d0f12`, clean (only the two non-ours `_backup_2026-05-15*` font dirs untracked). **Candidate first move:** read the ARC tracker (`project-arc-rework.md`) + ARC's local `CLAUDE.md`, confirm with the steward which remaining Stage F item leads (generator / marginalia / vignette / audits), branch fresh from `main`. Nothing from today blocks ARC.
## Literal question for next-Claude
Which remaining Stage F item does the steward want to lead with — the `content-types.yml` generator (the most structural, and the one Stage G's content-typology-OPERATIVE close most depends on), or a lighter one (vignette Phase 1 / the a11y pass) if the day is fragmented? (Secondary, carried unanswered from 2026-05-26: has the steward seen the SVG Compass render correctly on a **non-Mac device**?)
## Pause statement
The CapableMind/tooling arc is at a clean summit — L1 emergency resolved + reported to Seb (in his court), Hermes scout delivered to the jurist, the scan-skill family built/generalized/proven, the skill-harvest practice live. I'm turning back toward ARC. I don't know what will have changed on return (Seb may respond on #170; the jurist may engage PENDING-22/23). What I want to find still pulling: **ARC Stage F**, resumable from a clean `main`.
## Skill harvest (this session — first live §1.6 run; PROPOSALS for steward authorization, NOT yet written)
1. **CREATE `bmf-diagnose`** (strong) — the N6 method, hard-won today and we'd re-derive it: find a wedged/runaway process → `sample` the stack → read-only `EXPLAIN QUERY PLAN` against the live sqlite (WAL-safe, separate connection) → exonerate/confirm the suspect query → find the real scan target by table row-counts → pin. Encodes "don't inherit a prior diagnosis; verify it."
2. **CREATE `l1-audit-revalidation`** (weaker — already partly documented in the audit-delta §0 method) — the git-dated "what-claimed → what-the-record-shows → status" re-validation pass.
3. **PATCH `/wake-up` §2.d** (minor, defer) — add `~/_Dev/studium-engine` to the git-state repo list *once it has code* (pre-spec now, so not yet).
*Recommendation: bmf-diagnose is the one worth authoring; the others can wait.*
## Decisions deferred (and why)
- **The two recommended studium Stage-1 trials** (Verbatim RAG offline substrate; Docling+Surya+OCR4all conversion) — surfaced, NOT adopted; studium is pre-spec (seed brief awaiting jurist). Spec-phase decisions.
- **OpenRouter adoption** — surfaced as TRY; it's a product/runtime call (steward + Seb + jurist), not done.
- **Committing the uncommitted research files + dotfiles skill edits** — left for steward (see loose ends).
- **The `thinking/README` index update + Peter summary** — the repo convention says update on new research/ files; deferred (bigger index edit; flagged).
- **ARC publishing-pipeline skill set** (linter, typographic setting — the `french-typography-pass` family) — named as the known future ARC skill set; not built (ARC's need, distinct from scans).
## Pointers
- L1: audit-delta `l1-reliability/l1-audit-delta-2026-05-24.md` §2g (2026-05-27 addendum); Seb #170 `issuecomment-4553635193`; N6 stack sample `/tmp/bmf_sample_848_2026-05-27.txt`; suspect-exonerated source `BetterMemories.io/src/modules/entity/storage.ts:262`, real locus `temporal/storage-sqlite.ts:421/843/883`.
- Hermes scout: `l1-reliability/hermes-agent-scout-2026-05-27.md` (PENDING-22). Clone (throwaway) `/tmp/hermes-agent-scout`.
- Scan family: skills `~/dotfiles/claude/skills/{landscape-scan,tooling-scan}/SKILL.md` (symlinked into `~/.claude/skills/`); registers + lens cards in `CapableMind-AI/docs/thinking/David/research/` (`landscape-register.md` [committed `81ec415`], `tooling-register.md`, `lens-capablemind.md`, `lens-studium-engine.md`, `studium-engine-scan-register.md` — last four UNCOMMITTED).
- Skill-harvest: `/wrap-up` §1.6 + `/wake-up` §2.a/§3 (PENDING-23).
- studium-engine: seed brief `~/_Dev/studium-engine/docs/seed-brief.md`; lens `lens-studium-engine.md`. The frame: **ARC (near-ready) ← Chamber (thinking of what gets published) ← studium-engine (the engine that animates the Chamber)**.