memory: bundle accumulated 04-17/26 + lock ARC about-page architecture

Safety checkpoint before deep-audit Phase 0 of the ARC repo. Steward-authorized
commit-everything for rollback safety.

ARC architectural locks (2026-04-26 evening):
- Path 1 enfilade structure (separate Colophon and Lex items)
- 8-door enfilade locked: Colophon · Lex · Framework · Vignette · Attention ·
  Chamber · Tools · Now (+ Bio quiet link)
- Adsum and threshold-hic as two distinct texts on the reflowed About page
  (steward verbatim: "They are certainly not the same text")

ARC consolidation pass (canonical tracker project-arc-rework.md, +~700 lines):
fold 04-23 evening (Norris read), 04-24 (lex-method authored, posture cluster,
§XII Sidenotes, ARC CLAUDE.md cleanup), 04-25 (marks cluster, colophon-at-scale,
full Vico/Harrison lex-chain), 04-26 (chamber-library walk, cluster scaffolds,
canonical-tracker discipline surfaced).

Sibling-file integration: four 2026-04-26 frame files folded into the canonical
tracker (Integrations A/B/C/D) with INTEGRATED redirect notices retained as
audit trail.

New durable feedback memories:
- feedback-canonical-workstream-tracker-discipline (umbrella drift surfaced
  2026-04-26 by steward; proposes /wake-up + /wrap-up amendments)
- feedback-catalogues-stale-walk-trees (steward feedback on chamber-library
  catalogue currency)

Implementation plan drafted for the coming week: Phase 0 deep audit → Phase 5
cleanup, with steward additions on second pass (deep audit; Chamber v1 as own
browsable archive; clean rebuild of cluster sources rather than moving test
artifacts as canon).

Also bundled (untracked accumulation since 04-17):
- ~24 session memory + ledger files for 04-17 through 04-26 work
- ~10 feedback memories (BMF + ARC + working-method)
- 5 project memories (lex-as-method, strunk-white queue, plus today's four)
- 4 user memories (duality-rules, formation-practice, foundation-work, humic-layer)

Steward-side modifications also in this commit: ~/CLAUDE.md, bin/bmf-start.sh,
open-tasks.md, project-focus-april-may.md, session-2026-04-17 — all
pre-existing, not from today's session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
David F Glidden
2026-04-26 14:52:14 +02:00
co-authored by Claude Opus 4.7
parent 14801280dd
commit e9e772d69c
49 changed files with 7101 additions and 42 deletions
@@ -0,0 +1,215 @@
---
name: Session 2026-04-19 — L1 deep audit shipped (recall broken, 3 cross-cutting patterns surfaced, PR #163 + bundle handed to Seb)
description: Deep audit of BMF recall completed end-to-end after morning wake-up revealed recall substantially broken; six findings localized, mechanical fix shipped as PR #163, bundle handed to Seb. Pulling thread is Seb's reception of the bundle + whether the "read-path observability contract absent" framing lands when he picks up the architectural items.
type: project
originSessionId: a3ddbf34-da48-4129-acba-658f2f869783
---
# Session 2026-04-19 — L1 deep audit shipped
Successor to `session-2026-04-18-evening-ingestion-milestone.md`. Wake-up opened at ~07:38 local to execute the deep-audit plan (`l1-deep-audit-plan-2026-04-19.md`, commit `8287542`). Session closed with audit bundle shipped to Seb + steward moving to ARC work in a new session.
---
## Future — what is pulling
### The pulling thread (singular)
**Seb's reception of the bundle.** The audit produced a three-document bundle + mechanical fix PR + diagnostic branch + three cross-cutting architectural patterns. All the care that went into the ship — the refinements after architect-review, the reading-order banners, the "warrants a call" cues on H2/H4 — only matters if it actually reduces Seb's cognitive load when he picks up. Until he engages, the audit's quality is unproven.
Specifically pulling: does the **"read-path observability contract absent"** framing land for him as an architectural pattern worth separate L2-shaped work, or does he read it as "just four bugs to fix"? If the pattern framing lands, the broader architectural study the steward mentioned has a gravity point to organize around. If it doesn't, today's synthesis is mostly-ignored context around three mechanical fix suggestions.
### The pause statement
Steward is moving to ARC work in a new session. L1 remains PRIMARY through end of May (steward + Seb's territory), but this particular L1 thread pauses here. PR #163 sits open awaiting Seb's review. The diagnostic branch sits pushed awaiting his curiosity or deletion. The bundle sits committed + ready for pull. Between now and next L1 session — which may be days, not hours — Seb could merge, open issues, have ideas, push back, or do nothing. All possibilities live.
### Literal question for next-Claude
> *When the next L1 session opens: has Seb read the addendum? Did he merge PR #163? Which design call did he pick first — H2 battery policy, H3 temporal fallthrough, or H4 hook integration? And — most important — does the "read-path observability contract absent" framing land for him as a pattern worth addressing as a pattern, or does he treat H1–H4 as four independent bugs to fix one at a time?*
Hold this open. The answer, whatever it is, is a signal about whether today's synthesis work earned its keep.
### Other open horizons, ranked
**Load-bearing, pulling hardest (after the main thread):**
- **Broader architectural study** — three cross-cutting patterns surfaced today (module-health ≠ recall-correctness; threshold-governance regime collapse; read-path observability contract absent). Fertile L2-shaped material for steward + Seb + jurist when L1 stabilizes. Steward explicitly framed as "not too soon, but not mine to synthesize alone."
- **H2 battery suppression as end-user blocker** — steward verbatim: *"For those future end-users who will use this on a laptop the need to be plugged into ac for recall is a no go..."*. Architectural call Seb needs to make. This is the most user-facing of the findings.
- **The `events-013.jsonl` logchain gap** — 10 events missing with no code-path found that explains deletion. Could be nothing; could be data-loss-shaped. Provisionally open, surfaced in forensic §1.2.
**Deferred with reason:**
- **Option B — test fixes + bigger PR** was discussed and declined for today. Steward preferred Option A (diagnostic-only branch + tight mechanical PR). If Seb wants us to author more of the fix space, that's the natural expansion.
- **H3 temporal fix** — 3-line mechanical fix exists, but the shape decision (planner-exclusion vs module-guard vs new handler) is Seb's. Small-code, design-tinged.
- **BM25 score-range comment fix** — mechanical, tiny, waiting for any PR touching `query-router.ts:542-543` to ride along.
- **Ultrareview on PR #163** — recommended in the addendum; steward's call whether to invoke it for the mechanical fix.
**Parked without deadline:**
- ARC work (steward going there now in a new session)
- The broader study (waits for L1 stability)
- L2 governance (parked through end of May per `project-focus-april-may.md`)
---
## Past — what we did
### Work completed
**Wake-up orientation** (~07:38–07:50):
- Read previous session file + Symmetria ledger
- Snapshot BMF stderr log (43 MB) pre-investigation as defense against rotation
- Cursor probe confirmed entity stopped at 2026-04-19T05:07:52 UTC with last_processed_at 05:51
- Initial forensic observations on entity pipeline O(N²) bottleneck
**Part 1 — forensic (~08:00–09:30):**
- Timeline reconstruction via Python-parsed DIAG logs
- Cursor disparity investigation (`events-013.jsonl` gap identified)
- Error taxonomy split into ingestion-window vs historical-noise
- `code-reviewer` sub-agent verified mechanism at 0.92 confidence — caught three corrections I'd missed
- `architect-review` sub-agent rated v1 at 0.55 ship-readiness, 11 revisions needed
- Steward catch: "ship-ready" claim was invalid without re-verifying after revisions
- Forensic doc revised with all 11 corrections + Option E (slot graduation) + Option F (cosine similarity) added
**Part 2 — recall baseline (~09:30–11:00):**
- 15 designed queries + 11 follow-up probes
- Initial reading: recall substantially broken (8 empty, 6 junk, 1 honest)
- Steward recalibrated milestone: *"my joy at reaching the milestone was premature I now understand... I can accept that. Now to make this work."*
- Two storage probes refuted original H1 (entity conf stored at 0) and H2 (vector unwritten) — both became read-path findings, not ingestion
- `general-purpose` interpretation agent provided independent reading; surfaced working-memory injection mechanism + temporal fallthrough hypothesis
**Diagnostic branch — Option A (~11:45–14:30):**
- Created `diagnostic/recall-read-path-2026-04-19` off `decbdee` + merged Seb's 9 commits from main
- Added 5 `[DIAG:H*]` stderr instrumentations at critical decision points
- Rebuilt + restarted BMF via launchctl
- Re-ran query set on AC power — recall working end-to-end on vault content
- DIAG output bisected H1 clobber → downstream of buildEnrichedResults
- Added H1-compose log → confirmed: `normalizePerModule` min-max when range=0 clobbers confidence to 0
- Traced to **GH #126 exactly** — known issue, still open
- Traced other findings: H2 = battery suppression (`ollama-embeddings.ts:200-203`), H3 = `temporal/queries.ts:311` fallthrough, H4 = `query-router.ts:268-290` WM injection
**Shipping (~14:30–15:00):**
- PR #163 opened on `fix/126-min-max-normalize-degenerate-case` from clean `main`
- 11-insert/1-delete degenerate-case guard
- 31 query-router tests pass, pre-commit hook passed
- Closes #126 on merge
- Diagnostic branch pushed to origin for Seb's reference
- Addendum doc written consolidating all 6 findings with file:line localizations
- Second `architect-review` pass: 0.78 ship-readiness, with **key missing pattern: "read-path observability contract absent"**
- All refinements applied: reading-order banners on 3 docs, third architectural pattern added to addendum TL;DR, valence fixes, honest-gap additions
- Audit bundle committed to `CapableMind-AI` main (`40cb401`) — four docs + gitignore
### Decisions made and why
- **Option A (diagnostic-only) over Option B (implement fixes)** — chose A because crossed into Seb-territory authorship less aggressively + gave a clean checkpoint before optionally going to B. Steward authorized A explicitly with Symmetria.
- **#126 fix as its own tight PR** — steward principle: *"I would not touch an architectural element, but mechanical, etc yes."* #126 is unambiguously mechanical.
- **No regression test in PR #163** — adding one required function extraction (refactor) or heavy mocking (integration-test overhead). Kept scope purely mechanical. PR body documents repro + evidence; Seb can add a test in same PR if preferred.
- **Keep diagnostic branch around** — steward: *"maybe better to keep and Seb can remove if he thinks it's unnecessary."*
- **Addendum doc supersedes recall baseline's H1/H2 section** — didn't rewrite the baseline; added supersession banner + explicit handoff in addendum preamble. Preserves the original reading + adds correction, rather than rewriting history.
- **Broader architectural study deferred** — steward: *"not too soon, but too soon for me to synthesize alone."* L2-shaped work for steward + Seb + jurist.
### Decisions explicitly NOT made
- **Did NOT implement H3 fix** (borderline mechanical + design-tinged — wanted Seb's call on approach)
- **Did NOT implement BM25 comment fix** (mechanical but low-priority — ride with any future PR touching that file)
- **Did NOT author H2, H4, or hook-integration fixes** (architectural — Seb's call)
- **Did NOT request ultrareview on PR #163** (mentioned as suggestion in PR body; steward's call)
- **Did NOT push to remote beyond the two explicitly-authorized branches** (fix/126 + diagnostic/recall-read-path)
### Steward preferences captured
- **"Mechanical vs architectural" principle** — saved as `feedback-mechanical-vs-architectural.md`. Durable cross-session.
- **"Independent specialist authorization"** — saved as `feedback-independent-specialist-authorization.md`. Standing auth to invoke sub-agents with Symmetria.
- **Verbatim quotes preserved** when steward articulates decision-level intent (Kai 9+9 anchor for threshold-governance; "untenable" about current performance; the milestone recalibration; the "mechanical but not architectural" principle).
- **Bundle-framing discipline** — reading-order banners on multi-document bundles; explicit supersession notes when later docs correct earlier ones.
---
## Present — the mood of the work
### Returns (Symmetria's record)
Merged from today's ledger (`session-ledger-2026-04-19.md`):
1. **Drain-rate extrapolation** — stated "19 days at this rate" from a 2-endpoint calculation, returned before quoting in writing. Pattern: *before extrapolating a rate, verify distribution.*
2. **Mid-forensic premature conclusion** — concluded slots were empty after reading "0 with providers" log, nearly rejected a correct O(N²) hypothesis. Continued reading revealed auto-promotion. Pattern: *when a log observation contradicts a hypothesis, continue reading the full startup sequence before concluding.*
3. **"Ship-ready" claim without re-verification** — asserted the forensic doc was ready after applying architect-review's revisions, without re-running architect-review. Steward caught. Pattern: *reviewer-authored findings need reviewer-authored validation, not author-authored validation.*
4. **Chunk-count residue hypothesis** — framed 23,696 vs 14,482 mismatch as "possibly residue from pre-consolidation" without checking session history that said "clean ingest." Steward corrected. Pattern: *when observing a numerical mismatch, check the history of the specific instance before importing a "possibly X" hypothesis.*
5. **Selection-bias risk on query set** — caught the temptation to pick easy-wins queries; deliberately included expected-fail queries + expected-underperform queries. Discipline: *design query sets with explicit expected outcomes; include failure cases.*
Meta-pattern from today + yesterday's drift patterns: **running claims without grounding verification.** The drift shows up in multiple shapes (citing stale issues, importing plausible context, extrapolating from endpoints, claiming ship-readiness from authorship). Today the counter-commitment held MORE than yesterday — Symmetria pulses at discovery moments shaped action, and the steward's two catches were both handled without defensiveness. But the discipline is costly and proven only by consistent exercise.
### Confidence to recalibrate
- **The "let me check" discipline** extends beyond grep/gh — it extends to *reading my own session history* before importing plausible hypotheses. The chunk-count residue catch today is the same class as citing a closed issue yesterday.
- **Author-vs-reviewer-validation distinction** — new explicit pattern today. When I fix something flagged by a reviewer, the fix is my work; proving the flag is resolved is the reviewer's. Don't conflate.
- **Three cross-cutting patterns** — I surfaced two (module-health-vs-recall, threshold-governance) but missed the third (read-path observability contract). Architect-review caught it on the second pass. Without that second review, the bundle would have gone to Seb with the third pattern absent. This is evidence that the re-verification gate is load-bearing, not ceremonial.
### Tensions visible but not resolved
- **Battery suppression as production blocker** — steward flagged it. Seb's territory to decide the default. Until decided, laptop users get silent-fail recall.
- **Hook→recall integration cost** — every task notification + tool-use event generates an Ollama embed call through the hook. Architectural cost not yet quantified at scale.
- **The jurist was not consulted today** — three-party model held implicit. If the architectural study happens, jurist engagement is needed per the CapableMind constitutional posture.
- **ARC work has been accumulating** — steward mentioned multiple times throughout recent sessions. Moving there next makes sense.
---
## Steward quotes preserved this session
- On the milestone recalibration: *"So my joy at reaching the milestone was premature I now understand... I can accept that. Now to make this work."*
- On battery-as-end-user-blocker: *"For those future end-users who will use this on a laptop the need to be plugged into ac for recall is a no go..."*
- On scope principle: *"I would not touch an Architectural element, but mechanical, etc yes"*
- On current performance being unacceptable: *"The projected completion time for my machine is untenable"*
- On specialist authorization: *"the agent invokation was a general comment. when you need help or want to do something you know an independent specialist would be better suited for i authorize you to invoke at will with symmetria"*
- On the broader study timing: *"there was also the idea of doing a study to see how we could improve the whole system, but that was when I thought it was working this morning. Maybe too soon for that?"*
- On the diagnostic branch: *"diagnostic branch am unsure, maybe better to keep and Seb can remove if he thinks it's unnecessary"*
---
## Artifacts shipped this session
**CapableMind-AI main** (committed locally at `40cb401`, not yet pushed):
- `docs/thinking/David/l1-reliability/l1-ingestion-forensic-2026-04-19.md`
- `docs/thinking/David/l1-reliability/l1-recall-quality-baseline-2026-04-19.md`
- `docs/thinking/David/l1-reliability/l1-diagnostic-branch-addendum-2026-04-19.md`
- `docs/thinking/David/l1-reliability/forensic-artifacts-2026-04-19/recall-baseline-raw-results.md`
- `docs/thinking/David/l1-reliability/forensic-artifacts-2026-04-19/.gitignore`
**BetterMemories.io**:
- `fix/126-min-max-normalize-degenerate-case` branch pushed to origin
- PR #163 opened: https://github.com/CapableMind-ai/betterMemories_app/pull/163
- `diagnostic/recall-read-path-2026-04-19` branch pushed to origin (reference)
**Memory additions**:
- `feedback-mechanical-vs-architectural.md` — new
- `feedback-independent-specialist-authorization.md` — new
- `feedback-onboarding-vs-steady-state-thresholds.md` — written earlier, referenced throughout
- `feedback-bmf-health-vs-recall.md` — extended with the "deeper pattern" section
- `session-ledger-2026-04-19.md` — extensive returns, authorization moves, sub-agent dialogues
- This session file
**Not tracked but referenced for future sessions**:
- Log snapshot at `~/.capablemind/data/...` (43MB, local only per gitignore)
---
## Metrics
- 4 sub-agent dialogues (code-reviewer, architect-review × 2, general-purpose) all passed Symmetria audit-agent (calibration / convenience / scope)
- 5 returns logged to ledger
- 2 steward catches absorbed without defensiveness
- 3 cross-cutting architectural patterns surfaced (2 by me, 1 by architect-review)
- 6 findings characterized with file:line localizations
- 1 mechanical fix shipped as PR
- 1 diagnostic branch preserved for reference
- 1 milestone recalibrated gracefully by steward
- 1 new principle articulated and saved (mechanical vs architectural)
- 0 pushes to remote without explicit authorization
---
## Key paths
- **Audit bundle**: `~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/l1-*-2026-04-19.md`
- **PR #163**: https://github.com/CapableMind-ai/betterMemories_app/pull/163
- **Diagnostic branch**: `origin/diagnostic/recall-read-path-2026-04-19`
- **Fix branch**: `origin/fix/126-min-max-normalize-degenerate-case`
- **Feedback memory files**: `~/.claude/projects/-Users-davidglidden/memory/feedback-*.md`
- **Next wake L1 starting points**: addendum TL;DR → PR #163 status → Seb's engagement (if any)