check-skill-conflicts
This skill should be used when checking for naming conflicts between local skills (~/.claude/skills) and plugin-provided skills (~/.claude/plugins). Use to identify duplicate or similarly named skills that may cause inconsistent agent behavior.
When & Why to Use This Skill
The check-skill-conflicts skill is a specialized diagnostic utility for Claude Code environments, designed to identify and resolve naming collisions between local skills and plugin-provided skills. By detecting exact matches, similar naming patterns, and casing variations, it ensures agent reliability, prevents unpredictable tool execution, and maintains a clean development workspace.
Use Cases
- Environment Auditing: Scan for naming overlaps between custom local skills (~/.claude/skills) and marketplace plugins (~/.claude/plugins) to prevent version conflicts.
- Troubleshooting Agent Behavior: Identify if an agent is providing inconsistent results due to loading the wrong version of a tool with a duplicate or similar name.
- Plugin Management: Use the conflict report to decide whether to remove local overrides, uninstall redundant plugins, or rename skills for better clarity.
- Automated Health Checks: Integrate the script's JSON output into developer workflows to programmatically verify the integrity of the Claude skill ecosystem.
| name | check-skill-conflicts |
|---|---|
| description | This skill should be used when checking for naming conflicts between local skills (~/.claude/skills) and plugin-provided skills (~/.claude/plugins). Use to identify duplicate or similarly named skills that may cause inconsistent agent behavior. |
Check Skill Conflicts
Identifies naming conflicts between local Claude Code skills and plugin-provided skills.
Why This Matters
When a skill exists in both ~/.claude/skills/ (local) and ~/.claude/plugins/ (plugin), agents may:
- Load the wrong skill version
- Get inconsistent results between sessions
- Have unpredictable behavior when skill names are similar
Quick Check
# Run conflict check
~/.claude/plugins/marketplaces/plinde-plugins/check-skill-conflicts/skills/check-skill-conflicts/scripts/check-conflicts.sh
# Verbose output (shows all skills found)
~/.claude/plugins/marketplaces/plinde-plugins/check-skill-conflicts/skills/check-skill-conflicts/scripts/check-conflicts.sh --verbose
# JSON output for programmatic use
~/.claude/plugins/marketplaces/plinde-plugins/check-skill-conflicts/skills/check-skill-conflicts/scripts/check-conflicts.sh --json
What It Checks
- Exact Matches - Same skill name in both locations
- Similar Names - Names that differ only by suffix/prefix (e.g.,
foovsfoo-skill) - Case Variations - Same name with different casing
Output Example
SKILL CONFLICT CHECK
====================
Local Skills: 45 found in ~/.claude/skills/
Plugin Skills: 12 found in ~/.claude/plugins/
EXACT MATCHES (High Priority):
⚠️ kyverno-version-lookup
Local: ~/.claude/skills/kyverno-version-lookup/
Plugin: ~/.claude/plugins/marketplaces/plinde-plugins/kyverno-version-lookup/
SIMILAR NAMES (Review Recommended):
⚡ plugin-creator ~ plugin-dev
Local: ~/.claude/skills/plugin-creator/
Plugin: ~/.claude/plugins/marketplaces/.../plugin-dev/
No conflicts: ✅ (if none found)
Resolution Options
When conflicts are found:
Remove local skill - If plugin version is preferred
cd ~/.claude/skills && git rm -r <skill-name>Uninstall plugin - If local version is preferred
/plugin uninstall <plugin-name>Rename local skill - If both are needed but different
mv ~/.claude/skills/<old-name> ~/.claude/skills/<new-name> # Update SKILL.md frontmatter name field
Skill Locations
| Type | Path Pattern |
|---|---|
| Local Skills | ~/.claude/skills/<name>/SKILL.md |
| Plugin Skills | ~/.claude/plugins/marketplaces/*/<plugin>/skills/<name>/SKILL.md |
| Symlinked Plugins | ~/.claude/plugins/<symlink>/*/skills/<name>/SKILL.md |
Self-Test
# Verify script exists and is executable
test -x ~/.claude/plugins/marketplaces/plinde-plugins/check-skill-conflicts/skills/check-skill-conflicts/scripts/check-conflicts.sh && \
echo "✅ check-conflicts.sh exists" || echo "❌ Script missing"
# Run a quick check
~/.claude/plugins/marketplaces/plinde-plugins/check-skill-conflicts/skills/check-skill-conflicts/scripts/check-conflicts.sh --json | jq -e '.local_count >= 0' > /dev/null && \
echo "✅ Script runs successfully" || echo "❌ Script failed"