【GitHub Copilot Review】日本語化の設定方法とプロンプトの書き方
はじめに
GitHub CopilotのAIコードレビュー機能は非常に便利ですが、デフォルトでは英語でレビューが行われてしまいます。
ページ全体を翻訳すると、コード部分も翻訳されてしまい、非常に見にくくなります。
本記事では、GitHub Copilotのコードレビューを日本語化し、さらに効果的なレビューを受けるための設定方法を書いていこうと思います。
GitHub Copilot コードレビューとは
GitHub Copilotのコードレビュー機能を使用すると、PRに対してAIがコードレビューを実施してくれます。セキュリティの問題、パフォーマンスの改善点、コードの可読性など、様々な観点からフィードバックを提供してくれる便利な機能です。
日本語化の設定方法
.github/copilot-instructions.md
ファイルを作成
リポジトリのルートディレクトリに.github
フォルダを作成し、その中にcopilot-instructions.md
ファイルを作成します。
your-repository/
├── .github/
│ └── copilot-instructions.md
├── src/
└── README.md
基本的な日本語化設定
以下の内容をcopilot-instructions.md
に記述します
(プロンプトの例を記載しています。)
## 共通設定
- 日本語で回答してください
- 簡潔で分かりやすい説明を心がけてください
- ベストプラクティスの具体例を提示してください
- 学習リソースの提案を積極的に行ってください
- スケーラビリティとパフォーマンスを重点的にチェックしてください
## コードレビュー専用指示
### レビューの基本方針
以下のプレフィックスを使用してレビューコメントを分類してください:
- `[must]` - 必須修正項目(セキュリティ、バグ、重大な設計問題)
- `[recommend]` - 推奨修正項目(パフォーマンス、可読性の大幅改善)
- `[nits]` - 軽微な指摘(コードスタイル、タイポ等)
### 重点チェック項目
1. **セキュリティ**: SQLインジェクション、XSS、認証・認可の不備
2. **パフォーマンス**: N+1問題、不要なループ、メモリリーク
3. **可読性**: 変数名、関数名、コメントの適切性
4. **保守性**: DRY原則、SOLID原則の遵守
5. **テスト**: テストケースの網羅性、エッジケースの考慮
6. **言語固有のベストプラクティス**: 各言語の推奨パターンに準拠しているか、非推奨・廃止予定のAPIや構文を使用していないかチェック
プロジェクト特化型のカスタマイズ
Web開発プロジェクト向け
### Web開発固有のチェック項目
- **フロントエンド**: アクセシビリティ、SEO対策、Core Web Vitalsへの影響
- **バックエンドAPI**: REST設計原則、適切なHTTPステータスコード、エラーハンドリング
- **データベース**: クエリ最適化、インデックス設計、データ整合性
モバイルアプリ開発向け
### モバイル開発固有のチェック項目
- **パフォーマンス**: バッテリー消費、メモリ使用量、レンダリング効率
- **ユーザビリティ**: タッチ操作の適切性、画面遷移の自然さ
- **互換性**: 異なるデバイスサイズ、OSバージョンへの対応
技術スタック別の設定例
JavaScript/TypeScript プロジェクト
### JavaScript/TypeScript 固有ルール
- 非推奨な`var`の使用から`let/const`への変更を提案
- TypeScriptでの`any`型の乱用をチェック
- async/awaitの適切な使用
- 型安全性の確保
Next.js プロジェクト
### Next.js 固有ルール
- Next.jsの最新機能とベストプラクティスの確認
- App RouterとPages Routerの適切な使い分け
- 静的生成(SSG)と動的生成(SSR)とハイブリッド手法(ISR)等の最適な選択
- Core Web Vitalsを考慮したパフォーマンス最適化
- SEO対策の実装確認
- セキュリティヘッダーの設定確認
- Bundle sizeとCode Splittingの最適化
- Server ComponentsとClient Componentsの適切な使い分け
- 環境変数の安全な取り扱い(NEXT_PUBLIC_プレフィックスの適切な使用)
Next.jsの規約やベストプラクティスに沿っていない箇所があれば、最新のドキュメントに基づいた修正案を提示してください。
Python プロジェクト
### Python 固有ルール
- PEP8準拠の確認
- f-stringの使用推奨(古いformat方法からの移行)
- 型ヒントの活用
- 例外処理の適切な実装
Ruby on Rails プロジェクト
### Ruby on Rails 固有ルール
- Rubyの慣用的な書き方(idiomatic Ruby)の確認
- ActiveRecordのN+1問題の検出と`includes`や`joins`の適切な使用
- CSRF対策とセキュリティベストプラクティス
- Railsの命名規則とRESTfulな設計の遵守
- nilを考慮する必要がある箇所での安全ナビゲーション演算子(&.)の使用確認
- 非推奨なRailsメソッドの使用チェック
- データベースマイグレーションの安全性確認
Railsの規約に沿っていない箇所があれば、具体的な修正案とともに指摘してください。
設定の効果を確認する方法
1. テストプルリクエストの作成
設定後、プルリクエストを作成して、日本語でのレビューが機能するかテストします。
2. レビューコメントの確認
まとめ
今まで、.github/PULL_REQUEST_TEMPLATE.md
に日本語化設定を書いていましたが、PRのテンプレートに常にコメントアウトの日本語化の指示が記載されるのがちょっと気になっていました。
Copilot Reviewの際にも専用のファイルcopilot-instructions.md
が使えるとのことで、試してみたらPRテンプレートのコメントアウトの記載もなくなり、レビューへの詳細な指示がカスタマイズできて快適になりました。
よりよいプロンプトを模索していきたいですね。
【参考】
Copilot code review now supports the same custom instructions used by Copilot Chat and coding agent—unlocking personalized, consistent AI reviews across your workflow.
(日本語訳)
Copilot コードレビューでは、Copilot Chat およびコーディング エージェントで使用されるものと同じカスタム指示がサポートされるようになりました。これにより、ワークフロー全体でパーソナライズされた一貫性のある AI レビューが可能になります。
Discussion