Skill slash command names should use frontmatter 'name' field verbatim — no prefix stripping

Resolved 💬 2 comments Opened Mar 24, 2026 by jdsundberg Closed Apr 23, 2026

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

  1. Create .claude/skills/my-prefix-foo/SKILL.md with frontmatter name: my-prefix-foo
  2. Start a Claude Code session
  3. Observe the system prompt registers it as /foo (or similar shortened form)
  4. Type /foo — it resolves to the my-prefix-foo directory

Environment

  • Claude Code CLI
  • macOS
  • Skills defined in project .claude/skills/ directory

🤖 Generated with Claude Code

View original on GitHub ↗

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