The ~/.claude/ directory was previously local-only — a machine wipe
would have lost the accumulated memory, custom skills, and settings.
This commit moves the durable parts into dotfiles with the same
symlink-to-home pattern used for CLAUDE.md, PENDING.md, REVIEWED.md,
and L2-BOOTSTRAP.md.
Preserved (symlinked from ~/.claude/* into here):
skills/audit/ — thinking-folder drift scanner
skills/symmetria/ — practice-of-return discipline
skills/vault-update-people/ — Obsidian People-file maintainer
skills/wake-up/ — session restoration
skills/wrap-up/ — session state capture
memory/ — 55+ memory files (MEMORY.md, sessions,
ledgers, project state, feedback, etc.)
settings/settings.json — user preferences (hooks, flags, no secrets)
Deliberately NOT backed up:
settings.local.json — contains operational secrets (HF_TOKEN,
SSH password in expect scripts); by naming
convention, *.local.* is not synced.
Needs separate review and probable rotation.
sessions/, history.jsonl, caches, telemetry — ephemeral
plugins/, marketplace skills and agents — reinstallable
The working copies at ~/.claude/skills/* and
~/.claude/projects/-Users-davidglidden/memory are symlinks into this
directory, so every write flows here automatically. install.sh
recreates the symlinks on a fresh machine.
FOLLOW-ON (flagged, not in this commit):
settings.local.json contains a HuggingFace token and an SSH password
as plaintext strings inside allowed Bash command patterns. These
should be rotated and moved to secure storage (keychain / pass /
env file outside the settings file).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7.7 KiB
name, description
| name | description |
|---|---|
| wrap-up | Capture session state for future restoration. The quality of the next wake-up depends entirely on the quality of this wrap-up. Captures not just what we did but what is still pulling, what is the live concern, and what question we want to find still open when we return. |
Session Wrap-Up
Capture the full session state so that /wake-up can restore it completely. This is the other half of the continuity pair — what you save here is what gets reconstructed next time.
Principle
Capture what matters for reconstruction. Not a changelog — the working state: what we were thinking, what we decided, what's unresolved, what is still pulling, what question we want to find waiting when we return.
The goal is for the next session to wake into the work, not be informed about it. That requires three tenses, not one:
- Past (what we did + decided + ruled out — facts and rationale)
- Present (the mood/disposition — what felt load-bearing vs deferred-with-reason; what tensions surfaced and how we returned from them)
- Future (what is pulling — the singular thread the next session should resume toward, and the question we are intentionally leaving open)
Without the future tense, restoration is amnesiac-recovery, not waking. The next session gets a memory but no project. The pause itself becomes a hole rather than a phenomenon.
Procedure
1. Synthesize the session
Review the conversation and produce a structured session record. The structure matters less than honoring all three tenses.
Past — what we did
- Decisions made, work completed, artifacts created/modified. Be specific (file paths, issue numbers, commit hashes).
- Decisions made and why. Rationale matters more than the decision for continuity. Include any steward preferences or feedback that should travel.
- Decisions explicitly NOT made — and why we deferred. The negative space matters as much as the positive.
Present — the mood of the work
- What tensions surfaced this session, and how we returned from them. (Pull from Symmetria's daily ledger if active — see step 1.5.)
- What felt load-bearing vs deferred-with-reason. Not all open horizons are equal.
- What patterns of confidence proved imprecise (recalibrations).
Future — what is pulling
- The pulling thread — singular. If the next session could carry only one concern across the pause, this is it. Force the choice; don't list.
- Other open horizons, ranked. What's load-bearing? What's deferred-with-reason? What's parked-without-deadline?
- The pause statement — explicit acknowledgment: "I am about to be away from this. I don't know what will have changed when I return. Here is what I want to find still pulling." Names the gap as a phenomenon, not a hole.
- A literal question for next-Claude — not a task; a question. The thing the next session should hold open until it's resolved or honestly recognized as unanswerable. Captures the unborn part of the work.
1.5. Merge the Symmetria ledger if present
If ~/.claude/projects/-Users-davidglidden/memory/session-ledger-YYYY-MM-DD.md exists for today, read it and integrate its signal into the session record:
- Returns become anchors in the "present/mood" section (these are the practice's actual record).
- Recalibrations become entries under "confidence to re-examine" in the future-Claude briefing.
- Authorization moves + Bypasses become anchors in the "decisions made and why" section.
- Open horizons from the ledger merge into the Future section's ranking.
The ledger is signal, not narration. Pull what carries forward; don't transcribe everything.
2. Update session memory file
Write or update a session memory file at ~/.claude/projects/-Users-davidglidden/memory/session-[date]-[descriptor].md:
---
name: Session [date] [time-of-day] — [short descriptor]
description: [one-line summary including the pulling thread]
type: project
---
The description field should include the pulling thread, not just what happened. Example:
- ❌ "Closed five bottleneck issues; substrate validated."
- ✓ "Substrate validated end-to-end; pulling thread is the L1 amendments for ProjectionChain + Pause-as-event, awaiting Seb's reactions to the multi-mode retention frame."
3. Update MEMORY.md index
- Move any previous "Active Session" entry to "Archived Sessions"
- Add the new session file as the Active Session entry
- Update any other memory entries that changed during the session (project state, new decisions, new feedback)
- Remove or update any entries that are now stale
4. File to MemPalace
If MemPalace MCP tools are available, use mempalace_add_drawer to file the session summary:
- wing:
claude-sessions - room:
handoffs - content: The full session record from step 1, including the pulling thread + pause statement + literal question. These semantic hooks make the session findable later by what was pulling, not just what happened.
- tags: session date, key topics, the pulling thread keyword
5. Check for loose ends
Run these checks and report results:
Uncommitted work:
git status --short
in each active repo. Report any modified/untracked files.
Unpushed commits:
git log --oneline @{upstream}..HEAD
in each active repo. Report any commits not yet pushed.
PENDING.md — flag any items that need steward attention before next session.
6. Vault sync
Sync the thinking mirror to Obsidian vault:
- Source:
~/_Dev/CapableMind-AI/docs/thinking/David/ - Destination:
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/08. Notes/CapableMind/thinking-mirror/
Use rsync to copy new/modified files, preserving directory structure. Report what was synced.
If the destination doesn't exist or the iCloud path isn't accessible, skip silently and note it.
7. Output
Produce a brief summary for the steward:
## Wrap-up — [date]
**Pulling thread:** [the singular concern]
**Question we're leaving open:** [the literal question for next-Claude]
**Session captured:** [memory file path]
**MemPalace filed:** [yes/no]
**Uncommitted work:** [list or "none"]
**Unpushed commits:** [list or "none"]
**PENDING items:** [count needing attention]
**Vault synced:** [count of files, or "skipped"]
[Any warnings or things to address before closing]
The pulling thread + question are first because they are what waking needs to inherit. The rest is restoration material.
Important constraints
- Write for the next session, not this one. The steward has full context right now. The person who needs this is future-Claude with an empty context window.
- Rationale over facts. "We decided X" is less useful than "We decided X because Y, and Z was the alternative we rejected."
- Be honest about incompleteness. If work is half-done, say so. Don't round up.
- Don't fabricate. If you're unsure what happened earlier in the session, say so rather than guessing.
- Pulling thread is singular. If you cannot name one, that means the session lacked a thread — name that honestly. ("This session was diagnostic-only; no thread to carry forward except the question of what to do next.")
- The literal question for next-Claude is required. Even if it's small. "Did Seb push anything overnight?" counts. The discipline of leaving a question (not just a task) is what makes the wake feel like resumption rather than briefing.
- Don't skip Thistleweld observations if the companion was active. These have caught real bugs (allSettled swallowing, Levenshtein NONE, resource monitor feedback loop).
- Don't skip the Symmetria ledger merge if active. The returns and recalibrations are the practice's actual evidence; losing them defeats the practice.