注目イベント!
9/1より夏のリレー連載企画をスタートしました!
毎年恒例夏のリレー連載。 今年は9月から開催です。
詳細はこちらから!
event banner

Copilotのプルリクレビューのすすめ — カスタム命令と日本語化の実践

| 3 min read
Author: kenta-ishihara kenta-ishiharaの画像

この記事は夏のリレー連載2025 10日目の記事です。

はじめに

#

現場で GitHub + GitHub Copilot を使っていて、最近はプルリクエストのレビューをセルフチェックも兼ねて Copilot に依頼しています。
結構的確にコメントしてくれるのですが、デフォルトでは英語で返ってくるため、日本語で返してほしいと思い調べ始めたのが本記事のきっかけです。

GitHub Copilotにレビューをしてもらおう

#

GitHub Copilot を使っていていたら、ぜひ試してほしいのが Copilot のレビュー機能です。
やり方としては以下になります。(詳細は公式ドキュメント参照)

  1. GitHub.comでプルリクエストを作成するか、既存のプルリクエストに移動します。
  2. Reviewers メニューを開き、Copilot を選択します。
  3. Copilotがプルリクエストをレビューするのを待ちます(通常30秒以内)。
  4. Copilotのコメントを確認します。コメントは通常のレビューコメントと同様に扱えます(リアクションを追加、コメント、解決、非表示など)。

実際に使ってみると、バグやリファクタ箇所をかなり的確に指摘してくれる点が印象的でした。
開発者の視点から見ても、有用なレビューを得られるのはありがたい限りです。

ただし、どうしても気になるのが基本的に英語で返答してくる点。そこでカスタム命令を試してみることにしました。

カスタム命令を追加

#

GitHub では「カスタム命令」という仕組みがあり、マークダウン形式の自然言語で Copilot に指示を与えられます。
(詳細は公式ドキュメント参照)
今回はリポジトリ全体に適用するため、以下のファイルを作成しました。

.github/copilot-instructions.md

記載内容の一例は以下のとおりです。

## 基本方針
- 生成するすべてのコメント・説明・回答・レビューは「日本語」で記述してください。
- 可能な限り読みやすく、簡潔で具体的な提案を行ってください。

また今回は上記に合わせて、以下コーディング規約的な要素を追記してみます。
以下はES2015(ES6)let / const に関するルール例です。

# JavaScript
---
## 変数宣言でvarではなくconstやletを使用しているか
再代入がない変数はconst、再代入がある変数はletで宣言しましょう
varだと同じ変数名で再宣言できてしまうがletはできない
(変数の二重定義や、意図しない再代入の防止)

このファイルを push して Copilot にレビューを依頼したところ、想定通りコーディング規約に沿ったコメントが返ってきました。
Image from Gyazo

もしプロジェクト内で既にマークダウン形式でコーディング規約を管理しているなら、そのままコピペして活用するのも有効だと感じました。
(Excelで規約をまとめている現場もありますが、生成AIとの相性を考えると今後マークダウン形式を推していきたいところ)

カスタム命令を記載する上での注意点

#

以下のような指示では意図した結果が得られない場合があります。

  1. 外部リソース(URL やファイルパス)を参照した指示はできません。
悪い例:
- このリポジトリのコードを理解するためには、以下のURLを読んでください:
  https://example.com/internal-specs

- `/docs/design/architecture.md`を参照しながら提案をしてください
  1. 特定のスタイルで回答するという指示はできません。
悪い例:
- 明るくフレンドリーな口調で回答してください

※ただし「語尾を〜なのだにしてください」のように単純な指定は反映されたケースもありました。

  1. 回答の長さや形式を強制はできません。
悪い例:
- 必ず1000文字以内で回答してください
- 最後に五・七・五でまとめてください

上記例についても今後の言語モデルの進化に合わせて、今できないことができるようになる未来もあるかと思ってます。(今後に期待)

万事解決…かと思いきや

#

作成したカスタム命令を反映させて新しいプルリクを作ったところ、またしても英語でレビューが返ってきました。
何回かプルリクエストを出していると、英語で返してくるときもあれば、日本語で返してくるときもあり中々安定しない印象でした。
(コメント内容を見るとカスタム命令自体は参照している様子ではありますが)
今後生成AIと付き合っていく上で、「必ず言うことを聞いてくれる」という思いを捨て、ある程度の曖昧さを許容することがユーザーに求められているのかもしれません。(諦め)

まとめ

#
  • GitHub + GitHub Copilot を使っているなら、ぜひレビュー機能を試してみよう
  • .github/copilot-instructions.mdにカスタム命令を追加することで、レビューの指針を指定できる(規約をマークダウンで書いておくと活用しやすい)
  • ただし、必ずしも指示どおりに動くわけではないため、生成AI特有の曖昧さを受け入れる心構えが大切

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。