[BUG/UX] Custom user command silently shadows built-in alias with no warning at creation or invocation time
Bug Description
/checkpoint is a built-in alias for /rewind. When a user creates ~/.claude/commands/checkpoint.md, the custom command silently takes over with no warning — at file creation time, at first invocation, or in /help. The user has no indication that:
- a built-in command with that name exists
- the built-in is now unreachable via the short form
This causes real confusion: I spent part of a session unsure whether /checkpoint was something I had defined or a built-in Claude Code command.
Steps to Reproduce
- Note that
/checkpointis a built-in alias for/rewind - Create
~/.claude/commands/checkpoint.md(a custom skill) - Type
/checkpoint— it now invokes the custom skill, not the built-in - Observe: no warning at any point (creation, invocation, or in
/help)
Expected Behavior
Claude Code should warn when a custom command (user or project) has the same name as a built-in command or alias. The warning could appear:
- When the model writes the conflicting file (best: catch it early)
- At first invocation (acceptable: inform the user in the moment)
- In
/helpoutput (least disruptive, still useful)
Resolution order is a separate question — the important thing is that the conflict is surfaced rather than silently applied.
Actual Behavior
The custom command silently shadows the built-in with no indication to the user.
Environment
- Claude Code version: current
- Platform: macOS
Related
- #48750 — same class of bug on the plugin surface (
/reviewplugin skill shadows built-in/review)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗