ChatGPTをレビュー支援に活用する:プロンプト設計と文脈のコツ
はじめに
ChatGPTをレビュー支援に使ってみたこと、ありますか?
レビューアーにとっては「事前にコードの意図を整理したい」「設計上の疑問点を言語化したい」「指摘の裏付けを確認したい」など、“一人で悩まずに済ませたいタイミング”ってけっこうあると思うんですよね。
そんなときに、ChatGPTをうまく使えば、
「レビュー判断の材料」や「コメントの下書き」を出してくれる強力な相棒になります。
ただし、その力を引き出すには、プロンプトの設計と文脈の与え方がすべてです。
この記事では、ChatGPTをレビューに使う上での実践的なコツと落とし穴を、レビューアー視点で解説します。
ChatGPTはレビューアーの代わりにはならない
最初に大前提から。
ChatGPTはコードを読んで「正しいかどうかを評価してくれる」わけではありません。
彼(?)はあくまで、「質問に対して、過去の知識や文脈からもっともらしい答えを返すAI」です。
なので、
- プロンプトにレビュー観点がなければスルーされる
- 文脈が曖昧だと汎用的な話しかしない
- 仕様や制約条件を知らない
といった“思ったより頭が良くない”場面も多々あります。
でも逆に言えば、レビューアー側がうまく誘導すれば、
「このコードの懸念点をざっと洗いたい」といった目的にはちゃんと応えてくれます。
どういう場面で使うと効果的か?
レビュー中にChatGPTを活用できるのは、だいたい以下のようなケースです。
1. 自分の指摘が妥当か確認したいとき
この関数で使われている retryCount の扱いが不安定に見えるのですが、一般的にこういう場合はどう設計すべきか?
→ ChatGPTは「状態の再試行は関数の外で管理すべきかどうか」などの設計観点を出してくれます。
自分の直感に対する裏付けを取りたいときに便利です。
2. コメントを丁寧に書きたいけど時間がないとき
以下のコードの問題点をレビューコメントとして書いてください。
・問題:nullチェックが漏れている
・想定読者:中堅エンジニア
・トーン:丁寧で協調的
→ わかりやすく、無用に攻撃的にならないコメントを生成してくれます。
3. 「このコード、何がしたいの?」と感じたとき
設計意図が読み取れないときに、要約してもらう使い方です。
この関数の目的を自然言語で説明してください。
たまに微妙な要約もありますが、レビュー観点を切り替える手がかりになります。
プロンプト設計の実践ルール
ChatGPTにレビューっぽい出力をさせるには、プロンプトの書き方が決定的に重要です。
以下のような構造で投げると、実用性の高い出力が得られやすいです。
構造テンプレート
あなたはソフトウェアエンジニアです。以下のコードについて、[目的]の観点からレビューしてください。
[コードブロック]
- 想定している設計意図:
- 想定している使用条件:
- 注目してほしいポイント:
例:リファクタ観点で指摘を引き出す
あなたはソフトウェアエンジニアです。以下のコードについて、処理の簡潔性と読みやすさの観点からレビューしてください。
```ts
function isAdmin(user) {
if (user && user.role && user.role === 'admin') {
return true;
}
return false;
}
- 想定している設計意図:ユーザーが管理者かどうかを判定したい
- 注目してほしいポイント:ネストが深くなっている部分
ChatGPTの出力:
> この関数はネストが深くなっており、三項演算子やOptional Chaining(?.)を使うことで簡潔に表現できます。以下のように書き換えると可読性が上がります:
>
> ```ts
> return user?.role === 'admin';
> ```
このように、**具体的に注目ポイントを指示すると、実務で使えるレベルのコメントが得られます。**
## よくある失敗とその対策
### 1. 「このコードをレビューしてください」だけだと役に立たない
→ レビュー観点がないと、ChatGPTは「問題なさそうですね」と返して終わることが多いです。
### 2. 出力が浅すぎて参考にならない
→ コード量が少なすぎる or 前提条件を何も書いていないと、「初心者向け一般論」が返ってきがちです。
### 3. 正しくてもプロジェクトと文脈がズレてる
→ ChatGPTは**“一般的な正しさ”**を前提に出力します。
現場の運用ポリシーや制約があるなら、**その文脈をプロンプト内に明記しておく**必要があります。
## ChatGPTをレビュー体制に組み込むアイデア
### 1. PRテンプレートにプロンプトを埋め込む
```markdown
## レビュー観点(AI支援用)
- 目的:
- 変更の中心ロジック:
- 検討している設計方針:
こうしておけば、PR差分をChatGPTに貼るだけでレビュー補助が始められる状態になります。
2. ChatGPTをペアレビューの“相方”にする
自分がレビューアーであるとき、ChatGPTを「もう一人のレビュワー」として使う方法もあります。
@Reviewer: この設計意図で妥当か、念のためChatGPTでも再確認してみたところ、ほぼ同様の設計方針が提示されました。
ただし処理分岐の整理については指摘があったため、その点を見直しています。
3. ChatGPTコメントを元にレビュー議論を促進する
@Reviewer: ChatGPTの提案では、エラー処理の分岐を関数として抽出する形が推奨されていました。
チーム内で統一した書き方があれば、それに揃える方向で調整したいです。
“参考提案”として扱うことで、主観に頼らないレビュー会話の起点にもなります。
まとめ:ChatGPTはレビュー“編集者”の助手になる
ChatGPTはコードレビューを完全に代替するものではありません。
でも、レビューアーの判断を支える情報をくれるアシスタントとしては、非常に強力な存在です。
- コメントの書き出しに困ったとき
- 設計方針が曖昧に感じたとき
- 自分の指摘が過剰でないか確かめたいとき
そんなときに「ちょっとChatGPTに聞いてみる」という選択肢があることで、レビューの精度も会話も変わってきます。
うまくプロンプトを設計すれば、レビューアーが“孤立しないレビュー”ができるようになります。
ChatGPTは、コードだけじゃなく、レビューという行為そのものを支援するツールとして活用できるんですね。