[BUG] Claude thinks slash commands are executing when they are not

Resolved 💬 4 comments Opened Sep 30, 2025 by jsbattig Closed Jan 6, 2026

[BUG] Claude thinks slash commands are executing when they are not

Description

Claude Code appears to think it is executing custom slash commands when in reality the SlashCommand tool is never invoked. This creates a confusing experience where Claude provides feedback as if the command ran successfully, but no actual execution occurs.

Environment

  • Claude Code Version: 2.0.1
  • Platform: Linux (Rocky Linux, kernel 5.14.0-570.37.1.el9_6.x86_64)
  • Architecture: x86_64
  • Command Location: ~/.claude/commands/
  • Number of Custom Commands: 25 commands
  • Model: claude-sonnet-4-5-20250929

Symptoms

  1. User requests execution of a slash command (e.g., /design-epic, /write-epic, /troubleshoot-and-fix)
  2. Claude responds as if the command is executing or has executed
  3. No actual SlashCommand tool invocation occurs - the tool is never called
  4. Claude may describe what the command would do instead of executing it
  5. User sees no results from the command execution

Expected Behavior

When user requests a slash command:

  1. Claude should invoke the SlashCommand tool with appropriate parameters
  2. The tool should execute and return results
  3. Claude should report actual execution results, not hypothetical behavior

Actual Behavior

Claude appears to "think" the command is running without actually invoking the SlashCommand tool. This may be related to:

  • Misinterpreting the <command-message>{name} is running…</command-message> system tag
  • Explaining what a command does instead of executing it
  • Silent failure of SlashCommand tool without error feedback to Claude

Steps to Reproduce

  1. Create custom slash commands in ~/.claude/commands/ with proper YAML frontmatter
  2. Request Claude to execute a command: "Run /design-epic for new feature"
  3. Observe that Claude responds about the command but SlashCommand tool is never invoked

Command File Format

All commands verified to have correct format:

  • Valid YAML frontmatter with --- delimiters
  • Required description field present
  • allowed-tools specification included
  • File sizes well under 15,000 character limit (largest: 5,861 chars)

Example command structure:

---
description: Command description here
argument-hint: argument-pattern
allowed-tools: "*"
---

Command content here with $ARGUMENTS placeholder

Related Issues

This appears related to but distinct from:

  • #1184 - "Claude cannot execute custom slash commands from conversations" (May 20, 2025)
  • #7283 - "Custom slash commands no longer working" on Windows (Sept 7, 2025)

Key Difference: In those issues, users report "nothing happens." In this issue, Claude thinks something is happening and responds accordingly, but the SlashCommand tool is never actually invoked.

Potential Root Causes

  1. Silent Tool Failure: SlashCommand tool may be failing without providing error feedback to Claude
  2. Execution State Confusion: Claude may be misinterpreting system tags that indicate command execution state
  3. Permission/Approval Blocking: Tool execution may be blocked by permissions without clear feedback
  4. Behavioral Pattern: Claude may have learned to describe commands instead of executing them

Impact

  • Users cannot leverage custom slash commands for workflow automation
  • Creates confusion where Claude appears to be working but produces no results
  • Breaks the proactive agent workflow model where Claude executes project-specific tasks
  • Forces manual execution of commands that should be automated

Workaround

When Claude incorrectly thinks a command is running:

  1. Explicitly tell Claude "the command is not running"
  2. May need to repeat this correction multiple times
  3. Eventually Claude will execute the command steps manually instead of using the SlashCommand tool
  4. Alternative: Manually execute commands yourself or reference command files with @.claude/commands/filename.md syntax

Additional Context

All 25 custom commands have been verified for proper format compliance with official documentation. The issue is behavioral/execution-related, not format-related.

View original on GitHub ↗

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