Skill tool doesn't prioritize local .claude/skills/ over parent/global skills
Description
The Skill tool does not prioritize local .claude/skills/ scripts over parent or global skills with the same name. When invoking a skill that exists both locally and globally, Claude Code executes the global version instead of the local override.
Steps to Reproduce
- Have a parent workspace with a skill (e.g.,
pm-nano/.claude/skills/goodbye.sh) - Create a child repo with a local skill of the same name (e.g.,
fermi-knowledge-base/.claude/skills/goodbye.sh) - From within the child repo, invoke the skill using the Skill tool:
Skill(goodbye)
Expected Behavior
The local skill at fermi-knowledge-base/.claude/skills/goodbye.sh should execute, shadowing/overriding the parent skill.
This follows standard precedent:
- Local
node_modulesoverrides global packages - Local
.git/configoverrides global git config - Local environment variables override system defaults
Actual Behavior
The parent/global skill (pm-nano goodbye) executes instead of the local one. The Skill tool output shows:
Available skills:
- goodbye: PM Session Checkpoint (/goodbye)
- pm: PM Command
The local fermi-knowledge-base/.claude/skills/goodbye.sh is not recognized or is deprioritized.
Impact
This limits the composability and flexibility of the skill system:
- Can't have project-specific overrides of workspace-level skills
- Forces unique naming for all skills across nested projects
- Breaks the expected behavior where "local overrides global"
Workaround
Currently, the only workaround is to:
- Use unique skill names (e.g.,
fermi-goodbyeinstead ofgoodbye) - Manually invoke via Bash:
bash .claude/skills/goodbye.sh
Both defeat the purpose of skill overrides.
Context
- Repository:
fermi-knowledge-base(child) - Parent workspace:
pm-nano(parent) - Both have
.claude/skills/goodbye.sh - Expected: Local skill should take precedence
- Actual: Parent skill executes
Suggested Fix
Skill resolution should follow a search path priority:
.claude/skills/in current working directory.claude/skills/in parent directories (walking up)- Global/system skills
This would match standard tool behavior and enable proper local overrides.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗