anthropics / anthropics/claude-code
[BUG] Slash-command menu lists a plugin command the session cannot run: the menu reads the marketplace source, the runner reads the cache copy
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
### What's Wrong?
The slash-command menu lists a skill that the installed plugin's cache copy does not hold.
Selecting it returns `Unknown command`.
The menu reads the marketplace manifest, which points at the source directory on disk. The
command runner reads the plugin's cache copy under
`~/.claude/plugins/cache////`. The two disagree whenever the cache
copy sits behind the source.
Nothing fails and nothing warns before the command is selected. The menu is the only place the
new skill appears, so the menu is the reason a person believes the plugin is current.
### What Should Happen?
The menu lists only the commands the session can run, which means the commands held by the
cache copy that the runner reads.
### Error Messages/Logs
```shell
Unknown command: /fv-engineering:fv-design-parity
```
### Steps to Reproduce
1. Register a marketplace whose source is a local git directory.
2. Install a plugin from it:
```sh
claude plugin install @
```
3. Add a skill to that plugin in the source directory, and commit it.
4. Run:
```sh
claude plugin marketplace update
```
5. Open the slash-command menu. The new skill is listed and selectable.
6. Select it. The session returns `Unknown command`.
`claude plugin list` prints the old commit, so the stale state is visible to somebody who looks
for it. The plugins carry no `version` field, so the cache key is the commit SHA.
`claude plugin update @` moves the cache copy and clears the symptom. This
report is about the menu and the runner reading two different sources, not about the update
command.
### Is this a regression?
I don't know
### Claude Code Version
2.1.236
### Platform
Anthropic API
### Operating System
macOS
### Terminal/Shell
Other (Claude Desktop)
### Additional Information
Related, but not the same report:
- #89111 covers stale skill resolution in headless `-p`.
- #92280 covers a local git marketplace whose cache is not kept current.
- #93108 covers plugins that ship new content without a version bump.
Each of those is about the cache copy going stale. This one is about the menu offering a
command that the runner cannot resolve, which is what makes the stale copy hard to notice.
Contributor guide
No contributing guide indexed for this repository
Research direction
Trace the slash-command menu's marketplace-manifest lookup and compare it with the runner's cache path under ~/.claude/plugins/cache////. Reproduce with the listed marketplace install and update commands, then verify that every menu entry resolves from the cache copy and that a regression test prevents source-only commands from appearing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100