ども!AI関連のブログを頑張って執筆中の龍ちゃんです。最近は、設計から開発まで幅広い範囲でのAI活用をしています。一向に仕事がなくなる気配がないですね。AIが仕事を奪うのはいつになるのでしょうか。それまでは、活用して業務効率化していかないといけないですね。
さて!今回は「GitHub CopilotのPull Request(PR)レビューにシステムプロンプトを与える」という内容になっています。GitHub Copilotをレビュワーとして活用している方の中に以下のような課題感を抱えた方がいれば、興味のある内容だと思います。
- 英文でのレビューを日本語化したい
- CopilotのPRの観点があいまい
- コードレビューの品質を一定化したい
GitHub Copilotのレビューを向上させる
GitHub Copilot on VSCodeでシステムプロンプトを追加する
「GitHub Copilotにシステムプロンプトを挿入する方法」についてはこちらで触れています。こちらでは、.github/copilot-instructions.md
というファイルを作成して自然言語でシステムプロンプトを設定しています。残念ながら、上記の方法ではPR発行時に読み込んでくれません。
GitHub Copilotにシステムプロンプトを追加する
GitHub Copilot PRレビューにシステムプロンプトを組み込む方法としては、PRに直接記述する必要があります。
# 実施事項
<!-- ここに人間向きのPRを書く -->
<!-- for GitHub Copilot review rule -->
日本語で記載してください。(Copilot向けの指示)
<!-- for GitHub Copilot review rule-->
PRの観点が一定の場合は、テンプレートとしてリポジトリ単位で保存しておくと効果的です。PRのテンプレートを作成する方法としては複数あります。
- リポジトリのルート直下に
pull_request_template.md
を配置 docs
ファイル直下にpull_request_template.md
を配置.github
ファイル直下にpull_request_template.md
を配置
docs
と.github
ファイルの場合は、PULL_REQUEST_TEMPLATE
というファイルを生成することで複数のテンプレートを作成することができます。
copilot-instructions
とpull_request_template
の違い
これらの2つのファイルは、それぞれ異なる役割と特徴を持っていますが、上手く組み合わせることで効果的なPRレビュー環境を構築することができます。以下の表で違いについてまとめます。
項目 | .github/copilot-instructions.md | pull_request_template.md |
---|---|---|
用途 | Copilot(AI)に対するシステムプロンプト・カスタム指示を設定し、PR作成やCopilot Chatなどで自動的に反映させる | PR作成時の説明・チェックリスト・レビュールールなどを人間・AIの両方に提示するテンプレート |
主な対象 | Copilot(AI) | PR作成者・レビュアー・Copilot(AI) |
記述場所 | .github/copilot-instructions.md | .github/pull_request_template.md (または他の指定ディレクトリ) |
反映タイミング | Copilot Copilotの応答時 (Cpilot Chat, inline Chat …) | PR作成時にPR本文へ自動挿入される |
人間への見やすさ | 人間は通常直接見ない | PR本文に表示されるため人間も確認可能 |
運用の柔軟性 | リポジトリ全体に一括でAI指示を適用できる | 複数テンプレートや内容のカスタマイズが容易 |
主なメリット | AI応答の一貫性・自動化 | PR作成の標準化・レビュープロセスの明確化・人間とAI両方に伝達可能 |
主なデメリット | 人間には直接見えない・AIが必ずしも全て反映するとは限らない | 指示がPR本文に残るためノイズになる場合も・AIへの伝達は工夫が必要 |
GitHub Copilot PR用プロンプト備忘録
こちらはまだ検証中の内容になります。運用を進めてみて、進展があればブログにてまとめて行きます。
コメントは絶対日本語でほしい
これは、マストで入れておきたい内容です。別に翻訳アプリを使うので、読めなくはないのです。ただ圧倒的に気分が駄々下がりになるので、絶対日本語化はしておきたいです。
絶対日本語で出力してください。
無視しておきたいことを「禁止事項」として追記
これは、開発時における不満です。Typescript環境でconsole.log
を一生注意されるんです。検証時には残しておきたいですが、気分的にコンソールでトークン数が消費されるの気持ち的にげんなりです。
そのため、不要な指摘を減らすために以下のようなプロンプトを追加しています。
以下の点については、レビューの対象外としてください:
- console.logの使用
- 開発環境用の一時的なコメントアウト
- デバッグ用の一時的な変数
このように明示的に除外項目を指定することで、より効率的なレビューが可能になります。
もちろん、最終的なコードには含まれていては困るので改めてレビュー観点への追加対応を行う必要はあります。
おわり
今回は、GitHub CopilotのPRレビューをより効果的に活用するための方法として、システムプロンプトの追加方法とPRテンプレートの活用について紹介しました。AIと人間の両方に役立つ指示を設定することで、レビューの品質向上と一貫性を実現できます。これらのツールを上手く組み合わせることで、より効率的な開発プロセスを構築していきましょう。