ドキュメント

プロジェクトのコンテキスト

エージェントが把握しているプロジェクト情報、推測できない内容、そして開発者が伝えるべき事項。

エージェントはリポジトリを読み取ります。これで必要な情報の大部分は得られますが、人々の頭の中やWiki、2年前の会話に記録された決定事項までは把握できません。

プロジェクトコンテキストリポジトリの指示に加え、Coroidに保存したガイダンスも組み合わせたものです。

リポジトリの指示もコンテキストの一部です

Coroidはルートレベルのようなメモリファイルを読み取りますAGENTS.md、CLAUDE.mdおよびGEMINI.md、さらにCursorのルールも適用されます。.cursor/rules有効にしたソースコードは、作業開始前にエージェントのプロジェクトコンテキストに含まれます。リポジトリローカルの@インポート機能により他の指示ファイルを取り込むことが可能です。繰り返しのインポート、循環参照、同一の指示内容は一度だけ含まれます。これらの指示をアプリケーションコンテキストエントリにコピーする必要はありません。

「設定 → ナレッジ → コンテキスト、リポジトリソースでエージェントが受け取るファイルを制御し、アプリケーションコンテキストには手動で入力したメモやCoroidに保存された生成済みコンテキストが格納されます。明示的に無効化しない限りソースは有効化され、重複または矛盾する指示が組み合わさるのを防ぐために無効化することも可能です。

リポジトリの指示はGit内のコードと共に管理されます。アプリケーションコンテキストはリポジトリ外に保存するガイダンスや参照情報として有用です。どちらも規約が変更された際には更新が必要です。サポートされるパス、ファイル検出方法、制御機能についてはプロジェクトコンテキスト設定をご確認ください。

Coroidが自動で判断できる内容

リポジトリのみから、エージェントが把握できる情報は以下の通りです:

  • 使用されている言語、フレームワーク、ライブラリ
  • プロジェクトのビルド、テスト、実行方法
  • 既存のパターン — エラー処理方法、モジュール構造、命名規則など
  • 依存関係

これらの情報を文書化する必要はありません。再記述は無駄な作業であり、より信頼性の高いコードと比べて古くなるリスクもあります。

推測できない内容

コードは_何を_行ったかは示しますが、なぜ行ったかは示しません:

  • 明らかな代替案よりも特定のライブラリを選んだ理由で、その理由が今も有効な場合
  • 重複に見えるが意図的な仕切りとなっているパターン
  • 特定のチームと相談しない限り触ってはいけないモジュール
  • 合意済みだがまだ適用されていない規約
  • コードベース外の制約 — コンプライアンス要件、契約内容、進行中のマイグレーションなど

これらがプロジェクトコンテキストに含めるべき内容です。判断基準はシンプルです:リポジトリのみを読んだ人がこれを理解できるか?もし可能なら記載する必要はありません。不可能なら文書化してください。

リポジトリが示す内容

エージェントはすべてのタスクでそれを読み取ります。繰り返し記述する必要はありません。

  • 言語、フレームワーク、ライブラリ
  • ビルド、テスト、実行方法
  • 既存のパターンと命名規則
  • 何が何に依存しているか

ユーザーが追加する理由

プロジェクトの背景情報には人々の頭の中にある知識が含まれます。

  • なぜ明らかな代替案よりもそのライブラリが選ばれたのか
  • 意図的な境界としての重複
  • 特定のチーム以外が触ってはならないモジュール
  • まだどこにも強制されていない合意された規約
  • 外部の制約:コンプライアンス、契約、進行中の移行

テスト内容: リポジトリだけを読んだ人でも解決できるか?可能なら記載不要。不可能なら書き留めてください。

リポジトリにすでに示されている情報は省略します。リポジトリだけを読む人では把握できない事項を記述してください。

コンテキストの追加

プロジェクトの「コンテキスト」セクションに文書、ポリシー、参照情報を添付します。アーキテクチャに関するメモ、意思決定記録、スタイルガイド、APIの契約書なども利用可能です。

良質なコンテキストは簡潔かつ具体的です。人向けに書かれた40ページのオンボーディングガイドのほとんどは記述的な内容ですが、実際の制約を記した3段落が重要なのです。それらを抽出してください。

タスク別コンテキスト

プロジェクトに紐づいたコンテキストは全ての作業に適用されます。特定の作業 — チケット、設計書、顧客報告書 — に関連する情報は、タスクに直接添付してください。

永続的に有効な情報のみをプロジェクトコンテキストとして保持してください。プロジェクトコンテキスト内のタスク固有のメモは、今後のすべてのタスクにおいてノイズとなります。

正確さを保つ

時代遅れになったコンテキストは、コンテキストがない場合よりも悪影響を及ぼします。なぜならエージェントはそれを信頼できる情報とみなすからです。規約が変更された際には、コードの変更と同時にコンテキストも更新してください。

再作業のコメントで同じ内容を繰り返し修正している場合、それはコンテキストに不足があるか、またはコンテキスト内の情報に誤りがあることを示すシグナルです。