はじめに
ども!久しぶりにがっつりGitHub Copilotを触っている龍ちゃんです。機能が増えている!ってブログ記事を二件ほど執筆しました。
今回は、GitHub Copilot PRレビューに関してしっかりとしたアップデートが入っていたので、過去記事からの参照を含めてまとめていきます。
過去に書いたPRレビューを自動化しよう!GitHub Copilot × システムプロンプトの基本では、PRテンプレートに指示を埋め込む方法を紹介しました。当時は copilot-instructions.md がCode Reviewに反映されなかったため、PRテンプレートを使う一時的な方法でした。
2025年6月以降、状況が変わりました。 現在は正式な設定ファイルでCode Reviewへの指示が可能です。
結論: 設定ファイル一覧
Code Reviewに指示を与える方法は3種類あります。
| 方法 | ファイル | 特徴 |
|---|---|---|
| 全体共通 | .github/copilot-instructions.md | すべてのリクエストに適用 |
| ファイル別 | .github/instructions/*.instructions.md | applyToで対象を限定 |
| Review専用 | 上記 + excludeAgent: "coding-agent" | Code Reviewのみに適用 |
ポイント: excludeAgent: "coding-agent" を指定すると、Copilot ChatやCoding Agentには適用されず、Code Reviewだけに適用されます。
Code Reviewが参照するデータソース
公式ドキュメント「Responsible use of GitHub Copilot code review」で確認できる参照対象は以下の通りです。
| 参照する | 公式記載 | 備考 |
|---|---|---|
| Code changes (diff) | あり | |
.github/copilot-instructions.md | あり | |
.github/instructions/*.instructions.md | あり | |
| Repository context(ソースファイル、ディレクトリ構造) | あり | |
| PR title | あり | Responsible useページで明記 |
| PR body (description) | あり | Responsible useページで明記 |
| コミットメッセージ | 記載なし | 参照されない可能性が高い |
公式ドキュメントには以下の記載があります:
“The code changes are combined with other relevant, contextual information (for example, the pull request’s title and body on GitHub), and any custom instructions that have been defined, to form a prompt”
PR title/bodyはレビューのコンテキストとして参照されます。一方、コミットメッセージについては言及がなく、参照されない可能性が高いです。
レビュー観点を確実に伝えたい場合は、以下を併用するのがおすすめです:
- PR description: 変更の背景や意図を記述(Copilotが参照)
*.instructions.md: 恒久的なレビュールールを定義
変更の歴史
Code Reviewのカスタム指示機能は段階的に拡張されてきました。
| 日付 | 変更内容 |
|---|---|
| 2025年6月13日 | copilot-instructions.md がCode Reviewに適用開始 |
| 2025年9月3日 | applyTo によるパス別指示をサポート |
| 2025年11月12日 | excludeAgent でエージェント別の適用制御を追加 |
2025年5月時点の過去記事で紹介したPRテンプレート方式は、正式機能が整備される前の暫定的な方法でした。
設定ファイルの実例
配置場所
Code Review用の指示ファイルは以下のディレクトリに配置します。
リポジトリルート/
└── .github/
└── instructions/
└── review.instructions.md ← ここに作成
.github/instructions/ ディレクトリが存在しない場合は作成してください。ファイル名は *.instructions.md の形式であれば任意です。
実際のファイル内容
ファイル: .github/instructions/review.instructions.md
---
applyTo: "**/*.py"
excludeAgent: "coding-agent"
description: "Python PR Review専用ガイドライン - Code Reviewのみに適用"
---
# Python Code Review Guidelines
## 出力形式
- **日本語で出力してください**
- 問題の重要度を明記してください
- Critical: 必ず修正が必要(セキュリティ、データ損失リスク)
- High: 修正を強く推奨(バグ、パフォーマンス問題)
- Medium: 修正を推奨(コード品質、保守性)
- Low: 改善提案(スタイル、軽微な改善)
## 必須チェック項目
### Critical
- ハードコードされた秘密情報(APIキー、パスワード)
- SQLインジェクション、コマンドインジェクションの可能性
### High
- 型ヒントの欠如
- bare except(`except:`)の使用
- ミュータブルなデフォルト引数
### Medium
- docstringの欠如
- 深すぎるネスト(3レベル以上)
## レビュー対象外
- `print()`文のデバッグ用使用(開発中)
- `# TODO:` コメント
フロントマターの解説:
applyTo: "**/*.py"→ Pythonファイルにのみ適用excludeAgent: "coding-agent"→ Code Reviewにのみ適用(Copilot Chatには適用されない)
検証結果
実際にこの設定でCode Reviewを実行した結果を紹介します。
検証用コード
意図的に問題を含むPythonファイルを作成しました。
# 問題1: ハードコードされたAPIキー
API_KEY = "sk-1234567890abcdef"
# 問題2: bare except
def fetch_content(url):
try:
import urllib.request
return urllib.request.urlopen(url).read()
except:
return None
# 問題3: ミュータブルなデフォルト引数
def add_item(item, items=[]):
items.append(item)
return items
# 問題4: docstringなし、型ヒントなし
def calculate_total(prices, tax_rate):
return sum(prices) * (1 + tax_rate)
Copilotのレビューコメント(抜粋)
| 重要度 | 検出内容 | 行 |
|---|---|---|
| Critical | ハードコードされた秘密情報 – APIキーがソースコードに直接記述 | L37 |
| High | bare exceptの使用 – 具体的な例外型を指定してください | L26 |
| High | ミュータブルなデフォルト引数 – Noneをデフォルト値に | L41 |
| Medium | docstringと型ヒントの欠如 | L31 |
結果: 指示通り日本語で出力され、重要度も正しく表記されました。

推奨ファイル構成
.github/
├── copilot-instructions.md # 共通ルール(全リクエストに適用)
└── instructions/
├── python.instructions.md # Python編集時に自動適用
└── review.instructions.md # Code Review専用(excludeAgent使用)
copilot-instructions.md には共通ルール(言語、フォーマット等)を、review.instructions.md にはCode Review固有の観点を記述することで、役割を分離できます。
複数instructionsファイルの挙動
複数の *.instructions.md が同一ファイルにマッチする場合、すべてが結合されてCopilotに提供されます。
優先順位
| 優先度 | 種類 |
|---|---|
| 1(最高) | Personal instructions(ユーザー個人設定) |
| 2 | Repository instructions(リポジトリ配下) |
| 3(最低) | Organization instructions(組織設定) |
注意点:
- 優先度が高い指示が「上書き」するのではなく、すべてが結合される
- 競合する指示は避けるべき(結果が非決定的になる)
- 同じ内容を複数ファイルに書かない(結合されて冗長になる)
PR固有の指示を追加したい場合
「このPRだけセキュリティ重視でレビューしたい」といった場合の対応方法です。
推奨される方法: 一時的なinstructionsファイル
<!-- .github/instructions/security-focus.instructions.md -->
---
applyTo: "**/*"
excludeAgent: "coding-agent"
---
# このPR限定: セキュリティ重視レビュー
以下の観点を最優先でチェックしてください:
- 認証・認可の欠陥
- 入力検証の不備
- 機密情報の露出
レビュー後にこのファイルを削除またはrevertすれば、一時的な観点追加が可能です。
過去の方法(現在は補助的に使用可能)
PRテンプレートやPR説明文への指示埋め込みは、公式ドキュメント「Responsible use of GitHub Copilot code review」でPR title/bodyが参照されることが確認されています。
ただし、以下の理由から *.instructions.md との併用を推奨します:
- 恒久的なルール:
*.instructions.mdに記述(毎回のPRで自動適用) - PR固有の観点: PR descriptionに記述(そのPRだけに適用)
PR descriptionはレビュアー(人間)にも読まれるため、Copilot専用の指示は *.instructions.md に分離する方が運用しやすいです。
まとめ
- 2025年6月以降、Code Reviewは
copilot-instructions.mdと*.instructions.mdを参照するようになった excludeAgent: "coding-agent"でCode Review専用の指示が設定可能- 複数のinstructionsファイルはすべて結合される(上書きではない)
過去記事で紹介したPRテンプレート方式から、正式な設定ファイル方式に移行することをおすすめします。
参考リンク
公式ドキュメント
- Using GitHub Copilot code review
- Adding custom instructions for GitHub Copilot
- Master your instructions files – GitHub Blog
関連記事
- GitHub Copilot設定5種を網羅!生産性を最大化する使い分け術
- Claude Code→GitHub Copilot移行で使える設定ファイル6つの対応表
- PRレビューを自動化しよう!GitHub Copilot × システムプロンプトの基本
ここまで読んでいただき、ありがとうございました!
ご覧いただきありがとうございます!


