// 合意事項
copilot-instructions.md
このリポジトリで、Copilotがどう振る舞うべきか。
GitHub Copilot CLIユーザー向け
カスタム指示はCopilotにどう振る舞うべきかを伝えますが、リポジトリの中身までは伝えません。Maguyvaはコードベースをインデックスし、MCP経由で返すことで、GitHub Copilot CLIがすでにコードを読んだかのように編集できるようにします。
Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
振る舞いには指示を使い、最新のコードベースの事実にはMaguyvaを使いましょう。4つの考え方。それぞれがひとつの役割を果たします。
// 合意事項
このリポジトリで、Copilotがどう振る舞うべきか。
// 伝送路
Copilotが、外部ツールやコンテキストにどう手を伸ばすか。
// コードベース
根拠のあるリポジトリの事実を返す、MCPサーバー。
// 支払うのは誰か
エージェントはシート料金を払いません。料金を見る
# .github/copilot-instructions.md
- 既存のモジュール境界を優先する。
- マージを提案する前にリポジトリのテストコマンドを実行する。
- ファイルパスをでっち上げない。新しいパッケージを作る前に確認する。永続的な指示は .github/copilot-instructions.mdに置くべきものです。ここは次の内容に適した場所です:
そのファイルはこれまで一度もリポジトリのクエリ可能なインデックスではありませんでした。Copilotにどう作業すべきかを伝えますが、そこに何があるかは伝えません。
Copilotがmarkdownファイルだけでは解決できない4つの失敗モード。
Telling Copilot how to behave does not tell it which class owns parseConfig, or which package actually implements the public API. 見知らぬツリーへの最初の編集は、ファイル構造に対する推測に過ぎません。
前四半期の認証フローを説明する指示ブロックは、誰かがセッションストアを分割した日に明らかに間違ったものになります。 Copilot will prefer the file you committed over the code that shipped.
“これをインポートしているのは何?” is a graph question. 指示はすべての呼び出し元を列挙できませんし、そうしたいとも思わないはずです。
リポジトリの内容を指示にもっと詰め込むことは、推論トークンを古いスナップショットと引き換えにすることです。数KBを超えると、より劣った地図に対価を払っていることになります。
Copilotはすでに指示とツールで考えています。
copilot-instructions.md
取り決め
Copilotの振る舞い方
MCP
チャネル
どう到達するか
Maguyva
コードベースの事実
何が見えるか
カスタム指示はCopilotにどう振る舞うべきかを伝えます。
Maguyvaは Copilotにコードのクエリ可能なマップを提供します。
差分を受け入れる前にマップに尋ねましょう。
// workflow 01
copilot> normalizePhoneNumberはE.164をどう処理する? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← 実際の実装 test/util/phone.spec.ts:14 jest.mock(...) ← スタブ → Copilotはモックではなく実装を開きます。 [exit 0]
名前は嘘をつきます。モックは本物のコードを覆い隠します。Maguyvaはテストモックより実際の実装を上位に表示します。
// workflow 02
copilot> QueueDispatcher.publishを呼び出しているのは? graph::callers(QueueDispatcher.publish) src/billing/*内に3件 src/audit/*内に1件 src/notifications/*内に1件 → 差分は実際のインポート元に基づいています。 [exit 0]
パッケージ横断の呼び出し箇所がその場に表示されます。差分はCopilotのgrepではなく、実際のインポート元に基づいています。
// workflow 03
copilot> rename PaymentClient → BillingClient graph::callers(PaymentClient) 7パッケージで12件の参照 graph::importers(src/payments/client.ts) 9件のインポート元 graph::extends(PaymentClient) 2つのサブクラス(RetryClient、MockClient) → Copilotはファイル一覧付きで移行を提案します。 [exit 0]
Copilotは編集を始める前に依存先についてMaguyvaに尋ねます。移行リストはCopilotの記憶ではなく、実際のグラフに基づいて返ってきます。
3ステップ。Freeプラン:リポジトリ3個, インデックス済みリポジトリ行数、最大5万行、カード不要。
// step 01
回答を評価できるよう、すでに知っているリポジトリを選びましょう。無料でサインアップし、GitHubを接続して、インデックス完了を待ちます。
// step 02
copilot mcp add --transport http --header "Authorization: Bearer mgv_xxxx" maguyva https://maguyva.tools/mcp~/.copilot/mcp-config.json
{
"mcpServers": {
"maguyva": {
"type": "http",
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer mgv_xxxx"
}
}
}
}// step 03
会社全体から始めないでください。すでに答えを知っている質問を1つして、引用されたファイルを開いてみましょう。