claude-code - 💡(How to fix) Fix Plugin skills from custom/private marketplaces appear in slash menu but fail with "Unknown skill" on invocation

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Plugin skills from a custom/private marketplace are partially discovered by Claude Code — they appear in the slash command menu — but fail at invocation with either Unknown command: /skill-name or Unknown skill: namespace:skill-name. The Skill tool returns "Unknown skill" and the skills do not appear in the system-reminder available skills list.

Root Cause

Root Cause Hypothesis

Fix Action

Workaround

Reading the SKILL.md directly via the Read tool and manually executing the skill steps works, but loses automatic skill-routing.

Code Example

{
  "enabledPlugins": {
    "myPlugin@myDivision": true
  },
  "extraKnownMarketplaces": {
    "myDivision": {
      "source": {
        "source": "git",
        "url": "https://github.com/myDivision/plugins.git"
      }
    }
  }
}

---

~/.claude/plugins/cache/myDivision/myPlugin/1.x.x/
├── .claude-plugin/
│   ├── marketplace.json
│   └── plugin.json          # valid, with correct name/version/author fields
├── hooks/
│   ├── hooks.json           # identical structure to superpowers
│   ├── run-hook.cmd         # polyglot Windows/Unix wrapper
│   └── session-start        # bash script; injects CLAUDE.md context
├── skills/
│   ├── myPlugin-plan/
│   │   └── SKILL.md         # valid frontmatter: name, description
│   ├── myPlugin-review/
│   │   └── SKILL.md
│   └── ...
└── CLAUDE.md

---

{
  "name": "myPlugin",
  "version": "1.x.x",
  "dependencies": [
    { "name": "superpowers", "marketplace": "claude-plugins-official" }
  ]
}
RAW_BUFFERClick to expand / collapse

Summary

Plugin skills from a custom/private marketplace are partially discovered by Claude Code — they appear in the slash command menu — but fail at invocation with either Unknown command: /skill-name or Unknown skill: namespace:skill-name. The Skill tool returns "Unknown skill" and the skills do not appear in the system-reminder available skills list.

Environment

  • Claude Code version: 2.1.150
  • OS: Windows 11 Enterprise
  • Plugin source: Custom Git repository marketplace (not claude-plugins-official)

Steps to Reproduce

  1. Install a plugin from a custom/private marketplace configured in settings.json:
{
  "enabledPlugins": {
    "myPlugin@myDivision": true
  },
  "extraKnownMarketplaces": {
    "myDivision": {
      "source": {
        "source": "git",
        "url": "https://github.com/myDivision/plugins.git"
      }
    }
  }
}
  1. Confirm the plugin is installed — claude plugin list shows myPlugin@myDivision as ✔ enabled

  2. Start a new session — the plugin's skills appear in the slash menu (e.g. /myPlugin-plan)

  3. Attempt to invoke:

    • Via slash menu: Unknown command: /myPlugin-plan
    • Via Skill tool with myPlugin:myPlugin-plan syntax → Unknown skill: myPlugin:myPlugin-plan

Expected Behavior

Skills from all enabled plugins, regardless of marketplace source, should:

  • Appear in the system-reminder available skills list at session start
  • Be invokable via the Skill tool as pluginName:skillName
  • Be invokable as slash commands

Actual Behavior

superpowers@claude-plugins-officialmyPlugin@myDivision
Appears in system-reminder skills list
Skill tool invocation works
Appears in slash menu✅ (partial discovery)
Slash command invocation works

Root Cause Hypothesis

The harness's skill registry build (which populates both the system-reminder and the Skill tool's runtime) appears to skip or fail for plugins from non-official/custom marketplaces. Meanwhile, the slash menu file scan (a filesystem walk) picks them up correctly, causing the split behavior.

Investigation

The plugin cache is fully present and correctly structured:

~/.claude/plugins/cache/myDivision/myPlugin/1.x.x/
├── .claude-plugin/
│   ├── marketplace.json
│   └── plugin.json          # valid, with correct name/version/author fields
├── hooks/
│   ├── hooks.json           # identical structure to superpowers
│   ├── run-hook.cmd         # polyglot Windows/Unix wrapper
│   └── session-start        # bash script; injects CLAUDE.md context
├── skills/
│   ├── myPlugin-plan/
│   │   └── SKILL.md         # valid frontmatter: name, description
│   ├── myPlugin-review/
│   │   └── SKILL.md
│   └── ...
└── CLAUDE.md

plugin.json:

{
  "name": "myPlugin",
  "version": "1.x.x",
  "dependencies": [
    { "name": "superpowers", "marketplace": "claude-plugins-official" }
  ]
}

settings.json confirms the plugin is enabled ("myPlugin@myDivision": true). The claude plugin list command confirms Status: ✔ enabled. The hooks/hooks.json is structurally identical to the working superpowers plugin.

The only observable difference between the working and broken plugin is the marketplace source (claude-plugins-official vs a custom Git-backed marketplace entry in extraKnownMarketplaces).

Workaround

Reading the SKILL.md directly via the Read tool and manually executing the skill steps works, but loses automatic skill-routing.

Additional Notes

This was discovered when trying to use a private team knowledge/workflow plugin. The plugin's SessionStart hook runs correctly (context is injected), so hook execution itself is not the problem — it is specifically the skill registry that is not being populated for custom-marketplace plugins.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING