ChatGPTでコードレビューを自動化する|プロンプト設計で精度を上げるコツ
こんにちは!
今日は「ChatGPTでコードレビューを自動化する方法」についてお話しします。
なぜAIのコードレビューは外れやすいのか
僕も最初、ChatGPTにコードを投げて「レビューしてください」と言ったら、めっちゃズレた指摘をされたことがあります。
例えば、プロジェクト固有の命名規則を守ってないって指摘されたり、実は既に修正された古いバグを指摘されたり……。
その時に気づいたんですが、AIは「文脈がない」んですよ。
現場でよく見るのは、後輩がAIのレビュー結果をそのまま受け入れてしまうケースです。
「AIが言ってるから正しいだろう」と思い込んでしまう。
ほんま、これが一番危ないです。
でも逆に考えると、この「文脈がない」ってのは設計の問題なんです。
つまり、AIに正しい文脈を教えてあげれば、実は結構いい仕事をしてくれるんですよ。
それが「プロンプト設計」というわけです。
プロンプト設計の3つのポイント
1. プロジェクトのルールを明記する
一番大事なのは、AIに「あなたたちのプロジェクトではこういうルールで開発してます」ということを教えることです。
具体的には、こんな情報を渡すといいですよ:
- フレームワークのバージョン(例: React 18.x)
- 命名規則(例: コンポーネント名はPascalCase)
- 使用している設定やツール(例: ESLint、Prettier、TypeScript)
- プロジェクト固有のルール(例: 関数は50行以下にする)
これを最初に教えておくだけで、AIの指摘の精度がめっちゃ上がります。
2. レビューの焦点を絞る
「このコード全体を見てください」は絶対にダメです。
AIは万能じゃないので、何もかも見ろと言われると、本当に重要な部分を見落とすことがあります。
代わりに、こんな感じで焦点を絞ってあげるといいですよ:
- パフォーマンスの観点からレビュー
- セキュリティリスクの観点からレビュー
- コードの可読性と保守性の観点からレビュー
- アクセシビリティの観点からレビュー
同じコードでも、視点を変えて複数回レビューしてもらう方が、一度に全部見てもらうより、ずっと有効です。
3. 過去のコード例を参考資料として提示する
これは僕が最近発見した、超便利なテクニックです。
プロジェクト内の「良いコード例」を一つ、AIに見せておくんです。
「このコンポーネントは我々のプロジェクトで『良い例』です。このスタイルに合わせてコードを評価してください」という指示をするだけで、AIが学習してくれます。
ほんま、これだけで指摘の質が変わりますよ。
実際の活用例とテンプレート
じゃあ、実際にどんなプロンプトを使うのか、テンプレートを紹介しますね。
以下は、React/TypeScriptプロジェクトでのコードレビュー用のプロンプトです:
あなたは経験豊富なReactエンジニアです。
我々のプロジェクトは以下のルールで開発しています:
【プロジェクト情報】
– フレームワーク: React 18.x + TypeScript
– コンポーネント命名: PascalCase
– 関数命名: camelCase
– 最大行数: 関数は50行以下、コンポーネントは100行以下
– 状態管理: Jotai を使用
– スタイル: Tailwind CSS
【良い例として参照するコンポーネント】
[ここに良いコード例を貼り付ける]
以下のコードを「パフォーマンス」の観点でレビューしてください。
無駄なre-renderがないか、useMemoやuseCallbackが適切に使われているか、
バンドルサイズに影響するimportがないか、を重点的に確認してください。
[ここにレビュー対象のコードを貼り付ける]
このテンプレートのポイントは:
- AIに「あなたは何者か」を定義している
- プロジェクトの具体的なルールを教えている
- 良い例を参考資料として示している
- レビューの焦点を「パフォーマンス」に絞っている
このくらい具体的に書くと、AIの回答の質がぐっと上がります。
試してみるとわかりますよ。
ちなみに、同じコードに対して別のプロンプトで「セキュリティ」の観点からレビューしてもらうとか、「アクセシビリティ」の観点からレビューしてもらうとか、視点を変えて何度も実行すると、人間がやるコードレビューの品質に近づきます。
活用シーン別のコツ
新しい後輩が書いたコード
新人教育として使うときは、「指摘するだけ」ではなく「修正案も一緒に示してください」と指示するといいですよ。
学習効果が高まります。
リファクタリング前の診断
古いコードを改善したいときは、「このコードの問題点を5個挙げてください。ただし、機能は変わらないものだけ」という制限を付けると、本当に重要な改善点だけが挙がります。
デプロイ前の最終確認
本番前には「セキュリティリスク」と「パフォーマンスボトルネック」の2つの視点でレビューしてもらう。
これだけで、結構な事故が防げます。
まとめ
ChatGPTのコードレビュー機能は、使い方次第で本当に強力な武器になります。
ただし「何もかも任せる」のではなく、「正しい文脈を教えて、焦点を絞って使う」というのが重要なんです。
僕も最初は「AIは完璧だ」と思い込んでいました。
でも現場で何度も失敗して気づいたのは、「AIは指示の品質によって、その価値が決まる」ということです。
プロンプト設計、つまり「AIに何をしてほしいのかを正確に伝える力」が、これからのエンジニアに必要なスキルなん