[Bug] User-invocable skills not appearing in tab completion after commands/skills merger
Resolved 💬 2 comments Opened Jan 27, 2026 by cadrianmae Closed Jan 27, 2026
Bug Description
After the Jan 24, 2026 commands/skills merger, skills marked with user-invocable: true are not
appearing in slash command tab completion.
Steps to reproduce:
- Create a plugin with skills in
skills/directory - Add
user-invocable: trueto skill frontmatter - Install plugin via marketplace
- Type
/plugin-name:and press Tab
Expected behavior:
Skills with user-invocable: true appear in tab completion menu (as documented in the merger
announcement)
Actual behavior:
No completions shown. User must type full skill name manually or create duplicate files incommands/ directory.
Environment:
- Claude Code version: [current as of Jan 27, 2026]
- Platform: Linux
Workaround:
Maintain duplicate command files in both skills/ and commands/ directories (observed pattern in
community marketplace plugins)
Related:
- Issue #19141 (user-invocable vs disable-model-invocation clarification)
- https://jpcaparas.medium.com/why-did-anthropic-merge-slash-commands-into-skills-4bf6464c96ca
Environment Info
- Platform: linux
- Terminal: tmux
- Version: 2.1.20
- Feedback ID: 6777e0a3-f185-4f68-9e93-0f5f35e1e192
Errors
[{"error":"Error: ENOENT: no such file or directory, scandir '/etc/claude-code/.claude/skills'\n at readdirSync (unknown)\n at <anonymous> (/$bunfs/root/claude:12:2063)\n at tJ (/$bunfs/root/claude:11:35584)\n at readdirSync (/$bunfs/root/claude:12:2024)\n at RC$ (/$bunfs/root/claude:1756:380)\n at RC$ (/$bunfs/root/claude:1756:1350)\n at <anonymous> (/$bunfs/root/claude:1756:4670)\n at <anonymous> (/$bunfs/root/claude:1756:5401)\n at A (/$bunfs/root/claude:11:7259)\n at PO1 (/$bunfs/root/claude:4824:4342)","timestamp":"2026-01-27T19:24:07.850Z"},{"error":"Error: LSP server plugin:pyright-lsp:pyright failed to start: Executable not found in $PATH: \"pyright-langserver\"\n at start (/$bunfs/root/claude:1724:22299)\n at async f (/$bunfs/root/claude:1724:24751)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: LSP server plugin:gopls-lsp:gopls failed to start: Executable not found in $PATH: \"gopls\"\n at start (/$bunfs/root/claude:1724:22299)\n at async f (/$bunfs/root/claude:1724:24751)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Executable not found in $PATH: \"pyright-langserver\"\n at spawn (unknown)\n at spawn (node:child_process:669:35)\n at spawn (node:child_process:14:39)\n at start (/$bunfs/root/claude:1724:20844)\n at start (/$bunfs/root/claude:1724:22353)\n at f (/$bunfs/root/claude:1724:24751)\n at f (/$bunfs/root/claude:1724:25726)\n at L (/$bunfs/root/claude:1724:32513)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Executable not found in $PATH: \"gopls\"\n at spawn (unknown)\n at spawn (node:child_process:669:35)\n at spawn (node:child_process:14:39)\n at start (/$bunfs/root/claude:1724:20844)\n at start (/$bunfs/root/claude:1724:22353)\n at f (/$bunfs/root/claude:1724:24751)\n at f (/$bunfs/root/claude:1724:25726)\n at L (/$bunfs/root/claude:1724:32513)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Failed to start LSP server plugin:pyright-lsp:pyright: Executable not found in $PATH: \"pyright-langserver\"\n at <anonymous> (/$bunfs/root/claude:1724:32535)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Failed to start LSP server plugin:gopls-lsp:gopls: Executable not found in $PATH: \"gopls\"\n at <anonymous> (/$bunfs/root/claude:1724:32535)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"AbortError: The operation was aborted.\n at unknown\n at abortChildProcess (node:child_process:937:42)\n at onAbortListener2 (node:child_process:35:24)\n at abort (unknown)\n at <anonymous> (/$bunfs/root/claude:6271:13481)","timestamp":"2026-01-27T19:24:13.258Z"},{"error":"Error: ENOENT: no such file or directory, scandir '/etc/claude-code/.claude/skills'\n at readdirSync (unknown)\n at <anonymous> (/$bunfs/root/claude:12:2063)\n at tJ (/$bunfs/root/claude:11:35584)\n at readdirSync (/$bunfs/root/claude:12:2024)\n at RC$ (/$bunfs/root/claude:1756:380)\n at RC$ (/$bunfs/root/claude:1756:1350)\n at <anonymous> (/…
Note: Content was truncated.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗