| created | "2026-02-04T00:00:00.000Z" |
| modified | "2026-07-18T00:00:00.000Z" |
| compatibility | claude-code |
| reviewed | "2026-06-03T00:00:00.000Z" |
| user-invocable | false |
| description | Diagnose and fix Claude Code plugin registry corruption — orphaned entries, stale keys, scope conflicts. Use when seeing plugin-already-installed errors or registry drift. |
| allowed-tools | Bash(bash *), Read, Write, Edit, Glob, Grep, TodoWrite, AskUserQuestion |
| args | [--fix] [--dry-run] [--plugin <name>] |
| argument-hint | [--fix] [--dry-run] [--plugin <name>] |
| name | health-plugins |
/health:plugins
Diagnose and fix issues with the Claude Code plugin registry. This command specifically addresses issue #14202 where project-scoped plugins incorrectly appear as globally installed.
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|
| Fixing plugin registry corruption (issue #14202) | Comprehensive health check (use /health:check) |
| Diagnosing project-scope vs global plugin issues | Auditing plugins for relevance (use /health:audit) |
| Cleaning up orphaned plugin entries | Settings validation only needed |
| Resolving "plugin already installed" errors | Agentic optimization audit (use /health:agentic-audit) |
| Manually inspecting registry JSON | Just viewing installed plugins (read registry file) |
Context
- Current project: !
pwd
- Current project has plugins: !
find . -maxdepth 2 -path '*/.claude-plugin/plugin.json' -type f
- Project settings exists: !
find . -maxdepth 1 -name '.claude/settings.json'
- Project plugins dir: !
find . -maxdepth 1 -type d -name '.claude-plugin'
Background: Issue #14202
When a plugin is installed with --scope project in one project, other projects incorrectly show the plugin as "(installed)" in the Marketplaces view. This happens because:
- The plugin registry at
~/.claude/plugins/installed_plugins.json stores projectPath for project-scoped installs
- The Marketplaces view only checks if a plugin key exists, not whether it's installed for the current project
- The install command refuses to install because it thinks the plugin already exists
Impact: Users cannot install the same plugin across multiple projects with project-scope isolation.
Parameters
Parse these from $ARGUMENTS:
| Parameter | Description |
|---|
--fix | Apply fixes to the plugin registry |
--dry-run |