Skip to main content

brain-surgery

Externalize Claude's auto-memory into your project directory so it's git-committable and survives across machines

来源信息

仓库
ellyseum/claude-brain-surgery
最近来源活动
2026年2月12日 12:45
检测到的 SKILL.md 语言
英语
星标
0
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
brain-surgery
description
Externalize Claude's auto-memory into your project directory so it's git-committable and survives across machines
# /brain-surgery Externalizes Claude's auto-memory into `.context/memory/` in the project root, replacing the auto-memory directory with a symlink. This makes Claude's memory git-trackable, portable, and collaboratively editable. ## Usage - `/brain-surgery` — Set up the symlink (safe, non-destructive) - `/brain-surgery --undo` — Restore the default auto-memory directory ## Instructions ### Step 1: Detect project root Use `$PWD` as the project root. **Safety check:** If `$PWD` is `$HOME`, `/home`, `/tmp`, `/`, or any path with fewer than 3 components, **STOP** and warn the user: > "This doesn't look like a project directory. Run this from inside a project root." ### Step 2: Compute the auto-memory path Claude's auto-memory lives at: ``` ~/.claude/projects/<encoded-path>/memory/ ``` The encoded path replaces all `/` with `-`, including the leading slash. So `/home/jocel/projects/foo` becomes `-home-jocel-projects-foo`. Compute it: ```bash encoded="$(echo "$PWD" | tr '/' '-')" auto_memory="$HOME/.claude/projects/${encoded}/memory" ``` ### Step 3: Determine the operation Check if the user passed `--undo`. If so, skip to the **Undo** section below. ### Step 4: Check current state ```bash ls -la "$auto_memory" 2>/dev/null ``` - **If it's already a symlink pointing to `.context/memory/`** → Tell the user "Already set up!" and show the symlink. Done. - **If it's a real directory** → Proceed to Step 5 (merge existing files). - **If it doesn't exist** → Skip to Step 6 (create fresh). ### Step 5: Merge existing auto-memory files This is the delicate part. Existing memory files must be preserved. 1. **Back up first:** ```bash backup="/tmp/claude-memory-backup-$(date +%s)" cp -a "$auto_memory" "$backup" ``` 2. **Create `.context/memory/` if needed:** ```bash mkdir -p .context/memory ``` 3. **Copy files (no-clobber — don't overwrite existing `.context/memory/` files):** ```bash cp -n "$auto_memory"/* .context/memory/ 2>/dev/null ``` 4. **Verify the merge:** ```bash src_count=$(ls -1 "$auto_memory" 2>/dev/null | wc -l) dst_count=$(ls -1 .context/memory 2>/dev/null | wc -l) ``` The destination count should be >= the source count. If `dst_count < src_count`, **ABORT** and tell the user: > "Merge verification failed. Your backup is at: $backup" 5. **Remove the original directory:** ```bash rm -rf "$auto_memory" ``` 6. Tell the user how many files were merged and that the backup is at `$backup`. ### Step 6: Create the symlink ```bash mkdir -p "$(dirname "$auto_memory")" mkdir -p .context/memory ln -s "$PWD/.context/memory" "$auto_memory" ``` Verify it worked: ```bash readlink "$auto_memory" ``` ### Step 7: Create starter MEMORY.md Only if `.context/memory/MEMORY.md` doesn't already exist: ```markdown # Project Memory > Auto-memory externalized by claude-brain-surgery. > This file is loaded into Claude's system prompt at the start of every session. > Keep it under 200 lines — overflow gets truncated. ``` ### Step 8: Report results Tell the user: - What was linked (`$auto_memory` → `.context/memory/`) - How many files were merged (if any) - Remind them to `git add .context/memory/` to start tracking it - Mention that `.context/` is a good place for other project context files too --- ## Undo When `--undo` is passed: ### Step 1: Check current state ```bash readlink "$auto_memory" ``` - **If it's not a symlink** → Tell the user "Nothing to undo — auto-memory is already a regular directory." - **If it's a symlink** → Proceed. ### Step 2: Copy files back ```bash target="$(readlink "$auto_memory")" rm "$auto_memory" mkdir -p "$auto_memory" cp -a "$target"/* "$auto_memory/" 2>/dev/null ``` ### Step 3: Report Tell the user: - Files were copied back to `$auto_memory` - The symlink was removed - `.context/memory/` was left intact (they can delete it manually if they want) - Claude will now use the regular auto-memory directory again
在 GitHub 查看