plugin.json files omit required $schema, so plugins fail to load as Kiro powers (Agent Plugins 1.0.0 non-compliance)
- Dominant language
- C#
- Stars
- 5.4k
- Forks
- 415
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 81
Description
Kiro's Powers panel now installs Agent Plugins 1.0.0 packages directly (see [Kiro's announcement](https://kiro.dev/blog/powers-supports-plugins/)). Importing a plugin from this repo as a Kiro power fails to load its components.
## Repro
1. Kiro → Powers panel → Add Custom Power → Import power from GitHub
2. URL: `https://github.com/dotnet/skills/tree/main/plugins/dotnet-msbuild`
3. Install
## Observed
The power downloads but fails to load, reporting:
> `plugin.json has an unsupported or missing $schema`
## Cause
The [Agent Plugins 1.0.0 plugin schema](https://agent-plugins.org/schemas/1.0.0/plugin.schema.json) declares:
```json
"required": ["$schema", "name"],
"additionalProperties": false
```
The plugin manifests in this repo (e.g. `plugins/dotnet-msbuild/plugin.json`) are not valid Agent Plugins 1.0.0 manifests on two counts:
1. **Missing required `$schema`.** Without it, a compliant loader rejects the manifest outright. The value is pinned via `const` to `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json`.
2. **Non-schema top-level keys.** The manifests carry `skills`, `agents`, and `mcpServers` as top-level properties. The 1.0.0 plugin schema sets `additionalProperties: false` and does not define these. Per the spec, skills live under `skills/`, MCP servers in a separate `mcp.json`, and client-specific data under an `extensions` / reverse-domain namespace.
Adding `$schema` alone is **necessary but not sufficient**: it gets the manifest past the initial rejection, but the power then loads with **all functional components excluded**, because `skills`, `agents`, and `mcpServers` are stripped as non-schema keys. See the tested result in the comment below.
A spec-compliant manifest would add `$schema`, keep `plugin.json` to identity fields only, rely on the `skills/` directory for skill discovery, and move the MCP server into a sibling `mcp.json` (schema `https://agent-plugins.org/schemas/1.0.0/mcp.schema.json`).
## Related
- #338 added Kiro support via a generated `.kiro/skills/` path (skills only) and was closed as completed. It explicitly left open the question of a `plugin.json`-style manifest for Kiro. This issue concerns the *power* install path (skills plus MCP server together), which is blocked by the manifest non-compliance above.
## Environment
- Kiro (Powers panel, Import from GitHub), Windows
- Repo revision observed: `be7b56028cf14cc5b9482b29959d7d96433bad05`
Contributor guide
Assessment
This issue has not been assessed yet.