Claude Code Plugin 生態系の爆発的拡大
- 年に入り、Anthropic が公式にサポートする Claude Code プラグイン仕様が v1.2 へと進化した。Plugin Marketplace の公開プラグイン数は4月時点で既に420を超え、個人開発者の副業レベルで数千ドルの月収を得ているメンテナーも現れている。特に「自分のワークフローを他人にも配る」というカルチャーが定着し、GitHub Actions エコシステムと似た熟成段階に到達した。
プラグインは大きく4種類に分類できる。スラッシュコマンド(/loop、/review のようなインタラクション)、MCP サーバー(外部ツール統合)、フック(自動化トリガー)、そしてサブエージェント定義ファイル。これらを組み合わせることで、開発ワークフロー全体を宣言的にパッケージ化できる。
注目プラグイン3選
get-shit-done は最も話題になったワークフロー系プラグインだ。TODO リストを Claude に管理させ、Stop フックで「やり残し」を自動検出する仕組みを持つ。.claude/settings.json に登録される Stop フックが、セッション終了前に未完了タスクを検査し、続行が必要な場合は再度プロンプトを投入する。
simplify は改変後コードの複雑度を検査するレビュー系プラグインで、cyclomatic complexity、重複ロジック、未使用インポートを自動検出する。PostToolUse フックで Edit/Write の直後に走り、閾値超過時は自動でリファクタ提案を行う。大規模リファクタリング案件での効率改善効果が大きい。
ultrareview はコードレビューを PR 単位で自動化するサブエージェント型プラグインだ。gh pr diff の出力を受け取り、セキュリティ、性能、保守性の3軸でレビューレポートを生成する。内部で複数のサブエージェントを並列起動し、各視点のレビューを統合する設計になっている。
独自プラグインの作り方
プラグインは基本的に .claude/plugins/<name>/ ディレクトリ配下に manifest.json、commands/*.md、hooks.json、mcp.json を配置するだけで成立する。manifest.json でプラグイン名、バージョン、エントリポイントを宣言し、commands ディレクトリに Markdown ファイルを置くだけでスラッシュコマンドが登録される。
MCP サーバーを同梱する場合は mcp.json に stdio 起動コマンドを書く。Node.js であれば npx 経由、Python なら uvx 経由が推奨パスだ。重要なのは「起動コマンドの絶対パス依存を避ける」こと。Plugin Marketplace 公開時は多様な環境で動作する必要があり、PATH 解決できるコマンド名のみ許容される。
フックは hooks.json に PreToolUse、PostToolUse、UserPromptSubmit、Stop、SessionStart の各トリガーを登録する。JSON スキーマで matcher(ツール名の正規表現)と command(実行シェル)を指定する方式で、GitHub Actions の workflow 構文に慣れていれば直感的に書ける。
シェル実行プラグインのセキュリティ
プラグインが任意のシェルコマンドを実行できる点は、生態系最大のリスク要因だ。実際、2026年2月には悪意ある MCP サーバーが .ssh/id_rsa を外部 POST するインシデントが発生し、Anthropic は v1.2 でサンドボックス強制モードを追加した。
重要な防御策は3つ。第一に allowed_commands ホワイトリストによる実行制限。prePlugin で許可コマンド集合を宣言し、それ以外のシェル呼び出しをブロックする。第二に network_access フラグで外部通信を制限。必要な場合のみ opt-in で有効化する。第三にプラグインマニフェストへの署名(Sigstore 互換)を要求し、作者の身元と改竄有無を検証可能にする。
KGA では社内プラグイン公開前に静的解析で exec/spawn/curl/wget を走査し、危険なパターンがあれば CI を落とすゲートを入れている。個人開発者が見落としがちな「環境変数経由の機密情報漏洩」も、環境変数アクセス時に警告を出す linter を併用する。
プラグイン設計のベストプラクティス
- つのプラグインに機能を詰め込みすぎないことが最重要だ。get-shit-done のように責務が明確な小さなプラグインを組み合わせる方が、ユーザーにとって理解も保守も容易になる。manifest.json の description にはユースケースを具体的に書き、冒頭1行で何を自動化するかが伝わる粒度が望ましい。
また、フック処理は必ず冪等に設計する。PostToolUse フックが重複実行された場合でも安全であるべきで、状態を持つ処理は .claude/state/ 配下にロックファイルを置いて排他制御する。特にマルチインスタンス運用時、同時にフックが走ると破壊的挙動が出やすい。
最後にプラグイン単体のテストを忘れないこと。claude --plugin-test <path> で dry-run 実行できるので、CI に組み込んで main ブランチへの merge 前に検証する。プラグイン文化の成熟にはコミュニティが自律的に品質を担保する仕組みが不可欠だ。