agent-plugin-required¶
Plugins must also be available as vendor-neutral Agent Plugins v1 packages, with shared manifest metadata in sync
| Severity | warning (disabled) |
| Autofix | auto |
| Since | v0.18.0 |
| Category | Agent Plugins |
Why¶
Agent Plugins v1 is the vendor-neutral plugin format: a root
plugin.json, skills at skills/*/SKILL.md, and an optional portable
mcp.json. It coexists with Claude Code and Codex formats in the same
directory, so publishing it costs two generated files per plugin — and
buys installation by any conforming client.
This opt-in rule turns that from a one-time conversion into a standing guarantee: every plugin in the repository must carry the portable manifest, shared metadata must not drift between the manifests, and a Claude MCP configuration must have its portable counterpart. Enable it in a marketplace's CI and new plugins cannot merge without the vendor-neutral format.
Bad¶
A marketplace plugin with only the Claude manifest:
Good¶
The same plugin with the portable manifest alongside:
plugins/release-notes/
├── .claude-plugin/plugin.json
├── plugin.json # Agent Plugins v1
└── skills/draft-notes/SKILL.md
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "release-notes",
"version": "1.4.0",
"description": "Draft release notes from merged pull requests"
}
How to fix¶
skillsaw port --to agent-plugin . converts every plugin in the
repository in one pass, or skillsaw fix applies the same
conversion through this rule's autofix. Both translate the manifest
metadata, convert a Claude .mcp.json to the portable transport names
and ${PLUGIN_ROOT} placeholders, and skip anything the portable
format does not define (reporting what was skipped). Metadata drift
between the manifests is reported but never auto-edited.
Configuration¶
Run skillsaw explain agent-plugin-required to see this documentation and the rule's effective configuration in your terminal.