{
  "id": 4777209,
  "title": "Validate the manifest, reject on failure, and your plugin client is non-conformant",
  "url": "https://urgent.news/2026/09/01/validate-the-manifest-reject-on-failure-and-your-plugin-client-is-non",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-01T03:48:03.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/booyaka101/validate-the-manifest-reject-on-failure-and-your-plugin-client-is-non-conformant-19d7"
  },
  "original_language": "en",
  "account": "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.",
  "summary": "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…",
  "key_points": [
    "JSON Schema enforces specific plugin structure",
    "Clients must tolerate unknown top-level fields",
    "Current implementation non-conformant in two cases"
  ],
  "editors_take": "The validation implementation mismatch between the JSON Schema and the specification forces clients to incorrectly reject certain plugins, causing interoperability issues across different clients.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}