[BUG] Skill autocomplete fails for second `/` when message starts with a skill invocation
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?
Summary
When a message begins with a / skill invocation (e.g., /n8n-evaluations), the autocomplete menu does not appear for any subsequent /skill-name typed later in the same message. However, if the message begins with plain text and / appears mid-message, autocomplete works correctly for all positions — including multiple skill invocations.
What Should Happen?
Expected Behavior
The autocomplete menu should trigger for every / typed in the input, regardless of whether the message starts with a /skill-name or plain text. Users should be able to reference multiple skills in a single message (e.g., /n8n-evaluations and /n8n-prompt-architect review this workflow).
Error Messages/Logs
## Workarounds
1. Start the message with a space or text before the first `/` (e.g., `Please /skill-a and /skill-b`)
2. Use a newline between skill invocations (test 11 passes)
3. Type the full skill name manually without relying on autocomplete
4. Send each skill invocation as a separate message
Steps to Reproduce
Steps to Reproduce
Failing case:
- Open Claude Code
- Have at least 2 skills available (e.g.,
n8n-evaluations,n8n-prompt-architect) - Type
/n8n-evaluations and(autocomplete works for the first skill, select it) - Continue typing
/n8n-pin the same message - Expected: Autocomplete menu appears offering
n8n-prompt-architect - Actual: No autocomplete menu appears
Working case (same session):
- Type
some text first /n8n-e(note: message starts with plain text, not/) - Result: Autocomplete menu appears correctly
- Select the skill, continue typing
and also /n8n-p - Result: Autocomplete menu appears again correctly
Detailed Test Results
14 test cases were run. The results show a clear pattern.
Group 1: Tab/Arrow Keys (all fail)
Tab and arrow keys do not trigger the autocomplete menu, confirming that autocomplete is triggered by typing / rather than Tab. These failures are expected behavior, not bugs — noted here to clarify the interaction model.
| # | Input | Result |
|---|-------|--------|
| 1 | /n8n then Tab/arrow | No autocomplete |
| 2 | /skill-builder then Tab/arrow | No autocomplete |
| 3 | /n8n-prompt-architect then Tab/arrow | No autocomplete |
| 4 | /review-skill then Tab/arrow | No autocomplete |
Group 2: Message starts with / — second skill autocomplete (all fail)
When the message starts with a /skill-name, autocomplete does not trigger for any subsequent / in the same message.
| # | Input | Result |
|---|-------|--------|
| 5 | /n8n-evaluations some text /n8n-p | No autocomplete for second / |
| 6 | /n8n-evaluations and /skill-b | No autocomplete for second / |
| 7 | /skill-builder and /n8n | No autocomplete for second / |
| 8 | /review-skill and /n8n-e | No autocomplete for second / |
Group 3: Message starts with plain text (all pass)
When the message starts with non-/ text, autocomplete works correctly at any position, including multiple / invocations.
| # | Input | Result |
|---|-------|--------|
| 9 | some text first /n8n | Autocomplete works |
| 10 | text /n8n-evaluations more text /n8n-p | Autocomplete works for both |
| 11 | /n8n (newline) /skill-b | Autocomplete works on second line |
Group 4: Edge Cases
| # | Input | Result | Notes |
|---|-------|--------|-------|
| 12 | /n8n-evaluations (submit), new message /n8n-p | Pass | Fresh message resets state |
| 13 | Type /n8n, delete it, type /skill-b | Pass | Deletion resets state |
| 14 | /n8n-evaluations /n8n-prompt-architect /skill-b | Fail | Multiple skills, starts with / |
Root Cause Hypothesis
When the first character of the input buffer is /, the input handler appears to enter a "skill invocation mode" that consumes all subsequent / characters as literal text rather than autocomplete triggers. This mode is not entered when / appears after non-/ text.
Supporting evidence:
- Test 11 (pass):
/n8nfollowed by a newline, then/skill-bworks — the newline appears to reset the parser - Test 13 (pass): Typing then deleting
/n8nresets state, allowing a fresh/to trigger autocomplete - Test 12 (pass): Submitting the message and starting fresh works normally
- Tests 5–8, 14 (fail): All start with
/and fail for subsequent/in the same input
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude Code 2.1.47 and You're running Claude Opus 4.6 (from the Claude 4.5 model family).
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
Environment
- Claude Code Version: Claude Code 2.1.47
- OS: macOS (Darwin 25.3.0)
- Affected Environments:
- Claude Code CLI (terminal)
- Claude Code in the App Tab (Claude desktop app)
- Terminal (for CLI testing): _(fill in: iTerm2 / Terminal.app / VS Code / etc.)_
Note: This bug reproduces in both the standalone Claude Code terminal and the App Tab (Claude Code embedded in the Claude desktop app).
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗