Skill tool uses /commit as example, conflicts with MCP tools handling 'commit'
Resolved 💬 3 comments Opened Feb 7, 2026 by rui-branco Closed Feb 7, 2026
Problem
The built-in Skill tool description uses /commit as the primary example:
/<skill-name> (e.g., /commit) is shorthand for users to invoke a user-invocable skill.
When a user says "commit", the model always tries Skill("commit") first because of this example — even when there's no "commit" skill registered, and even when an MCP tool (mcp__claude-commands__commit) is properly configured to handle commit workflows.
This results in a wasted tool call every time:
Skill("commit")→ fails with "Unknown skill: commit"- Falls back to MCP tool → works correctly
Reproduction
- Set up an MCP server (e.g.,
claude-commands) with acommittool - Add MCP server instructions with a routing table that maps "commit" → MCP tool
- Say "commit" in a session
- Model tries
Skill("commit")first, fails, then uses the MCP tool
Expected behavior
The model should check available skills before attempting the Skill tool. If "commit" isn't in the registered skills list, it should not attempt Skill("commit").
Alternatively, consider:
- Changing the example in the Skill tool description to something less common (e.g.,
/format,/lint) - Allowing MCP server instructions to override built-in tool routing for specific keywords
Environment
- Claude Code v2.1.37
- Model: Opus 4.6
- MCP server: claude-commands with commit tool registered as deferred tool
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗