[BUG] AI skips Skill tool invocation when similar command instructions are already in context

Resolved 💬 4 comments Opened Jan 19, 2026 by SerhiiFesenko Closed Feb 27, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

## Description

When a slash command (e.g., /commit) exists, its instructions get loaded into context at session startup via system reminders. If the user later requests the same action (e.g., "commit"), the AI follows the pre-loaded command instructions directly instead of using Skill(commit), but still outputs that a "skill" is being used.

Key issue: Commands and skills are defined in separate places with different instructions:

  • Commands: ~/.claude/commands/commit.md (loaded at startup)
  • Skills: defined elsewhere (plugins, etc.)

When asking to list all commands and skills, both commit command and commit skill are shown with different descriptions, confirming they are separate entities. However, when both exist with the same name, it is unclear which one gets used and when. The AI may use command instructions, skill instructions, or whichever happens to be loaded in context first.

Additional confusion: When entering /commit as a command, it shows the description from the skill (not the command), and does not suggest using the skill with a plugin prefix to disambiguate.

Actual behavior:

  • AI reuses command instructions already loaded at startup, bypassing Skill(commit)
  • AI outputs that it's using a "skill" when actually using command instructions
  • /commit shows skill description instead of command description
  • No disambiguation or plugin prefix suggestion offered
  • The separately-defined skill is ignored

Impact:

  • Commands and skills behave inconsistently
  • Misleading output: AI claims to use skill while actually using command
  • Misleading UI: /commit shows skill description but executes command
  • Skill-specific instructions are never used if a command with the same name exists
  • Name conflicts between commands and skills lead to unpredictable behavior
  • No way to explicitly invoke skill when command with same name exists

What Should Happen?

Expected behavior:

  • AI should use Skill(commit) for progressive disclosure when user says "commit" without slash
  • /commit should show command description, or offer disambiguation between command and skill
  • Plugin-prefixed skill (e.g., /plugin-name:commit) should be suggested when name conflict exists

Error Messages/Logs

Steps to Reproduce

  1. Define a command in ~/.claude/commands/commit.md
  2. Define a skill with different instructions (e.g., via plugin)
  3. Ask AI to list all commands and skills - observe both commit entries with different descriptions
  4. Type /commit - observe it shows skill description, not command description
  5. Start a new session (command instructions loaded at startup)
  6. Say "commit" without the slash
  7. Observe: AI outputs "using commit skill" but follows pre-loaded command instructions instead of invoking Skill(commit)

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.12 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

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