[BUG/UX] Custom user command silently shadows built-in alias with no warning at creation or invocation time

Resolved 💬 2 comments Opened May 23, 2026 by DaemonNZ Closed Jul 15, 2026

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

  1. Note that /checkpoint is a built-in alias for /rewind
  2. Create ~/.claude/commands/checkpoint.md (a custom skill)
  3. Type /checkpoint — it now invokes the custom skill, not the built-in
  4. 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 /help output (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 (/review plugin skill shadows built-in /review)

View original on GitHub ↗

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