Skill/slash command names containing a space only match on the first word
Description
When a custom skill's frontmatter name: (or a slash command name) contains a space,
invoking it via /<Name> only uses the first word to resolve the command - the
remaining word(s) are treated as arguments instead of being part of the command name.
This causes a false "Unknown command" error even when a skill with that exact name
exists.
Repro
- Create a skill with frontmatter
name: Merge Open PRs(Title Case, with spaces). - In the CLI, type
/Merge Open PRs. - Observed:
Unknown command: /Merge- only "Merge" was parsed as the command name;
"Open PRs" was dropped/treated as arguments.
- Expected: either the full multi-word name resolves to the skill, or at minimum the
error should not be silently wrong (e.g. it should say the skill wasn't found, not
truncate the name in the error).
Workaround
Renaming the skill directory and frontmatter name: to kebab-case (e.g. merge-open-prs)
resolves it - invoking /merge-open-prs works correctly. Given this, kebab-case should
probably be the enforced/documented convention for skill names, or space-containing names
should be rejected at skill-load time with a clear warning rather than silently mis-parsing
at invocation time.
Environment
- OS: Windows 11
- Shell: PowerShell / Git Bash