Marketplace plugin source.path not used as root for skill discovery
Description
When a marketplace plugin definition specifies a source.path to point at a subdirectory within a monorepo, Claude Code clones the full repo into the plugin cache but does not use the path offset as the plugin root for skill discovery. Skills defined at <repo>/<path>/skills/*/SKILL.md are not found because the loader only looks at <cache-root>/skills/.
Reproduction Steps
- Create a marketplace with a monorepo source that uses
path:
``json``
{
"plugins": [
{
"name": "my-plugin",
"source": {
"source": "github",
"repo": "org/monorepo",
"path": "plugins/my-plugin"
}
}
]
}
- In the monorepo, define skills at
plugins/my-plugin/skills/my-skill/SKILL.md
- Install the plugin at user level and restart Claude Code
- Run
/skills— the skills do not appear
Evidence
Comparing two plugins from the same monorepo installed from the same marketplace:
- Plugin A (
temporal) was cached on Apr 2 when the repo still had a root-levelskills/directory. Its skills appear in/skillsbecause they were found at<cache-root>/skills/. - Plugin B (
ai-docs) was cached on Apr 5 after the rootskills/directory was removed. Its skills at<cache-root>/ai-plugins/ai-docs/skills/are not discovered.
After deleting Plugin A's stale cache, its skills also disappear — confirming that source.path is not being applied.
Expected Behavior
When source.path is specified, the plugin loader should use <cache-root>/<source.path>/ as the plugin root for skill discovery (scanning skills/*/SKILL.md relative to that path).
Environment
- Claude Code CLI, macOS
- Marketplace type: local directory source
- Plugin source: GitHub monorepo with
pathoffset
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗