Skill tool doesn't prioritize local .claude/skills/ over parent/global skills

Open 💬 3 comments Opened Jan 23, 2026 by famulare

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

  1. Have a parent workspace with a skill (e.g., pm-nano/.claude/skills/goodbye.sh)
  2. Create a child repo with a local skill of the same name (e.g., fermi-knowledge-base/.claude/skills/goodbye.sh)
  3. 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_modules overrides global packages
  • Local .git/config overrides 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:

  1. Use unique skill names (e.g., fermi-goodbye instead of goodbye)
  2. 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:

  1. .claude/skills/ in current working directory
  2. .claude/skills/ in parent directories (walking up)
  3. Global/system skills

This would match standard tool behavior and enable proper local overrides.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗