[BUG] Plugin install rejects "agents" as string — documented format fails validation
Summary
plugin install rejects "agents": "./agents/" (string) in plugin.json with agents: Invalid input, even though the Plugin manifest schema docs explicitly declare the field as string|array.
This blocks installation of 3 of the 10 plugins in Microsoft's official dotnet/skills marketplace (dotnet-diag, dotnet-msbuild, dotnet-template-engine).
Steps to Reproduce
# Add the dotnet/skills marketplace
claude plugin marketplace add dotnet/skills
# Install a plugin that uses string format for agents
claude plugin install dotnet-diag@dotnet-agent-skills
Result:
✘ Failed to install plugin "dotnet-diag@dotnet-agent-skills": Plugin has an invalid manifest file at
/Users/.../.claude/plugins/cache/temp_local_.../plugin.json.
Validation errors: agents: Invalid input
The plugin.json being rejected:
{
"name": "dotnet-diag",
"version": "0.1.0",
"description": "Skills for .NET performance investigations, debugging, and incident analysis.",
"skills": "./skills/",
"agents": "./agents/"
}
Note that the skills field uses the same string format ("./skills/") and is accepted. Only agents fails validation.
Plugins without the agents field install successfully from the same marketplace (e.g., dotnet-data, dotnet-upgrade, dotnet-test — all 7 without agents installed fine).
Expected Behavior
"agents": "./agents/" should be accepted, matching the documented string|array type and the behavior of the skills field.
Environment
- Claude Code: 2.1.79
- Platform: macOS (Darwin 25.3.0, ARM64)
Prior Issues
- #21598 — Same bug reported, auto-closed and locked without fix
- #13927 — Related Zod validation error for agents array of objects, also auto-closed
- dotnet/skills#350 — Microsoft's report of the same issue from the consumer side
Impact
This blocks installation of Microsoft's dotnet-diag (performance anti-patterns, trace collection, benchmarking), dotnet-msbuild (build diagnostics, anti-patterns, incremental builds), and dotnet-template-engine (template discovery/authoring) — arguably the most valuable plugins in their marketplace.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗