はじめに

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を「もう一人のレビュワー」として使う方法もあります。

Comment
@Reviewer: この設計意図で妥当か、念のためChatGPTでも再確認してみたところ、ほぼ同様の設計方針が提示されました。  
ただし処理分岐の整理については指摘があったため、その点を見直しています。

3. ChatGPTコメントを元にレビュー議論を促進する

Comment
@Reviewer: ChatGPTの提案では、エラー処理の分岐を関数として抽出する形が推奨されていました。  
チーム内で統一した書き方があれば、それに揃える方向で調整したいです。

“参考提案”として扱うことで、主観に頼らないレビュー会話の起点にもなります。

まとめ:ChatGPTはレビュー“編集者”の助手になる

ChatGPTはコードレビューを完全に代替するものではありません。
でも、レビューアーの判断を支える情報をくれるアシスタントとしては、非常に強力な存在です。

  • コメントの書き出しに困ったとき
  • 設計方針が曖昧に感じたとき
  • 自分の指摘が過剰でないか確かめたいとき

そんなときに「ちょっとChatGPTに聞いてみる」という選択肢があることで、レビューの精度も会話も変わってきます。

うまくプロンプトを設計すれば、レビューアーが“孤立しないレビュー”ができるようになります。
ChatGPTは、コードだけじゃなく、レビューという行為そのものを支援するツールとして活用できるんですね。