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>
4.7 KiB
name, description, argument-hint
| name | description | argument-hint |
|---|---|---|
| vault-update-people | Search Obsidian vault for new mentions of a person since their last review date, then propose updates to their People file and Updates Log. | <person-name> |
Vault People Updater
Update a person's records in the Obsidian vault by searching for new mentions since their last review.
Paths
- Vault root:
/Users/davidglidden/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/ - People files:
03. People/ - Daily notes:
01. Daily/ - ChatGPT exports:
99. Archive/99. chatgpt-conversations/ - Children notes (Lune):
08. Notes/Children/01. Lune/ - Children notes (Kai):
08. Notes/Children/02. Kai/ - Reviews & Planning:
02. Reviews & Planning/
Procedure
1. Identify the person
The user will provide a name as an argument (e.g., Lune, Kai). Find the matching People file in 03. People/. If ambiguous, ask.
Known mappings:
Lune→Lune Polymnie Marie Glidden.mdKai→Kai Aureli Glidden Pujolràs.md
2. Read the People file
Read the full People file. Extract the last_reviewed date from YAML frontmatter. This is the cutoff — everything before this date is already captured.
3. Search for new mentions
Search the following locations for mentions of the person's name (and known aliases from the People file frontmatter) in files modified after the last_reviewed date:
- Daily notes (
01. Daily/) — grep for name/aliases. Daily notes are namedYYYY-MM-DD.md, so filter by filename date > last_reviewed. - ChatGPT conversation exports (
99. Archive/99. chatgpt-conversations/) — grep for name/aliases. Files are namedYYYY-MM-DD_Title.md, so filter by filename date > last_reviewed. - Children notes subfolder — check for any new or modified files.
- Reviews & Planning (
02. Reviews & Planning/) — grep for name/aliases in files dated after last_reviewed. - Any other vault location — do a broad grep across the vault, but deprioritize results from folders already searched.
4. Read and extract
For each file with new mentions, read the relevant sections and extract:
- Date of the mention
- Context — what happened, what was said, what was observed
- New facts — anything not already in the People file (health updates, milestones, relationship changes, decisions, events, emotional state)
- Quotes — any direct quotes worth preserving in the Memory Bank
5. Compare with existing records
Compare extracted information against:
- The People file's current content (avoid duplicating what's already there)
- The Updates Log (avoid duplicating existing entries)
6. Propose updates
Present the proposed changes clearly, organized by section of the People file:
- Frontmatter updates (age, location, education status, relationship status, etc.)
- Current Situation changes
- Relationship Dynamics updates
- New interaction history entries (chronological)
- New Updates Log entries (chronological, with source attribution)
- Memory Bank additions (quotes, moments)
- Document links to add
- Gaps identified — periods with no mentions that should be flagged
For each proposed change, note the source file so the user can verify.
7. Wait for approval
Do not write changes until the user approves. Present the full set of proposed updates and ask:
- "These are the updates I found. Shall I apply all of them, or would you like to adjust anything first?"
8. Apply updates
Once approved:
- Update the People file (edit existing sections, add new entries to Interaction History)
- Add new entries to the Updates Log (in the appropriate Children notes subfolder)
- Update
last_reviewedin the People file frontmatter to today's date
9. Report
After applying, summarize:
- Number of new entries added
- Date range covered
- Any gaps flagged (periods with no mentions)
- Suggested follow-up (e.g., "November-December 2025 has no entries — worth recovering from memory if anything surfaces")
Important constraints
- Never fabricate information. Only propose updates based on content found in vault files.
- Preserve voice and tone. The People files and Updates Logs have a specific intimate, reflective tone. Match it. Don't sanitize or formalize.
- Respect the iCloud path. The vault path contains spaces and special characters. Always quote paths.
- Flag temporal gaps honestly. If months have no mentions, say so — don't paper over them.
- Source attribution matters. Note whether information came from a daily note, a ChatGPT export, a dedicated health file, etc. ChatGPT exports are conversations, not authoritative records — flag when information comes only from an AI conversation and may need verification.