agent-plugin-json-valid¶
Agent Plugins plugin.json and skills location must conform to 1.0.0
| Severity | error (auto) |
| Autofix | - |
| Since | v0.18.0 |
| Repo Types | agent-plugin |
| Category | Agent Plugins |
An Agent Plugin is a self-contained package rooted at a directory with a
canonical plugin.json. This rule validates the portable manifest and the
fixed component locations defined by the
Agent Plugins 1.0.0 specification.
What is checked¶
plugin.jsonis a JSON object with the exact 1.0.0$schemaidentifier and a validname.- The optional metadata fields have the types defined by the specification. Semantic Versioning, SPDX, email, and URL syntax are recommendations rather than manifest validity requirements.
nameis 1–64 characters, uses lowercase ASCII letters, digits, hyphens, and periods, starts and ends with an alphanumeric character, and contains neither--nor...authorcontains only string-valuedname,email, andurlfields;keywordsis an array of strings.extensionsis an object whose namespace values are objects. Skillsaw implements no client extension namespace, so the contents of those objects remain opaque and are not validated.- The fixed
skills/location is a directory when present, and every discovered component remains inside the filesystem-resolved plugin root. - Only immediate
skills/*/SKILL.mdentrypoints are Agent Plugin components. Each one is then checked by the existing Agent Skills rules. DeeperSKILL.mdfiles are not discovered through this format.
Unknown top-level manifest fields and a non-object extensions field are
reported as warnings and ignored, as required by the normative prose. Other
manifest schema violations are errors. A missing optional component location
is valid.
Detection and explicit linting¶
Automatic detection requires positive schema evidence: the root
plugin.json, or an immediate plugins/*/plugin.json, must declare a
canonical Agent Plugins manifest schema identifier. An unsupported canonical
version remains useful intent evidence so this rule can report the version
error. A historical or unrelated plugin.json, and mcp.json by itself, do
not opt the repository into this format.
Use --type agent-plugin when validating an intended package whose manifest
is missing or too malformed to provide detection evidence. The explicit type
causes this rule to report that defect instead of silently treating the
directory as another repository type.
How to fix¶
Start with the minimal portable manifest:
Keep portable skills under skills/<skill-name>/SKILL.md. Do not replace the
fixed locations with manifest path fields. Resolve symlinks and other package
paths so that everything a client discovers remains inside the plugin root.
Configuration¶
Run skillsaw explain agent-plugin-json-valid to see this documentation and the rule's effective configuration in your terminal.