Validate the manifest, reject on failure, and your plugin client is non-conformant
Agent Plugins 1.0.0 ships a JSON Schema for plugin.json . It sets additionalProperties: false . So the obvious loader is four lines: const manifest = JSON . parse ( await readFile ( join ( dir , ' plugin.json ' ))); if ( ! validate ( manifest )) return reject ( ' invalid manifest ' ); That loader is wrong, and the specification says so in a sentence most people never reach. §5.2: Clients MUST…
The JSON Schema for plugin.json in Agent Plugins 1.0.0 enforces additionalProperties: false, meaning the loader expects a specific structure. However, the specification §5.2 and §8.1 state that clients must tolerate unknown top-level fields and extensions fields that are not objects. A validator provides a boolean outcome, but the spec requires three different results.
Consequently, the current implementation is non-conformant in two cases and correct in all others. This subtle bug often goes unnoticed in testing, surfacing as plugins working in one client but not another. This issue has reportedly affected multiple clients, such as Codex, oh-my-pi, dotnet/skills, Kiro, and VS Code. The validation implementation requires testing a real plugin directory against the expected behavior of a conformant client, rather than just validating the plugin itself.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.