From e4d47b997b27e661d2f91fb290c7b81b05b7c5a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20M=C3=BChl?= Date: Thu, 9 Apr 2026 21:52:27 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20plant=20seed=20=E2=80=94=20mount=20real?= =?UTF-8?q?=20~/.claude=20instead=20of=20separate=20~/.claudebox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seeds/SEED-004-mount-real-claude-dir.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .planning/seeds/SEED-004-mount-real-claude-dir.md diff --git a/.planning/seeds/SEED-004-mount-real-claude-dir.md b/.planning/seeds/SEED-004-mount-real-claude-dir.md new file mode 100644 index 0000000..360a52c --- /dev/null +++ b/.planning/seeds/SEED-004-mount-real-claude-dir.md @@ -0,0 +1,52 @@ +--- +id: SEED-004 +status: dormant +planted: 2026-04-09 +planted_during: v1.0 Phase 03 +trigger_when: Next milestone +scope: Small +--- + +# SEED-004: Mount real ~/.claude read-write instead of maintaining separate ~/.claudebox + +## Why This Matters + +Zero-config sandbox plus session sharing. Users wouldn't need to maintain a separate +`~/.claudebox` config — their existing Claude Code setup (hooks, plugins, MCP servers, +settings) transfers automatically. More importantly, sessions started outside claudebox +can be picked up inside it and vice versa. + +## When to Surface + +**Trigger:** Next milestone + +This seed should be presented during `/gsd-new-milestone` when the milestone +scope matches any of these conditions: +- Config/profile management is being revisited +- Session portability or multi-environment usage is in scope +- The `~/.claudebox` vs `~/.claude` separation is causing friction + +## Scope Estimate + +**Small** — the mount change itself is one line (`--bind ~/.claude ~/.claude` instead +of `--bind ~/.claudebox ~/.claudebox`), but the implications need thinking through: +- SANDBOX.md and CLAUDE.md management would write to the real `~/.claude/` +- Need to decide if claudebox-specific files (SANDBOX.md) pollute the host config +- Auth tokens in `~/.claude/` become visible inside the sandbox (already needed for Claude to work) +- The symlink trick (SEED current state: `~/.claudebox` real + `~/.claude` symlink) may be sufficient + +## Breadcrumbs + +- `claudebox.sh:317-318` — current mount: `--bind ~/.claudebox ~/.claudebox` + `--symlink ~/.claudebox ~/.claude` +- `claudebox.sh:102` — `mkdir -p ~/.claudebox` +- `claudebox.sh:107-153` — SANDBOX.md + CLAUDE.md management writes to `~/.claudebox/` +- `.planning/phases/03-sandbox-aware-prompting/03-CONTEXT.md` — D-01 two-file architecture decision +- `.planning/phases/01-minimal-viable-sandbox/01-CONTEXT.md` — original mount structure decision + +## Notes + +Current state after phase 3: `~/.claudebox` is bind-mounted as itself, `~/.claude` is a +symlink to it. This already fixes hook path resolution. The question is whether to go +further and just use the real `~/.claude` directly — eliminating the separate directory +entirely. Trade-off: simplicity vs isolation of claudebox-specific files from the host +Claude Code config.