Why your stuff needs a new home, and what the new home looks like.
Your entire 1 GB working tree lives inside ~/Documents/, which is iCloud-synced. iCloud decides on its own when to evict files to "save space." On 2026-04-28 it evicted Dev 0 mid-session — files vanished, work stopped. This will keep happening until we move out.
~/projects/lovebuilt/
Your dev VPS already uses ~/projects/. Matching the path on both machines means there's no mental translation when you're switching between Mac and SSH. ~/code/ would also be fine; ~/dev/ is ambiguous (could mean "the dev VPS").
Trade-off: "lovebuilt" baked into the path means a future personal-vs-business split is cleaner if added later as a sibling (~/projects/personal/) instead of a re-arrangement.
Mega-monorepo — keep N8N-BUILDER as-is, just move it.
✓ Zero disruption. ✗ Every chat loads the full CLAUDE.md. ✗ MCPs can't differ per sub-project.
17 separate folders — every project gets its own.
✓ Tight MCP scope. ✗ Shared rules and skills get duplicated or symlinked everywhere.
Keep ~/projects/lovebuilt/ as a monorepo for the spine (handoffs, memory, _dev0, _resources). Inside it, top-level project folders that can be opened standalone, each with their own CLAUDE.md and .mcp.json.
coach?There are 2,286 hard-coded /Users/coach references inside ~/.claude/ alone, plus keychain, login items, and FileVault recovery to handle. That's its own multi-day project — don't pile it on top of the iCloud rescue.
| Option | Pros | Cons |
|---|---|---|
| GitHub private repo | History, blame, mobile review UI | Commit cadence; secrets are scary |
| Self-hosted Gitea | Fully private | One more service to babysit |
| rsync cron | Dead simple | No history, no review |
| Syncthing | Symmetric, NAT-friendly | Conflict files multiply |
Slow tier: GitHub private repo for the canonical state. Commit at end of session. .env stays gitignored, secret-scan runs as a pre-commit hook.
Fast tier: keep your existing Mac→VPS lsyncd for the live brainstorm files so VPS bots see updates instantly without waiting for a commit.
Two-tier sync: slow tier for everything important, fast tier for live brainstorm files
Wiki lives at ~/projects/lovebuilt/wiki/. A symlink at ~/wiki points there so you can cd ~/wiki from anywhere.
Your daily journal stays in Obsidian (in iCloud Drive, not Documents) — that's where you write. A one-way mirror copies markdown files into ~/projects/lovebuilt/wiki/ where Claude Code reads them, GitHub versions them, and NotebookLM indexes them.
Future-proofing rule: nothing in any CLAUDE.md or skill should hardcode the wiki path other than via ~/wiki. Then it can move someday without breaking everything.
| Where | Refs | What we do |
|---|---|---|
| Inside N8N-BUILDER | 82 | sed + manual review |
~/.claude/skills + plans | ~422 | sed + manual review |
~/.claude/projects/*.jsonl | 1,864 | Don't touch. Symlink old → new. |
The 1,864 references in .jsonl files are immutable session-history transcripts. Rewriting them would corrupt your conversation history. Instead, we'll leave a symlink so Claude Code can still find old sessions by their original path-derived IDs.
You said: "I never know which folder to start a new chat in." Solution: ~/projects/lovebuilt/_basecamp/ with a CLAUDE.md that's just an index — "if you want to do X, open folder Y."
Skill-ifying it (a /where-do-i-start command, free-models routing) is a v2 enhancement, not a blocker.
iTerm is the primary interface for Claude Code. VS Code is for editing.
Why: VS Code eagerly spawns every MCP server in .mcp.json the moment you open it — for 16 sessions that's ~534 processes. iTerm spawns MCP servers lazily on demand (~13 per active session).
1. Open iTerm 2. cd ~/projects/lovebuilt/n8n 3. claude → loads only that folder's CLAUDE.md → loads only that folder's .mcp.json → no token bloat from sibling projects
This was the research / decisions phase. Nothing has been moved yet. The actual migration is a separate handoff that runs once you've read these decisions and signed off (or pushed back).
coach rename (deferred)Read this. Push back on any "Lean" you don't like. Then dispatch the next chat with this prompt:
Read /Users/coach/.claude/plans/migration-research-handoff-calm-dewdrop.md and execute it. Produce the 4 deliverables under _dev0/migration/, do NOT move any files or rewrite any paths, then /dev0-checkin Complete.
That fresh chat will run the NLM notebook inventory, write the formal architecture-decisions.md with rationale + trade-offs + open questions for each section above, and hand it back to you for sign-off before the actual move-files chat runs.