// コンテキスト
GEMINI.md
このリポジトリで、Geminiがどう振る舞うべきか。
Gemini CLIユーザー向け
GEMINI.mdは、作業のコンテキストを定めます。MCPは、Geminiがツールに手を伸ばせるようにします。Maguyvaは、あなたのリポジトリの問い合わせ可能な地図をGeminiに与えるMCPサーバーです。だから、最初の編集がファイル構造の当てずっぽうにならずに済みます。
Freeプラン: リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
GEMINI.mdはコンテキスト。MCPはチャネル。Maguyvaは地図。 4つの考え方。それぞれがひとつの役割を果たします。
// コンテキスト
このリポジトリで、Geminiがどう振る舞うべきか。
// トランスポート
Geminiが、外部ツールやコンテキストにどう手を伸ばすか。
// コードベース
根拠のあるリポジトリの事実を返す、MCPサーバー。
// 支払うのは誰か
エージェントはシート料金を払いません。料金を見る
永続的な指示は、GEMINI.mdに置くべきものです。以下のことを書くのに適した場所です:
簡潔にまとめてください。スコープを絞ってください。コミットしてください。
しかし、GEMINI.mdは、リポジトリ内のすべてのシンボル、ファイル、呼び出し箇所を問い合わせ可能にするインデックスとして設計されたことは一度もありません。
4つの失敗モード、カードひとつにつきひとつ。
Geminiにどう作業するかを教えても、何が存在するかは教えられません。見慣れないパッケージでの最初の編集は、ファイルパスや関数名についての当てずっぽうになります。GEMINI.mdは、すべてのシンボルを列挙することはできませんし、そうすべきでもありません。
キューのトポロジーを説明するGEMINI.mdの記述は、誰かが新しいコンシューマーを導入するまでは正しい。今や信頼できる情報源はコードであり、ドキュメントは自信満々に古くなっています。Geminiは、間違った方を読んでしまいます。
「このクラスを参照しているのは何か?」は、マークダウンファイルからは答えられません。Geminiは、モノレポ全体をgrepして祈るか、呼び出し箇所をチャットに貼り付けるようあなたに頼むしかありません。
大きなウィンドウは、問い合わせ可能なインデックスと同じではありません。Geminiが「十分に知っている」と思えるまでGEMINI.mdを読み込ませても、推論の予算を静的なコンテキストの量と引き換えにするだけです。
Geminiユーザーは、すでにこの形で考えています。このページは、それを明確にするべきです。
GEMINI.md
コンテキスト
Geminiがどう振る舞うか
MCP
チャネル
どう手を伸ばすか
Maguyva
コードベースの事実
何を見るか
GEMINI.mdは、Geminiにどう作業するかを教える。
Maguyvaは、Geminiに作業の拠り所を与える。
Gemini特有。Geminiのgrepではなく、実際のコールグラフに根ざしています。
// workflow 01
gemini> PaymentClient → BillingClientにリネーム graph::callers(PaymentClient) 7つのパッケージにまたがる12件の参照 graph::importers(src/payments/client.ts) インポートしている箇所9件 graph::extends(PaymentClient) サブクラス2つ (RetryClient, MockClient) → Geminiは、ファイル一覧を添えた21件の編集からなる移行を提案します。 [exit 0]
Geminiは、編集を始める前に、Maguyvaに依存元を尋ねます。移行リストは、Geminiの記憶ではなく、実際のグラフに根ざした形で返ってきます。
// workflow 02
gemini> normalizePhoneNumberはE.164をどのように処理していますか? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← 実装本体 test/util/phone.spec.ts:14 jest.mock(...) ← スタブ [exit 0]
名前は嘘をつきます。モックは実際のコードを覆い隠します。Maguyvaは、実際の実装をテストモックより上位にランク付けします。
// workflow 03
gemini> QueueDispatcher.publishを呼び出しているのは? graph::callers(QueueDispatcher.publish) src/billing/* に3件 src/audit/* に1件 src/notifications/* に1件 [exit 0]
パッケージ横断の呼び出し箇所がインラインで表示されます。差分は、Geminiのgrepではなく、実際にインポートしている箇所に根ざしています。
3ステップ。Freeプラン: リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
// step 01
回答を検証できるよう、よく知っているものを選びましょう。
// step 02
~/.gemini/settings.json
{
"mcpServers": {
"maguyva": {
"httpUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer ${MAGUYVA_API_KEY}"
}
}
}
} // step 03
会社全体から始めないでください。1つのリポジトリと、検証可能な質問1つから始めましょう。