新しいプロジェクトに参加したとき、巨大なコードベースを前にして途方に暮れた経験はありませんか?
小さな機能を一つ修正したいだけなのに、関連ファイルを探すのに何時間もかかる。
そんな状況は開発者なら誰もが経験したことがあるでしょう。
最近、Redditで興味深い投稿を見つけました。
大規模コードベースの問題を、複数のAIを組み合わせて解決する方法についてです。
この手法は、私たちがAIツールを使う方法に新しい視点を与えてくれます。
従来のアプローチの限界
多くの開発者は、コードベース全体をAIに投げ込んで答えを得ようとします。
しかし、この方法には大きな問題があります。
まず、トークン制限の壁にぶつかります。
AIのコンテキストウィンドウには限界があり、大規模なコードベースをすべて処理することはできません。
次に、コストの問題です。
大量のトークンを使用すると、API利用料が跳ね上がります。
そして最も重要なのは、AIが全体像を把握できないため、的確な回答が得られないことです。
部分的な情報しか与えられていないAIは、推測で答えを出すしかありません。
AIチームという新しい発想
この問題に対する解決策は、意外にもシンプルでした。
一つのAIにすべてを任せるのではなく、それぞれの強みを活かした「AIチーム」を作るのです。
具体的には、Geminiをプロジェクトマネージャーとして、Claudeを専門的なコーダーとして使い分けます。
これは、実際の開発チームの役割分担と同じ考え方です。
実践的なワークフロー
投稿者が紹介していたワークフローは次のようなものでした。
ステップ1:コードベースの分析
まず、Geminiの大規模なコンテキストウィンドウを活用します。
プロジェクト全体のコードをGeminiに読み込ませ、全体像を把握してもらいます。
ステップ2:タスクの整理
Geminiに対して、実現したいタスクを伝えます。
例えば「ユーザープロフィールページに二要素認証のトグルを追加したい」といった具体的な要求です。
そして、Geminiには2つのことを依頼します。
必要なファイルのリストアップと、詳細なブリーフィング文書の作成です。
ステップ3:専門家への引き継ぎ
Geminiが作成した情報をClaudeに渡します。
これにより、Claudeは必要最小限のファイルと、明確なコンテキストを持って作業を開始できます。
結果として、Claudeは的確で実用的なコード提案を行えるようになります。
さらに進化した手法
Redditのコメント欄では、さらに洗練された手法が数多く紹介されていました。
コードベースのインデックス化
Augment CodeやSerenaといったツールを使うことで、巨大なコードベースでも効率的に検索できます。
これらのツールは、コードをインデックス化し、必要な部分だけを素早く見つけ出せます。
MCPツールの活用
Model Context Protocol(MCP)を使えば、異なるAI間での情報共有がさらにスムーズになります。
Zen-MCPやGemini-MCP-Toolなどが紹介されていました。
repomixによる効率化
repomixは、リポジトリ全体を一つのLLMフレンドリーなファイルに変換するツールです。
これにより、AIへのコード共有が格段に簡単になります。
実装時の注意点
いくつかのコメンターが指摘していた重要な点があります。
まず、1ミリオントークンでも巨大なコードベースには不十分な場合があります。
その場合は、適切なインデックス化ツールの使用が必須です。
また、テスト駆動開発との組み合わせも効果的です。
ユニットテストを活用することで、AIに必要なコンテキストをより効率的に提供できます。
セキュリティ面での配慮も忘れてはいけません。
機密情報を含むコードを扱う場合は、特に注意が必要です。
プロジェクト構造の重要性
成功の鍵は、プロジェクトの構造化にあります。
ドキュメントを階層的に整理し、高レベルの概要から詳細へと段階的にアクセスできるようにします。
各モジュールには独自のドキュメントを用意し、AIが必要な情報を効率的に見つけられるようにしましょう。
CLAUDE.mdファイルを活用するのも効果的です。
ディレクトリごとに配置することで、AIが自動的に適切なコンテキストを読み込めます。
まとめ
大規模コードベースでAIを効果的に使うには、単一のAIに頼るのではなく、複数のAIの強みを組み合わせることが重要です。
Geminiの大規模コンテキスト処理能力とClaudeの精密なコード生成能力を組み合わせることで、従来の方法では不可能だった効率的な開発が可能になります。
さらに、適切なツールやプロジェクト構造と組み合わせることで、この手法の効果は飛躍的に向上します。
AIツールは日々進化していますが、それらを効果的に使いこなすには、適切な戦略と工夫が必要です。
今回紹介した手法は、その一つの答えと言えるでしょう。