1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プラグインマーケットプレイスのパス検証:claude plugin validate が検出するエラーと、通過してしまう落とし穴

1
Posted at

自作プラグインをマーケットプレイス経由で配布する際、設定ファイル marketplace.json のパス記述を誤ると、検証は通っても利用者のインストール時に初めて失敗が露呈することがあります。本稿は、公式ドキュメント(2026-10-24 時点)で検証済みの事実のみを用い、claude plugin validate が検出する範囲と、検証をすり抜ける誤りを整理します。

claude plugin validate の検出範囲

claude plugin validate は、マーケットプレイスディレクトリ内のファイルだけを読み込みます [1]。検出対象は、JSON 構文エラー、必須フィールド(例: owner)の欠落、命名規則違反、相対パスにおける .. の使用、未知フィールドです [1]。

相対パスで参照される各プラグインの plugin.json に問題がある場合、plugins[N] plugin.json → <field>: <message> の形式で報告されます [1]。

一方、トップレベルまたはプラグインエントリ内の未知フィールドは、エラーではなく警告として報告されます [1]。

マーケットプレイスルートと相対パスの基点

マーケットプレイスルートは .claude-plugin/ ディレクトリを含むディレクトリです [1]。source に書く相対パスは、このルートを基点として記述します。パスは .claude-plugin/ の内側から始まるわけではないため、.. でルートの外に出てはいけません [1]。

.. を含むパス

source に .. を含む相対パスを書くと、claude plugin validate はそのエントリを invalid と報告します。メッセージは Path contains "..": で始まります [1]。

存在しないディレクトリへのパス

存在しないディレクトリを指す相対パスは、claude plugin validate を通過します。しかし claude plugin install 実行時に Source path does not exist: <path> というエラーで失敗します [1]。検証成功がインストール成功を保証しないのは、この点に起因します。

エントリ名と manifest 名の不一致

marketplace.json の plugins 配列内の entry name と、plugin.json に記載された manifest name が異なる場合でも検証は通ります。しかし利用者が manifest name を指定して claude plugin install を実行すると、Plugin "<manifest-name>" not found in marketplace "<marketplace>" が報告されます [1]。

予約されたマーケットプレイス名

Anthropic の公式マーケットプレイス名(例: claude-plugins-official)はバリデーションを通過します。しかし claude plugin marketplace add 実行時に Claude Code が拒否し、The name '<name>' is reserved for official Anthropic marketplaces で始まるメッセージが表示されます [1]。

リモートソースはインストール時にフェッチされる

github・git-subdir・その他リモートソースのプラグインは、インストール時に初めてフェッチされます。したがって、リポジトリやパスの誤りはインストール時に発覚します [1]。

ローカル編集の反映

ローカルディレクトリの相対パスソースを用いた場合、プラグインファイルへの編集は、セッション再起動または /reload-plugins の実行後に反映されます。このときプラグインのバージョン番号は変化しません [1]。

検証成功時の出力

マーケットプレイスディレクトリに対して claude plugin validate ./my-marketplace を実行し、正しく記述されていれば、出力の最終行は ✔ Validation passed となります [1]。

References

[1] https://code.claude.com/docs/en/plugin-marketplaces

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?