Problem
When installed via the Claude Code plugin system, the crewai-skills plugin fails to load with:
Plugin (crewai-skills@crewai-plugins): Path escapes plugin directory: ./ (skills)
This is followed by a secondary error once any workaround is attempted:
Plugin (crewai-skills@crewai-plugins): Plugin crewai-skills has conflicting manifests:
both plugin.json and marketplace entry specify components.
Root cause
Two issues in .claude-plugin/marketplace.json:
- The marketplace entry includes
"skills": "./". The plugin loader treats this as a relative path from within the
plugin sandbox and rejects it as a path traversal.
- There is no
.claude-plugin/plugin.json in the plugin source, so the loader has no authoritative manifest to fall
back to.
Fix
In .claude-plugin/marketplace.json, remove the "skills" field from the plugin entry:
Before
{
"name": "crewai-skills",
"source": "./skills",
"description": "...",
"version": "1.0.0",
"strict": false,
"skills": "./"
}
After
{
"name": "crewai-skills",
"source": "./skills",
"description": "...",
"version": "1.0.0",
"strict": false
}
In the skills source directory, add a .claude-plugin/plugin.json that explicitly lists the skill directories:
{
"name": "crewai-skills",
"version": "1.0.0",
"description": "CrewAI development skills for Claude Code covering agent design, task configuration, structured
output, and debugging common pitfalls",
"skills": [
"./getting-started",
"./design-agent",
"./ask-docs",
"./design-task"
]
}
Each of these directories already contains a SKILL.md, so no restructuring of the skill content is needed.
Environment
- Claude Code plugin loader
- Plugin installed via crewai-plugins marketplace
Problem
When installed via the Claude Code plugin system, the
crewai-skillsplugin fails to load with:This is followed by a secondary error once any workaround is attempted:
Root cause
Two issues in
.claude-plugin/marketplace.json:"skills": "./". The plugin loader treats this as a relative path from within theplugin sandbox and rejects it as a path traversal.
.claude-plugin/plugin.jsonin the plugin source, so the loader has no authoritative manifest to fallback to.
Fix
In
.claude-plugin/marketplace.json, remove the"skills"field from the plugin entry:Before
{ "name": "crewai-skills", "source": "./skills", "description": "...", "version": "1.0.0", "strict": false, "skills": "./" }After
{ "name": "crewai-skills", "source": "./skills", "description": "...", "version": "1.0.0", "strict": false }In the skills source directory, add a .claude-plugin/plugin.json that explicitly lists the skill directories:
{ "name": "crewai-skills", "version": "1.0.0", "description": "CrewAI development skills for Claude Code covering agent design, task configuration, structured output, and debugging common pitfalls", "skills": [ "./getting-started", "./design-agent", "./ask-docs", "./design-task" ] }Each of these directories already contains a SKILL.md, so no restructuring of the skill content is needed.
Environment