`marketplace.json` の `$schema` URLを SchemaStore へ差し替え
.claude-plugin/marketplace.json に記載されていた $schema URLが404を返し続けていた問題を修正し、実在するSchemaStore上のURLへ変更しました。これにより、VS Codeなどの $schema を自動フェッチするエディタでスキーマ検証エラーが表示されなくなります。
背景
#9686 で報告された通り、.claude-plugin/marketplace.json の $schema フィールドが指す https://anthropic.com/claude-code/marketplace.schema.json は当初から404を返しており、一度も有効に機能したことがありませんでした。VS Codeの統合ターミナルから marketplace.json を開くと、エディタが以下のようなエラーを表示し続ける状態でした:
Unable to load schema from 'https://anthropic.com/claude-code/marketplace.schema.json': Not Found.
この問題に対し、コミュニティPR #23974 は $schema フィールドそのものを削除する方針を採っていましたが、本PRは実在するスキーマURLへ差し替える方針を選択しました。スキーマを削除するのではなく有効なエンドポイントを指すことで、エディタのオートコンプリートとバリデーションを機能させることが目的です。
技術的な変更
.claude-plugin/marketplace.json の $schema フィールドを1行変更し、SchemaStore上のURLへ差し替えました。
変更前:
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
...
}
変更後:
{
"$schema": "https://json.schemastore.org/claude-code-marketplace.json",
...
}
差し替え先の claude-code-marketplace.json は、SchemaStore/schemastore#5603 で追加が進んでいるスキーマです。このスキーマは claude-cli-internal 内のZod定義から生成されており、SchemaStoreへのPR着地後にエディタが自動的にスキーマを取得できるようになります。
設計判断
$schema フィールドの削除ではなく、有効なURLへの差し替え が採用されました。
削除案(#23974)は即座にエラーを消せる一方、将来スキーマが有効化されてもエディタ支援を享受できません。本PRはSchemaStoreへのPRが着地すれば自動的にオートコンプリートとバリデーションが有効になるという点で、より積極的なアプローチを選んでいます。SchemaStoreはエディタが広くサポートしている中央リポジトリであり、Canonicalなスキーマ定義元(Zod定義)を持つ内部リポジトリとは別に、エディタ統合のための公開エンドポイントとしての役割を担います。
まとめ
今回の変更は1行の修正ですが、「無効なURLを消す」のではなく「実在するURLを指す」という選択により、SchemaStore PR着地後はエディタ上での marketplace.json 編集体験が即座に向上します。