Problem
Installing visual-explainer (v0.7.1) into Claude Code produces a plugin-load error:
Plugin (visual-explainer @ visual-explainer@visual-explainer-marketplace):
Path escapes plugin directory: ./ (skills)
The slash commands under commands/ still load fine, but the root SKILL.md (which carries the proactive trigger description) is dropped.
Cause
.claude-plugin/plugin.json declares:
Claude Code's plugin loader resolves this to the plugin root and rejects it as escaping the plugin directory — skills entries appear to need to point at a subdirectory, not the plugin root.
Reproduction
/plugin marketplace add nicobailon/visual-explainer
/plugin → install visual-explainer
/reload-plugins → reports 1 error during load
/doctor → shows the message above
Tested on Claude Code with plugin v0.7.1.
Suggested fix
Move SKILL.md into a subdirectory (e.g. skills/visual-explainer/SKILL.md) and update the manifest to "skills": ["skills"] (or list the subdirectory directly). That keeps the proactive SKILL.md loading without tripping the path-escape check.
Workaround
Removing the "skills": ["./"] line from plugin.json clears the error. The commands/* slash commands continue to work; only the root SKILL.md proactive trigger is no longer registered.
Happy to send a PR if a particular layout is preferred.
Problem
Installing
visual-explainer(v0.7.1) into Claude Code produces a plugin-load error:The slash commands under
commands/still load fine, but the rootSKILL.md(which carries the proactive trigger description) is dropped.Cause
.claude-plugin/plugin.jsondeclares:Claude Code's plugin loader resolves this to the plugin root and rejects it as escaping the plugin directory —
skillsentries appear to need to point at a subdirectory, not the plugin root.Reproduction
/plugin marketplace add nicobailon/visual-explainer/plugin→ installvisual-explainer/reload-plugins→ reports1 error during load/doctor→ shows the message aboveTested on Claude Code with plugin v0.7.1.
Suggested fix
Move
SKILL.mdinto a subdirectory (e.g.skills/visual-explainer/SKILL.md) and update the manifest to"skills": ["skills"](or list the subdirectory directly). That keeps the proactive SKILL.md loading without tripping the path-escape check.Workaround
Removing the
"skills": ["./"]line fromplugin.jsonclears the error. Thecommands/*slash commands continue to work; only the rootSKILL.mdproactive trigger is no longer registered.Happy to send a PR if a particular layout is preferred.