Slash command expansion has no visual indicator to the user
Problem
When a slash command (skill) is expanded by Claude Code, the user receives no visual indicator that the skill was loaded. The skill content is injected into the model's context via <command-name> / <command-message> tags, but these are invisible in the UI. The user cannot distinguish between "Claude is following a loaded skill" vs "Claude is responding on its own."
Steps to Reproduce
Case 1 — Standalone slash command (expands, but no indicator):
- Create a skill at
~/.claude/skills/my-skill/SKILL.md - Type
/my-skillas a standalone message - Claude follows the skill instructions correctly
- User sees no indication that a skill was loaded — response looks identical to a normal reply
Case 2 — Embedded in text (does NOT expand, also no indicator):
- Same skill as above
- Type "run /my-skill please" (embedded in natural text)
- Slash command is NOT expanded — Claude receives plain text only
- User also sees no indication — both cases look identical from the user's side
This is especially confusing with disable-model-invocation: true skills, where Case 2 silently fails (no expansion, model can't invoke via Skill tool either) but the user has no way to know.
Expected Behavior
Some visual indicator when a skill is expanded, e.g.:
- A status line:
Using skill: /track - A badge or icon next to the response
- The expanded skill content shown in a collapsible block
- A distinct message bubble showing the command was recognized
Why This Matters
- Can't tell if the command triggered — user has no feedback loop
- Hard to debug skill failures — when a skill doesn't expand (Case 2), the user doesn't know why the behavior differs
- Reduces trust in the skill system — "did it actually use my skill or just wing it?"
Environment
- Claude Code CLI
- Skills with
disable-model-invocation: truein~/.claude/skills/
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗