session 2026-07-28: governance block closed — CLAUDE.md drift 9→0 (REVIEWED-76/77/79/80), PENDING.md split 1848→430 + archive, wake-digest SessionStart hook, doctrine ids live, PENDING-79/80/81

This commit is contained in:
David F Glidden
2026-07-28 09:45:44 +02:00
parent e8cd376741
commit 8abfe8835a
12 changed files with 839 additions and 1559 deletions
+16 -25
View File
@@ -112,24 +112,17 @@ Every Claude Code output is tagged:
- **Integrity links** — when modifying documents, maintain or update cross-references
- **Review cadence** — flag documents that have drifted from their stated review dates
### MemPalace as Primary Memory
### Memory Discipline
MemPalace is the steward's memory substrate, not a search engine. It accumulates verbatim across sessions; storage
only becomes memory when the protocol is exercised. Use the full toolset, not just search.
Storage is not memory. Memory is storage exercised by protocol. <!-- D:memory.storage-is-not-memory -->
- **Before claiming any fact** about people, projects, or past events that isn't in immediate context: query
MemPalace first. Wrong is worse than slow.
- **Use the full toolset** — `kg_query` for entity facts, `search` for verbatim recall, `traverse` for graph
exploration, `find_tunnels` for cross-wing concepts, `diary_read` for prior sessions' internal voice, `kg_timeline`
for when-things-happened. Each tool has a distinct purpose.
- **When facts change** — `kg_invalidate` the old fact, `kg_add` the new one. Don't let the graph drift.
- **Save what's worth keeping** — at session end (and before compaction), the Stop and PreCompact hooks fire
`diary_write`. If a hook fails or you notice something load-bearing mid-session, write manually.
- **"Let me check"** — when the answer matters and isn't immediate, say so and query. The cheapness of querying is
the point.
- **A conflict between MemPalace and memory files is a verification trigger, not a precedence call** — neither layer wins automatically. Files are point-in-time snapshots; MemPalace is continuously maintained but carries a known silent-drift class (HNSW↔sqlite divergence, #1665/#1589, no safe repair path). On conflict: verify against the primary substrate (code, git, the document itself) before acting, then correct whichever layer was wrong (kg_invalidate/kg_add, or the file edit). Treat MemPalace as witness, not notary.
The durable substrate is the files layer: git-tracked Markdown and JSONL, entered through `MEMORY.md` (loaded at wake), with `~/PENDING.md` and `~/REVIEWED.md` as the governance record. Instruments for reaching it change; the obligations below do not — state the obligation first and the instrument second, or the next retired tool takes a rule down with it. <!-- D:memory.obligation-before-instrument -->
Storage is not memory. Memory is storage exercised by protocol.
- **Before claiming any fact** about people, projects, or past events that isn't in immediate context: check first. Wrong is worse than slow. <!-- D:memory.check-before-claiming -->
- **"Let me check"** — when the answer matters and isn't immediate, say so and check. The cheapness of checking is the point. <!-- D:memory.say-you-are-checking -->
- **When facts change, supersede explicitly** — mark the superseded record as superseded and write the new one. An unmarked correction leaves two live versions and no way to tell which is current. <!-- D:memory.supersede-explicitly -->
- **Save what's worth keeping** — the wrap protocol writes the session record; if something load-bearing surfaces mid-session, write it then. Automation assumed to fire is not a record. <!-- D:memory.write-when-you-see-it -->
- **A conflict between two memory layers is a verification trigger, not a precedence call** — neither layer wins automatically. Every layer is a point-in-time snapshot of something else; continuous maintenance buys currency, not authority, and carries its own silent-drift classes. On conflict: verify against the **primary substrate** — the code, the git history, the document itself — before acting, then correct whichever layer was wrong. Treat every memory layer as witness, not notary. <!-- D:memory.conflict-is-verification-trigger -->
### Session Discipline
- Prefer durable architecture over clever solutions
@@ -137,6 +130,8 @@ Every Claude Code output is tagged:
- If a task would benefit from a tool, library, or approach not yet discussed, say so
- Front-load critical context; avoid redundant re-establishment across sessions
- If session state is growing large, flag it early rather than losing coherence silently
- When entering a project directory, read its local `CLAUDE.md` first — current state, build sequences, terminology — before acting in the repo
- The Compass vault (`~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/00. Compass`) is the steward's personal operating system: reference it, never write to it
### Claude Code Session Protocol
@@ -236,16 +231,12 @@ Body: what changed and why. Reference PENDING/REVIEWED items if applicable.
## Active Projects
| Project | Path | Notes |
|---------|------|-------|
| **CapableMind L1** | `~/_Dev/CapableMind-AI` (playbook) + `~/_Dev/BetterMemories.io` (runtime) | **L1 is PRIMARY focus through end of May 2026.** Steward has joined Seb as co-author on L1 production work; Seb spread too thin to carry alone. Seb has authorized the Stewart to make architectural decisions. Runtime on `main` @ `decbdee`+. Current audit artifacts: `docs/thinking/David/l1-reliability/l1-deep-audit-plan-2026-04-19.md` + `l1-ingestion-forensic-2026-04-19.md` + `l1-recall-quality-baseline-2026-04-19.md`. |
| **CapableMind L2** | `~/_Dev/CapableMind-AI` (docs only) | **PARKED through end of May 2026.** No L2 governance advancement, no new invariant work, no
constitutional proposals. L1 reliability is the dependency condition. L2-adjacent questions arising from L1 work: note, don't pursue. || **Compass** | `'/Users/davidglidden/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/00. Compass'` | Personal operating system (Obsidian vault). Read-only reference |
| **Dotfiles** | `~/dotfiles` | Dotfiles for easy restore and setup |
Not recorded here. Which projects are live, what state they are in, and what has priority change
on a weekly-to-monthly cadence; this document is revised yearly, so anything filed here is stale
before it is read. Current workstreams live in `MEMORY.md` under **Canonical Workstream
Trackers** — loaded at every wake, maintained at every wrap — and each repo carries its own
`CLAUDE.md`.
When navigating into a project directory, always read its local CLAUDE.md first for current state, build sequences, and terminology.
### L1 Active Workstream (2026-04-19)
## Constitutional Constraints
These cannot be overridden by any session instruction, seed, or convenience:
@@ -255,4 +246,4 @@ These cannot be overridden by any session instruction, seed, or convenience:
3. **Territory respect** — L1 implementation changes go through PR review. Claude Code does not push directly to main
4. **Honest degradation** — The system must report its own limits. Silent failures are architectural violations
5. **The loop is load-bearing** — Human authorization is not a bottleneck to be optimized away. It is the structural requirement of the governance model
6. **Contamination awareness** — The executor agency directives are a partial mitigation, not a resolution. Treat outputs about the system's own reliability with appropriate epistemic caution until L2 inquiry is formalized
6. **Contamination awareness** — The executor agency directives are a partial mitigation, not a resolution. Treat outputs about the system's own reliability with appropriate epistemic caution until L2 inquiry is formalized