Skip to content

fix(plugin): declare skills and agents paths in plugin.json#114

Merged
addyosmani merged 3 commits intoaddyosmani:mainfrom
creazyfrog:fix/plugin-json-declare-skills-and-agents
May 7, 2026
Merged

fix(plugin): declare skills and agents paths in plugin.json#114
addyosmani merged 3 commits intoaddyosmani:mainfrom
creazyfrog:fix/plugin-json-declare-skills-and-agents

Conversation

@creazyfrog
Copy link
Copy Markdown

@creazyfrog creazyfrog commented Apr 29, 2026

Fixes #112

Summary

All 21 skills return Unknown skill when invoked via the Skill tool despite the plugin being enabled.

Root cause

.claude-plugin/plugin.json declares "commands" but omits "skills" and "agents". Claude Code's plugin loader requires explicit declarations for every asset type when any path field is already present — without them, skills and agents are not registered.

Correct schema

Cross-referencing real Claude Code plugins (davidfowl/dotnet-skillz, pluginagentmarketplace/custom-plugin-graphql) confirmed that skills and agents must be arrays of paths, not directory strings. This PR adds both fields in the correct format:

  • "skills" — array of 21 skill directory paths (Claude Code reads SKILL.md from each)
  • "agents" — array of 3 agent file paths (code-reviewer.md, security-auditor.md, test-engineer.md)

Effect

Before After
Skill: code-review-and-qualityUnknown skill All 21 skills invokable by name
Agent personas not registered as subagents code-reviewer, test-engineer, security-auditor available as subagents
Hook reminder names skills that can't be found Hook reminder names match what the Skill tool can actually load

Testing

  • Verify Skill: code-review-and-quality resolves after plugin reload
  • Verify Skill: spec-driven-development, Skill: security-and-hardening etc. all resolve
  • Verify agent personas appear in subagent list

Note: This PR was created with the assistance of Claude (AI).

Trivenzaa-Admin and others added 3 commits April 29, 2026 12:34
Claude Code's plugin loader requires explicit path declarations when
any path field (like `commands`) is already present. Without `skills`
and `agents` fields, auto-discovery is suppressed and all 21 skills
return "Unknown skill" when invoked via the Skill tool.

Adds:
  "skills": "./skills"
  "agents": "./agents"

This makes all 21 skills discoverable and invokable by name (e.g.
`code-review-and-quality`) and registers the 3 agent personas
(`code-reviewer`, `test-engineer`, `security-auditor`) as subagents.

Fixes addyosmani#112

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The previous commit used directory strings ("./skills", "./agents")
which is not the correct plugin.json schema. Real Claude Code plugins
(e.g. davidfowl/dotnet-skillz, pluginagentmarketplace/custom-plugin-graphql)
use arrays of paths — either skill directory paths or explicit file paths.

Corrects the fix to list all 21 skill directories and 3 agent files
as proper arrays.

Fixes addyosmani#112

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Claude Code plugin schema accepts string|array for the `skills`
field; passing a directory path auto-discovers every `<name>/SKILL.md`
beneath it (per https://code.claude.com/docs/en/plugins-reference,
which lists `"./custom/skills/"` as a valid example).

Switching `skills` from a 21-element array to `"./skills"` keeps the
fix for addyosmani#112 (skills are still explicitly declared, so discovery is
not suppressed) while removing the maintenance burden — adding a new
skill no longer requires also editing this manifest.

`agents` stays as an explicit array because `./agents/` contains
`README.md`, which would be picked up as a malformed agent if the
directory form were used here.
Copy link
Copy Markdown
Owner

@addyosmani addyosmani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I made a few follow-up revisions to better approach this in a hybrid way compatible with the official Claude docs.

@addyosmani addyosmani merged commit 742dca5 into addyosmani:main May 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skill tool reports 'Unknown skill' for all 21 skills in Claude Code despite plugin enabled

4 participants