Skill slash command names should use frontmatter 'name' field verbatim — no prefix stripping
Problem
Skills with prefixed names (e.g., kinetic-new-app) have their prefix stripped when registered as slash commands. The skill shows up as /new-app instead of /kinetic-new-app in the system prompt and can be invoked without the prefix.
Directory: .claude/skills/kinetic-new-app/SKILL.md
Frontmatter: name: kinetic-new-app
Expected command: /kinetic-new-app
Actual command: /new-app (prefix stripped)
This happens for all 10 skills in the project — every kinetic-* prefix is stripped.
Why this matters — namespace collisions
When multiple MCP servers or plugins provide skills, short unprefixed names will collide. For example:
- A Kinetic plugin has
/seed(generate Kinetic form data) - A database plugin has
/seed(seed a database) - A test framework plugin has
/seed(generate test fixtures)
The prefix IS the namespace. Stripping it defeats the purpose of namespacing and makes multi-plugin environments dangerous — the wrong skill could execute silently.
Expected behavior
The name field in SKILL.md frontmatter should be used verbatim as the slash command name. If name: kinetic-new-app, the command should be /kinetic-new-app — displayed and invoked with the full name, no stripping.
Reproduction
- Create
.claude/skills/my-prefix-foo/SKILL.mdwith frontmattername: my-prefix-foo - Start a Claude Code session
- Observe the system prompt registers it as
/foo(or similar shortened form) - Type
/foo— it resolves to themy-prefix-foodirectory
Environment
- Claude Code CLI
- macOS
- Skills defined in project
.claude/skills/directory
🤖 Generated with Claude Code
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗