/fix-duplicates
Find and merge duplicate entities. Use when user says "clean up duplicates", "merge these people", "fix duplicate entities", "dedupe my contacts", or when you notice potential duplicates during conversation.
$ npx -y skills add kbanc85/claudia --skill fix-duplicates --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/fix-duplicates
Context preview
The summary Claude sees to decide when to auto-load this skill.
Find and merge duplicate entities. Use when user says "clean up duplicates", "merge these people", "fix duplicate entities", "dedupe my contacts", or when you notice potential duplicates during conversation.
SKILL.md
fix-duplicates.SKILL.mdname: fix-duplicates
description: Find and merge duplicate entities. Use when user says "clean up duplicates", "merge these people", "fix duplicate entities", "dedupe my contacts", or when you notice potential duplicates during conversation.
effort-level: medium
Fix Duplicates
Find and merge duplicate entities in the memory system. Duplicates happen when the same person, project, or organization gets stored under slightly different names.
Triggers
- User says "find duplicates", "clean up duplicates", "dedupe"
- User says "merge [name] with [name]"
- User says "[Name] and [Other Name] are the same person"
- You notice similar names during a conversation (e.g., "John Smith" and "Jon Smith")
Workflow
Step 1: Find Potential Duplicates
Search for entities with similar names using `claudia memory entities`:
claudia memory entities search --query "*" --limit 100 --project-dir "$PWD"
Then compare names using these heuristics:
- Exact prefix match (first 5+ characters)
- Levenshtein distance <= 2 for short names
- Same first name + similar last name
- Abbreviations (Bob/Robert, Mike/Michael, Liz/Elizabeth)
- Missing middle names or initials
Present candidates grouped by type (person, project, organization).
Step 2: Present Candidates to User
Format:
Found potential duplicates:
**People:**
1. "John Smith" (ID: 42) and "Jon Smith" (ID: 87)
- First has 12 memories, second has 3
2. "Michael Chen" (ID: 23) and "Mike Chen" (ID: 56)
- First has 8 memories, second has 5
**Projects:**
1. "Website Redesign" (ID: 101) and "Website Re-design" (ID: 145)
Which would you like to merge? (e.g., "merge 1" or "merge all people")
Step 3: Execute Merge
When user confirms, call `claudia memory entities` to merge:
claudia memory entities merge --source-id 87 --target-id 42 --reason "Duplicate detected - same person with name variant" --project-dir "$PWD"
**Important:** Always merge the entity with fewer memories INTO the one with more memories. The target entity keeps its name and attributes; the source's name becomes an alias.
Step 4: Confirm Results
After merge:
Merged "Jon Smith" into "John Smith"
- 3 memories reassigned
- 2 relationships updated
- "Jon Smith" added as alias
"John Smith" now has 15 memories total.
Direct Merge Request
When user explicitly says "merge X with Y":
1. Search for both entities by name 2. Show what you found and confirm which is which 3. Ask which should be the primary (or recommend based on memory count) 4. Execute merge 5. Confirm result
Edge Cases
No Duplicates Found
I searched through your entities and didn't find any obvious duplicates. Your memory is looking clean!
Ambiguous Match
I found multiple entities that could be matches:
- "John Smith" (ID: 42) - works at Acme Corp
- "John Smith" (ID: 67) - consultant
- "Jon Smith" (ID: 87) - no additional context
These might be different people. Can you clarify which are the same?
Entity Not Found
I couldn't find an entity named "[name]". Here are similar ones:
- [list of similar names]
Never
- Merge without user confirmation
- Assume two entities are the same just because they share a first name
- Delete the original entity (merges soft-delete the source)
- Lose any memories or relationships in the merge
Read more
name: fix-duplicates description: Find and merge duplicate entities. Use when user says "clean up duplicates", "merge these people", "fix duplicate entities", "dedupe my contacts", or when you notice potential duplicates during conversation. effort-level: medium
Fix Duplicates
Find and merge duplicate entities in the memory system. Duplicates happen when the same person, project, or organization gets stored under slightly different names.
Triggers
- User says "find duplicates", "clean up duplicates", "dedupe"
- User says "merge [name] with [name]"
- User says "[Name] and [Other Name] are the same person"
- You notice similar names during a conversation (e.g., "John Smith" and "Jon Smith")
Workflow
Step 1: Find Potential Duplicates
Search for entities with similar names using `claudia memory entities`:
claudia memory entities search --query "*" --limit 100 --project-dir "$PWD"
Then compare names using these heuristics:
- Exact prefix match (first 5+ characters)
- Levenshtein distance <= 2 for short names
- Same first name + similar last name
- Abbreviations (Bob/Robert, Mike/Michael, Liz/Elizabeth)
- Missing middle names or initials
Present candidates grouped by type (person, project, organization).
Step 2: Present Candidates to User
Format:
Found potential duplicates: **People:** 1. "John Smith" (ID: 42) and "Jon Smith" (ID: 87) - First has 12 memories, second has 3 2. "Michael Chen" (ID: 23) and "Mike Chen" (ID: 56) - First has 8 memories, second has 5 **Projects:** 1. "Website Redesign" (ID: 101) and "Website Re-design" (ID: 145) Which would you like to merge? (e.g., "merge 1" or "merge all people")
Step 3: Execute Merge
When user confirms, call `claudia memory entities` to merge:
claudia memory entities merge --source-id 87 --target-id 42 --reason "Duplicate detected - same person with name variant" --project-dir "$PWD"
**Important:** Always merge the entity with fewer memories INTO the one with more memories. The target entity keeps its name and attributes; the source's name becomes an alias.
Step 4: Confirm Results
After merge:
Merged "Jon Smith" into "John Smith" - 3 memories reassigned - 2 relationships updated - "Jon Smith" added as alias "John Smith" now has 15 memories total.
Direct Merge Request
When user explicitly says "merge X with Y":
1. Search for both entities by name 2. Show what you found and confirm which is which 3. Ask which should be the primary (or recommend based on memory count) 4. Execute merge 5. Confirm result
Edge Cases
No Duplicates Found
I searched through your entities and didn't find any obvious duplicates. Your memory is looking clean!
Ambiguous Match
I found multiple entities that could be matches: - "John Smith" (ID: 42) - works at Acme Corp - "John Smith" (ID: 67) - consultant - "Jon Smith" (ID: 87) - no additional context These might be different people. Can you clarify which are the same?
Entity Not Found
I couldn't find an entity named "[name]". Here are similar ones: - [list of similar names]
Never
- Merge without user confirmation
- Assume two entities are the same just because they share a first name
- Delete the original entity (merges soft-delete the source)
- Lose any memories or relationships in the merge
Terminal-based AI chief of staff. Remembers relationships, tracks commitments, helps you think strategically. Runs on Claude Code.
Repo: kbanc85/claudia
Other skills on claudia.
- /auto-research
Iteratively improve a local artifact (draft, document, page) by running a hill-climbing loop. The user names the artifact, the evaluator, and the budget. Claudia edits the artifact, scores it, keeps it if better or reverts if worse, repeats. Use when user says "iterate on this",
Open skill - /brain-monitor
Launch the Brain Monitor TUI, a real-time terminal dashboard for watching Claudia's memory system. Triggers on "brain monitor", "show dashboard", "memory dashboard", "terminal brain". See also: `brain` for a 3D graph view in the browser.
Open skill - /brain
Launch the Brain Visualizer, a real-time 3D view of memory and relationships. Triggers on "show your brain", "visualize memory", "open the brain", "memory graph". See also: `brain-monitor` for a terminal dashboard alternative.
Open skill - /build-team
Propose a personalized team of specialized agents based on the user's profile, goals, and how they actually work. Runs the proposal through an independent Checker, gates on the user's approval, and applies with rollback. Use when the user says "build my team", "set up my
Open skill - /capture-meeting
Process meeting notes or transcript to extract decisions, commitments, and insights. Use when user shares transcript or says "capture this meeting", "here are my notes from the call". See also: `meeting-prep` for pre-call briefings; `follow-up-draft` for post-meeting emails.
Open skill - /client-health
Health check across active client engagements showing status, deliverables, and concerns. Triggers on "how are my clients?", "client status", "client health check".
Open skill

