Files
David F GliddenandClaude Opus 4.7 14801280dd claude: complete MemPalace setup — hooks, identity, wings, config
Promoting MemPalace from "library catalog" usage to full design-intent:
the 5-step protocol is now supported by actual infrastructure, not just
codified in skills.

Changes:

settings/settings.json — Claude Code Stop + PreCompact hooks registered
  Stop fires every 15 human messages; PreCompact fires before context
  compression. Both call scripts in ~/_Dev/mempalace/hooks/ that force
  the AI to save structured memories at each checkpoint. Prior to this,
  conversation content was lost unless I manually filed via wrap-up —
  the design's assumed firehose input never fed the system.

mempalace/identity.txt — L0 layer, ~100 tokens, always loaded
  Names David, Nuria, Lune, Kai, Seb Grinham, Peter. Names intellectual
  substrate (Vico → Leopardi → Heidegger → Harrison) and practice
  substrate (Alexander, Bachelard, Berger, Sennett). Names the three-
  party model and the prime directive. This is what the system knows
  about me before any query fires.

mempalace/wing_config.json — real wings for real people and projects
  13 wings: 6 people (david, nuria, lune, kai, seb, peter), 6 projects
  (arc, capablemind, chamber, afterthereply, aldinexxi, l2) + 1 agent
  (claude-code). Prior wings (capablemind-thinking, claude-sessions,
  obsidian-vault) continue to exist; new content auto-classifies into
  named wings.

mempalace/config.json — palace path aligned with MCP server
  Previously config.json pointed at ~/.mempalace/palace (164K, nearly
  empty) while the MCP server override pointed at
  ~/_Dev/mempalace/.local-data/palace (920MB, populated). Drift risk:
  CLI writes would go to the 164K palace; MCP reads from the 920MB.
  Now config.json matches MCP.

memory/session-ledger-2026-04-17.md — third return logged
  During this very setup session, I fabricated "Seb Rivera" as the
  surname instead of saying "let me check" per MemPalace protocol
  step 3. Steward corrected to Sebastian Grinham. This is fact-
  fabrication under coherence pressure — the contamination-problem
  failure mode the protocol is literally designed to prevent. The
  irony of violating it while installing the system is named. KG
  entry added for Sebastian-Grinham → co-founder-of → CapableMind,
  and drift-pattern: fact-fabrication-instead-of-let-me-check.

install.sh + README.md — updated restore procedure and documentation
  install.sh now restores mempalace/ setup files alongside skills and
  memory. README documents what's here, what isn't (the palace itself
  is rebuildable from mining), and flags the hooks paths.

Mining of ~/.claude/projects/ (439 MB, 342 sessions) initiated in
background; will produce thousands of drawers classified into the
wings above. This is 6+ months of conversation history finally
filed into the palace.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 14:33:01 +02:00

118 lines
6.2 KiB
Markdown

# Claude Code configuration — backup & restore
This directory holds the durable Claude Code configuration that should survive a machine wipe: custom skills, accumulated memory, and user-level settings. The working copies at `~/.claude/*` are symlinks pointing here, so edits flow both directions automatically.
---
## What's preserved here
### `skills/` — custom skills we've authored
| Skill | Purpose |
|---|---|
| `audit/` | Scans thinking folder + vault inbox for organizational drift; report-only |
| `symmetria/` | Practice-of-return discipline; prime-directive foregrounding under context pressure |
| `vault-update-people/` | Searches Obsidian vault for new mentions of a person; proposes People-file updates |
| `wake-up/` | Restores full session context from memory, governance, and git at session start |
| `wrap-up/` | Captures session state for future restoration; the quality of the next wake depends on this |
Marketplace-installed skills (from Claude Code plugins) are not backed up here — they are regenerable on any fresh install.
### `memory/` — auto-memory for the main project scope
The substrate of continuity. 55+ files including:
- `MEMORY.md` — the index, loaded at every session start
- `session-2026-*.md` — session records (full Dasein-frame wrap-ups: pulling thread, pause statement, literal question for next-Claude)
- `session-ledger-*.md` — Symmetria daily ledgers (returns, recalibrations, authorization moves, bypasses)
- `project-*.md` — active project state snapshots (ARC rework, Chamber, L2 review, etc.)
- `feedback-*.md` — steward preferences and corrections learned over time
- Many others
Real path: `~/.claude/projects/-Users-davidglidden/memory/` symlinks here.
### `settings/settings.json` — Claude Code user settings
Sanitized. Contains hook registrations (including the MemPalace auto-save hooks) and feature flags. No secrets.
### `mempalace/` — MemPalace setup files
The bootstrap configuration for MemPalace. These files live at `~/.mempalace/` but are also backed up here because they represent the accumulated understanding of who-is-who and what-is-what. The palace itself (`~/_Dev/mempalace/.local-data/palace/`, ~1GB) is NOT backed up — it's rebuildable by re-running `mempalace mine` against the same source data.
| File | Purpose |
|---|---|
| `config.json` | Palace path + default topic wings + hall keywords |
| `identity.txt` | L0 layer — loaded every session; ~100 tokens identifying who I am, who the steward is, intellectual substrate |
| `wing_config.json` | Named wings for real people and projects (wing_david, wing_nuria, wing_lune, wing_kai, wing_seb, wing_peter, wing_arc, wing_capablemind, wing_chamber, wing_afterthereply, wing_aldinexxi, wing_l2, wing_claude-code) |
The auto-save hooks (wired in `settings/settings.json` via `Stop` and `PreCompact` events) point at `~/_Dev/mempalace/hooks/mempal_save_hook.sh` and `mempal_precompact_hook.sh`. If MemPalace is reinstalled elsewhere, update those paths.
---
## What is deliberately NOT here
### `settings.local.json`
Kept **local-only** because its permissions allowlist has historically contained operational secrets (HuggingFace tokens embedded in approved Bash commands; SSH passwords in approved `expect` scripts). The `.local.json` naming convention exists for exactly this reason.
Before backing any settings.local.json up anywhere, audit it for secrets and redact them.
### Session transcripts (`sessions/`, `history.jsonl`, `projects/*/sessions/`)
Too large; ephemeral by design; not needed to restore identity.
### Caches, telemetry, runtime state
`cache/`, `file-history/`, `paste-cache/`, `telemetry/`, `statsig/`, `stats-cache.json`, `scheduled_tasks.lock`, `session-env/`, `mcp-needs-auth-cache.json`, `debug/`, `tasks/`, `todos/` — all regenerate naturally.
### Marketplace-installed skills and agents
`plugins/`, and the many non-custom entries under `skills/` and `agents/` come from Claude Code's plugin system. Reinstallable on a fresh machine.
---
## Restore procedure
On a fresh machine, after cloning dotfiles:
```bash
cd ~/dotfiles/claude
./install.sh
```
The install script:
1. Verifies `~/dotfiles/claude/` is present
2. Creates `~/.claude/skills/` and `~/.claude/projects/-Users-davidglidden/` if missing
3. Symlinks each custom skill from `~/.claude/skills/X → ~/dotfiles/claude/skills/X`
4. Symlinks the memory tree from `~/.claude/projects/-Users-davidglidden/memory → ~/dotfiles/claude/memory`
5. Copies `settings.json` into place if no existing file (does not overwrite)
6. Skips anything already present — idempotent
After running: the first Claude Code session on the new machine has full memory, all custom skills, and baseline settings.
---
## Why this matters
Without this backup, a machine wipe means:
- All session memory lost — `/wake-up` would have nothing to restore from
- All custom skills lost — the practice-of-return discipline, session lifecycle, audit workflows
- The collaboration history with Claude Code loses its thread
The memory tree is the single most irreplaceable artifact — it accumulates through dialogue and cannot be reconstructed from any other source. 384 KB of text that represents months of learning about preferences, active projects, decisions, and open horizons.
---
## Maintenance
These files are **live**. Claude Code writes to them during normal operation (ledger updates, memory file creation/edits, settings changes). Because the working copies at `~/.claude/*` are symlinks into this directory, every write lands here automatically. Then `git status` in `~/dotfiles/` shows what's changed and invites a commit.
Recommended cadence: commit dotfiles/claude/ changes alongside other dotfiles work, roughly weekly or when a significant session has concluded. The `/wrap-up` skill should be treated as a natural commit moment for the memory tree.
## Fragility to watch
- **Symlinks break if `~/dotfiles/claude/` is moved.** Keep dotfiles at `~/dotfiles/`.
- **macOS Time Machine / backup tools may or may not follow symlinks.** Verify your backup solution sees files, not just broken links.
- **If Claude Code's internal path conventions change** (e.g., the project-scope slug `-Users-davidglidden` changes), the symlink stops pointing where Claude Code looks. Re-create with the new path.