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
آخر نشاط في المصدر
١٢ فبراير ٢٠٢٦ في ١٢:٤٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد 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