Files
dotfiles/claude
David F GliddenandClaude Opus 4.7 7a71c7a07c wake-up/wrap-up: codify MemPalace 5-step protocol
MemPalace has always had a full memory protocol embedded in its
status response, but the skills were treating it as a library
catalog — one search on wake, nothing on wrap. Inspection revealed
the gap: the KG was empty (0 entities, 0 triples ever), and the
diary had exactly one entry, from 2026-04-09. Storage without
protocol is not memory; it is unindexed potential.

The protocol, as MemPalace itself states it:
  1. ON WAKE-UP: mempalace_status (loads protocol + AAAK spec)
  2. BEFORE RESPONDING: kg_query or search first; never guess
  3. IF UNSURE: "let me check" and query — wrong is worse than slow
  4. AFTER EACH SESSION: diary_write in AAAK format
  5. WHEN FACTS CHANGE: kg_invalidate old, kg_add new

wake-up changes:
- Step b.0: mempalace_status first (loads protocol, not just data)
- Step b.1: diary_read for claude-code agent (last 3 entries) —
  the previous self's voice
- Step b.2: kg_query on claude-code (drift patterns to hold today)
  and on pulling-thread subjects (authoritative current state)
- Step b.3: semantic searches as before
- Constraints: MemPalace is primary memory; when it disagrees with
  a memory file, trust MemPalace

wrap-up changes:
- Step 4 split into 4.a (drawer — semantic full content) and
  4.b (diary_write — AAAK compressed agent voice). Both surfaces;
  different future queries.
- New step 5: kg_invalidate facts that changed this session; kg_add
  new drift patterns, decisions, entities.
- Output template surfaces diary + KG update counts, not just drawer.

The drift-pattern handling replaces the proposed patterns-i-drift-
toward.md file idea. KG is the better home: queryable, temporal,
invalidatable. When a return is a repeat, kg_add it; wake-up's
kg_query surfaces it next session.

Verified by usage on today's session: diary entry filed (AAAK),
3 KG facts added (drift-pattern register-import-without-checking,
ARC versioning-regime ADR-005, after-the-reply-sequence staged).
This is the first real exercise of the protocol.

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

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 and feature flags. No secrets.


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:

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.