Compare and selectively merge Brain directories across any two agent instances. Supports diff (see what's unique where), pull (import from another brain), and learn (bidirectional exchange).
Scanned 9/4/2026
Install to Claude Code
npx -y skills add NeverSight/skills_feed --skill brain-merge --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Brain Merge?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/neversight-brain-merge)More formats (shields.io, HTML) on the badges page.
---
name: brain-merge
description: Compare and selectively merge Brain directories across any two agent instances. Supports diff (see what's unique where), pull (import from another brain), and learn (bidirectional exchange).
automation: gated
allowed-tools: [Read, Write, Edit, Bash, Glob, Grep, Agent]
user-invocable: true
---
# Brain Merge
Compare and selectively merge knowledge between any two Brain directories. Works across any agent instances - not tied to specific paths.
## Purpose
Agent brains develop independently and accumulate unique insights. This playbook lets you see what each brain has that the other doesn't, and move knowledge between them safely.
## Modes
- **diff** - Compare two brains, see what's unique to each
- **pull** - Import files from a source brain into a target brain
- **learn** - Bidirectional exchange with approval at each direction
## State Dependencies
| Source | Location | Read | Write |
|--------|----------|------|-------|
| Source brain | User-specified path | ✓ | - |
| Target brain | User-specified path (defaults to current) | ✓ | ✓ |
| FAISS index | `[agent-root]/resources/local-brain-search/data/` | - | ✓ |
## Process
### Step 0: Resolve inputs
Ask the user for:
1. **Source brain path** - the brain to compare against or pull from
2. **Target brain path** - the brain to compare or import into (default: current agent's `./Brain`)
3. **Mode** - diff, pull, or learn (infer from user's message if obvious)
If paths are ambiguous (user says "moltbook" or "the other one"), scan parent directories for Brain/ folders and present a pick list:
```bash
find . -maxdepth 3 -name "Brain" -type d 2>/dev/null | sort
```
---
### DIFF MODE
**Goal:** Show what each brain has that the other doesn't, grouped by folder.
#### Step 1: Inventory both brains
```bash
SOURCE="[SOURCE_BRAIN_PATH]"
TARGET="[TARGET_BRAIN_PATH]"
find "$SOURCE" -name "*.md" | sed "s|$SOURCE/||" | sort > /tmp/brain_source.txt
find "$TARGET" -name "*.md" | sed "s|$TARGET/||" | sort > /tmp/brain_target.txt
echo "Source: $(wc -l < /tmp/brain_source.txt) files"
echo "Target: $(wc -l < /tmp/brain_target.txt) files"
```
#### Step 2: Generate diff lists
```bash
comm -23 /tmp/brain_source.txt /tmp/brain_target.txt > /tmp/unique_to_source.txt
comm -13 /tmp/brain_source.txt /tmp/brain_target.txt > /tmp/unique_to_target.txt
comm -12 /tmp/brain_source.txt /tmp/brain_target.txt > /tmp/in_both.txt
echo "Unique to source: $(wc -l < /tmp/unique_to_source.txt)"
echo "Unique to target: $(wc -l < /tmp/unique_to_target.txt)"
echo "In both: $(wc -l < /tmp/in_both.txt)"
```
#### Step 3: Group by folder and present
```bash
echo "=== UNIQUE TO SOURCE ==="
awk -F'/' '{print $1}' /tmp/unique_to_source.txt | sort | uniq -c | sort -rn
echo "=== UNIQUE TO TARGET ==="
awk -F'/' '{print $1}' /tmp/unique_to_target.txt | sort | uniq -c | sort -rn
```
For each folder, show a few sample filenames so the user gets a sense of what's there.
Present as a clean table. Note any folders that exist in one brain but not the other (structural differences).
**Gate 1:** Present report. Ask: "Want to pull any of this into your brain? Which folders or files?"
---
### PULL MODE
**Goal:** Import specific files from source into target, safely.
#### Step 1: Run diff if not already done
#### Step 2: Clarify scope
If not specified, ask: "Which folders or files to pull? (e.g., `02-Permanent`, `AI Extracted Notes`, all unique files, or specific filenames)"
**Gate 2:** Confirm scope before touching anything:
> "About to copy [N] files from [source] → [target]. Files already in target will be SKIPPED. Proceed?"
#### Step 3: Execute copy
```bash
rsync -av --ignore-existing \
"[SOURCE]/[SELECTED_FOLDER]/" \
"[TARGET]/[SELECTED_FOLDER]/"
```
For full unique-file pull:
```bash
while IFS= read -r file; do
dest="[TARGET]/$file"
mkdir -p "$(dirname "$dest")"
cp -n "[SOURCE]/$file" "$dest"
done < /tmp/unique_to_source.txt
```
#### Step 4: Refresh index in target
```bash
cd [TARGET_AGENT_ROOT]
python3 resources/local-brain-search/build_index.py
```
Report total files copied, skipped, and confirm index refreshed.
---
### LEARN MODE
**Goal:** Bidirectional exchange - each brain gets what the other has.
#### Step 1: Run diff (both directions)
#### Step 2: Source → Target
Show what source has that target doesn't.
**Gate 3:** "Source has [N] unique files. Pull into target? (y/n/select folders)"
If approved, run pull source → target.
#### Step 3: Target → Source
Show what target has that source doesn't.
**Gate 4:** "Target has [M] unique files. Push into source? (y/n/select folders)"
If approved:
```bash
rsync -av --ignore-existing \
"[TARGET]/[SELECTED_FOLDER]/" \
"[SOURCE]/[SELECTED_FOLDER]/"
```
#### Step 4: Refresh indexes in both agents
```bash
cd [TARGET_AGENT_ROOT] && python3 resources/local-brain-search/build_index.py
cd [SOURCE_AGENT_ROOT] && python3 resources/local-brain-search/build_index.py
```
Report: files exchanged in each direction, both indexes refreshed.
---
## Tips
- **Start with diff** - understand what you're working with before moving anything
- **Safe by default** - `--ignore-existing` / `cp -n` never overwrites existing files
- **Content conflicts** - files with the same name but different content are flagged but not auto-resolved; manual review recommended
- **Structural differences** - folders that exist in one brain but not the other are worth noting (may indicate the agent evolved differently)
- **Index refresh** - always runs after file changes so FAISS stays current
## Error Recovery
- If copy fails mid-way: re-run - `--ignore-existing` makes it idempotent
- If index build fails: run `/refresh-index` manually in that agent
- If paths not found: re-run Step 0 discovery scan
## Self-Improvement
After completing this skill's primary task, consider tactical improvements:
- [ ] **Review execution**: Were there friction points, unclear steps, or inefficiencies?
- [ ] **Identify improvements**: Could error handling, step ordering, or instructions be clearer?
- [ ] **Scope check**: Only tactical/execution changes - NOT changes to core purpose or goals
- [ ] **Apply improvement** (if identified):
- [ ] Edit this SKILL.md with the specific improvement
- [ ] Keep changes minimal and focused
- [ ] **Version control**:
- [ ] Stage: `git add .claude/skills/brain-merge/SKILL.md`
- [ ] Commit: `git commit -m "refactor(brain-merge): <brief improvement description>"`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!