Skip to content

Claude Code: skills-only plugins lose slash command autocomplete #2100

@rhuss

Description

@rhuss

Context

I maintain cc-spex, a plugin built on top of spec-kit. Following spec-kit's migration to skills-only (PR #2051, #2077, #2081), I migrated cc-spex from commands/*.md to skills/<name>/SKILL.md. I had to revert the migration due to two Claude Code issues that make skills-only plugins significantly worse for users.

Problem 1: Plugin skills invisible in autocomplete

Skills loaded from the skills/<name>/SKILL.md directory structure do not appear in the / slash command autocomplete dropdown. The legacy commands/*.md files do.

The skills load correctly: the model sees them, they execute when fully typed, they appear in the system prompt. But users can't discover them by typing / or /pluginname:. The dropdown is empty.

This is a known Claude Code bug (open since Jan 2026):

No fix or timeline from Anthropic so far.

Problem 2: Name shadowing in autocomplete

When multiple plugins have skills with the same base name (e.g., both prose:init and spex:init), the autocomplete fuzzy matcher picks the first match regardless of what the user typed. So if you have a collission in the command names, then you typed command that is not part of the autocompletion can never be executed.

Since the skills are not included, you end up with running an unrelated command of the same name (but different namespace).

Questions

  1. Are you aware of these Claude Code limitations? The user-invocable: true fix in PR fix: add user-invocable: true to skill frontmatter #2077 addressed one symptom (skills being treated as managed), but the autocomplete visibility is a separate, unresolved bug.

  2. Should spec-kit's Claude integration offer a fallback mode that generates commands/ stubs alongside skills/ until the autocomplete bug is fixed? Something like thin command files that delegate to the corresponding skill.

  3. For the shadowing problem: does spec-kit have a strategy for skill names that are likely to collide across plugins? The speckit- prefix on generated skills helps, but third-party plugins building on spec-kit may choose shorter names.

Environment‘

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions