Project-level skills with same name as global skills show both instead of overriding

Resolved 💬 3 comments Opened Feb 12, 2026 by doriwilson Closed Feb 15, 2026

Description

When a project-level skill (in .claude/skills/<name>/SKILL.md) has the same name as a global skill (in ~/.claude/skills/<name>/SKILL.md), both appear in the skill picker instead of the project-level skill overriding/shadowing the global one.

Expected behavior

A project-level skill with the same name should take priority and shadow the global skill, similar to how project-level settings override global settings. Only one /handoff should appear when inside that project.

Actual behavior

Both skills appear in the skill list:

  • handoff: Generate a complete, verified handoff update for the project's status/handoff document (global)
  • handoff: Generate a complete, verified handoff update for STATUS.md (project-specific override) (project)

The user is forced to choose between them, which defeats the purpose of having a project-specific override.

Steps to reproduce

  1. Create a global skill at ~/.claude/skills/handoff/SKILL.md with name: handoff in frontmatter
  2. Create a project-level skill at <project>/.claude/skills/handoff/SKILL.md with name: handoff in frontmatter
  3. Open Claude Code in that project
  4. Both skills appear in the available skills list

Workaround

Rename the global skill to a different name (e.g., handoff-universal) so they don't collide.

Environment

  • Claude Code CLI
  • macOS (Darwin 25.2.0)

View original on GitHub ↗

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