WordPress プラグイン開発を生成 AI で迅速かつ安全に行う方法

生成 AI を使ったコーディングで最も警戒すべきリスクは、モデルの知識不足やコンテキスト不足によるハルシネーションです。AI が不正確な情報を自信満々に提示し、それをそのままコードに反映してしまうと、動作しないコードや予期しない不具合を生み出すことになります。

WordPress プラグイン開発では、このリスクが特に顕著です。WordPress 本体のフックシステム、データベース構造、セキュリティ要件、パフォーマンス最適化など、考慮すべき要素が多岐にわたります。正確な知識なしに AI にコードを書かせると、セキュリティホールや互換性問題を抱えたプラグインが出来上がる危険性があるでしょう。

このリスクを回避するには、コーディングを始める前に必要な情報を調査・収集して AI に渡す必要があります。しかしここで新たな問題が発生します。大量の調査結果を AI に渡すと、コンテキストウィンドウの制限に引っかかり、作業が完了できなくなる恐れがあるのです。

本記事では、Claude Projects を活用した分割統治法により、コンテキストウィンドウの問題を解決する方法を紹介します。

なぜ事前調査が重要なのか

WordPress プラグイン開発において、調査なしでいきなりコーディングを始めると以下のような問題が発生します。

生成 AI は古いバージョンの WordPress API を提案することがあります。例えば、非推奨になったフックや関数を使ったコードを生成し、最新の WordPress では正しく動作しないプラグインができあがる可能性があるのです。

セキュリティ要件についても同様です。nonce 検証、権限チェック、データサニタイゼーションなど、WordPress のセキュリティベストプラクティスを正確に把握していないと、脆弱性を含むコードが生成される可能性があります。

パフォーマンス面でも注意が必要です。どのタイミングでどのフックを使うべきか、データベースクエリをどう最適化すべきかといった判断を誤ると、サイト全体のパフォーマンスに悪影響を及ぼすプラグインになってしまいます。

これらの問題を防ぐには、コーディング前に正確な情報を収集し、それを AI に提供することが不可欠です。

コンテキストウィンドウという制約

しかし事前調査を徹底しようとすると、今度はコンテキストウィンドウの問題に直面します。

例えば MCP (Model Context Protocol) ツールを使って WordPress ハンドブックを調査する場合を考えてみましょう。メディアファイル削除機能を実装するために、delete_attachmentフックの詳細、ァイルシステムとの連携方法、キャッシュシステムとの統合などを調べていくと、MCP ツールの実行結果が大量に蓄積されていきます。

気づいたときには「この会話は Claude の最大文字数に達しました」というメッセージが表示され、調査を続けられなくなります。せっかく集めた情報も、作業計画を立てる前にセッションが打ち切られてしまえば意味がありません。

Claude Projects を使った分割統治法

コンテキストウィンドウの問題を解決するのが、Claude Projects を活用した分割統治法です。大きな調査課題を小さな部分問題に分割し、それぞれを個別のチャットで調査して結果を蓄積し、最後に統合して作業計画を立てるという流れになります。

ステップ1: 専用プロジェクトを作成

まず調査対象に応じて専用のプロジェクトを作成します。「C3 プラグインでメディアファイル削除機能を実装」といった具体的な名前を付けておくと、後で見つけやすくなります。

プロジェクトの公開設定は「プライベート」を選択し、招待されたメンバーのみがアクセスできるよう設定しておきます。

ステップ2: 調査課題の分割を Claude に依頼

大きな調査指示を Claude に渡す際は、分割統治法の適用を明示的に依頼します。ここで重要なのは「プロンプトの生成が目的である」ことを強調することです。

例えば以下のような指示を出します。

「以下の調査指示は、複数の問題について依頼しています。そのため、生成 AI のコンテキストウィンドウ内で回答を得ることができません。よって分割統治法に基づき、生成 AI プロンプトを作り直してください。1つのチャットセッションで1つのプロンプト・1つの課題を扱うように生成します。」

Claude は調査内容を分析して、適切に分割されたプロンプトを生成してくれます。例えばメディアファイル削除機能の調査であれば、以下のように分割されます。

ここで注意が必要なのは、Claude が「調査指示内容について、分割統治法で調査しよう」と判断することがある点です。これではプロンプトが生成されず、調査自体を始めてしまうため望ましくありません。あくまでプロンプト生成に集中してもらうよう指示してください。

ステップ3: 個別調査を実行

分割されたプロンプトを使って、プロジェクト内で個別に調査を実行していきます。各調査では特定のトピックに集中して MCP ツールを使用できるため、より詳細で正確な情報を取得できます。

一つの調査が完了したら、そのチャットはそこで終了させ、次の調査課題のために新しいチャットを開始します。

ステップ4: 適切なタイミングで中断する

分割した後のプロンプトでも最大文字数を超えそうな場合があります。そんなときは適切なタイミングで調査を中断させる判断が重要になってきます。

Claude が「念の為」「最後に」「追加で」「より具体的に」といった経過報告を始めたタイミングで ESC キーを押して生成を停止し、現状を報告させるという判断も時には必要です。必要最小限の情報が得られた段階で区切りをつけることで、コンテキストウィンドウを有効活用できます。

ステップ5: 調査結果をファイルに蓄積

各調査で得られた結果は、プロジェクト内のファイル機能を活用して保存しておきます。

ファイル追加時は「テキストコンテンツを追加」を選択し、調査結果を構造化してまとめます。例えば以下のような形式で保存します。

## `delete_attachment`フック
実行タイミング: 添付ファイルがデータベースから削除される直前に実行される
引数: attachment_ID
用途: ファイル削除時のCDNキャッシュクリアに適している
注意: WordPress 2.8以前では削除後に実行されていたが、現在は削除前に実行される

## `add_attachment`フック
実行タイミング: 添付ファイルが最初にデータベースに追加されたときに実行される
引数: attachment_ID
用途: 新規アップロード時の処理には適しているが、CDNキャッシュクリア目的では不適切

ファイルに保存しておけば、プロジェクト内の別チャットからも重要な情報を参照できるようになります。Claude Projects のメモリー機能により、プロジェクト内で蓄積された知識は持続します。

ステップ6: 調査結果を統合して作業計画を立案

すべての個別調査が完了したら、分割した課題を統合していきます。ファイルに蓄積された情報をもとに、最適な実装方針を決定し、詳細な作業計画を作成します。

例えば WordPress でのメディアファイル削除時の CDN 連動については、調査結果を統合して以下のような作業計画を立案できます。

このような詳細な作業計画があれば、AI コーディングツールは正確なコードを生成できます。

調査結果を実装に活かす

作業計画が完成したら、それを Claude Code や Cursor、Devin といったコーディングツールに渡します。事前調査により正確な情報を把握し、それを明確な作業計画としてまとめてあるため、これらのツールはハルシネーションのリスクなく、安全で高品質なコードを生成できます。

調査なしでいきなりコーディングを始めた場合と比較して、いくつかの点で安心したコーディングを実現できます。

まず正確性、最新の WordPress に関する知識やベストプラクティスなどを事前にリサーチしてプロジェクトナレッジに集約させるため、見当違いのコードが生成されるリスクが軽減されています。正確性が高まることによる手戻り率の減少は、AI コーディングで実現を目指した実装の効率化につながります。調査段階で設計上の判断が完了しているため、コーディングツールは迷うことなく実装を進められます。また、プロジェクトに貯めたナレッジはある種のドキュメントとして残ります。そのため、新しく機能変更や追加開発などを行う際の叩き台にも使えると言えるでしょう。

まとめ

WordPress プラグイン開発において、生成 AI を安全かつ効率的に活用するには、コーディング前の事前調査が不可欠です。しかしコンテキストウィンドウの制限により、一度に大量の調査を行うことはできません。

Claude Projects を活用した分割統治法により、コンテキストウィンドウの制約を克服できます。調査課題を小さな部分問題に分割し、それぞれを個別に調査して結果を蓄積し、最後に統合して作業計画を立てることで、正確で実装可能な設計書を作成できます。

MCP ツールを頻繁に使う開発において、分割統治法は必須のテクニックです。WordPress や AWS のような複雑なシステムを扱う場合、分割統治法なしには効率的な開発は困難でしょう。

開発時の計画や事前調査で Claude と MCP をよく使う方には、ぜひ一度試していただきたい手法です。

CanCamfreee
SmartHRLegalOn Technologies
株式会社デジタルガレージSHARP
エピックベース株式会社Internet Society
横浜市立大学附属病院 次世代臨床研究センターmikihouse
リクルートダイレクトスカウトJOLLY GOOD!
日本協創投資旭化成
INFOBAHN GROUP有限会社ワグ
CanCamfreee
SmartHRLegalOn Technologies
株式会社デジタルガレージSHARP
エピックベース株式会社Internet Society
横浜市立大学附属病院 次世代臨床研究センターmikihouse
リクルートダイレクトスカウトJOLLY GOOD!
日本協創投資旭化成
INFOBAHN GROUP有限会社ワグ
Contact

当社へご興味をお持ちいただきありがとうございます。
「こんなことやってみたい!」と、ぜひ気軽にご相談ください。
担当者よりご連絡差し上げます。