はじめに
コードを書き終わったあと、そのままプルリクを出していないだろうか。
レビュアーからの指摘を減らす方法として、「Claude Codeにレビューさせてから出す」という手法が個人的にかなり効いている。さらに一歩進めると、「PR作成前に自動でAIチェックを走らせる仕組み」を組み込むことで、レビュー前の品質を安定させられる。
この記事では、CLAUDE.md と Skills を使って 2段構えのAIレビュー自動化 を実装する方法を紹介する。
2段構えとは
| ステップ | タイミング | 目的 |
|---|---|---|
| 第1段(CLAUDE.md) | 常時 | バグ・型エラー・セキュリティ的なコード問題の検出 |
| 第2段(Skills) | PRを出す前(手動) | 設計意図・コメントの欠落・レビュアーが疑問に思う箇所 |
第1段は CLAUDE.md に「常時ルール」として書いておく。第2段は Skills で「PR前チェック」として手動トリガーする。
第1段: CLAUDE.md による常時ルール
CLAUDE.md に以下のようなルールを書いておくと、Claude Code がコード生成・変更時に自律的にチェックするようになる。
# CLAUDE.md(抜粋)
## コード変更時の必須確認
変更後、必ず以下を確認してから次に進む:
- TypeScript の型エラーがないこと(`tsc --noEmit`)
- テストが通ること(`npm run test`)
- console.log に秘密情報が含まれていないこと
- SQL インジェクション・XSS のリスクがないこと
これをコンテキストに入れておくだけで、Claude Code が自分でチェックを走らせるようになる。明示的に「チェックして」と言わなくても、CLAUDE.md のルールが常に適用されるのが強みだ。
第2段: PR前チェック Skill の実装
次のパスに skill を作る:
.claude/skills/review-before-pr/skill.md
# review-before-pr スキル
## 概要
PRを出す前に Claude Code が差分をレビューし、指摘事項をリストアップする。
## 実行方法
「PR前チェックして」「レビューして」と話しかける
## 手順
1. `git diff main` を実行して差分を取得
2. 以下の観点でチェック
### チェック観点
1. **可読性**: 変数名・関数名がわかりやすいか。長すぎる関数(50行超)がないか
2. **コメント**: 「なぜそう実装したか」が不明瞭な箇所にコメントがあるか
3. **エラーハンドリング**: 外部APIや非同期処理でエラーケースが考慮されているか
4. **セキュリティ**: 入力値検証、認証チェックが漏れていないか
5. **テスト**: ハッピーパス以外のケースが考慮されているか
## 出力フォーマット
指摘をリスト形式で出力。3段階で分類する:
- 🔴 **要修正**: バグ・セキュリティ → 必ず直してからPRを出す
- 🟡 **確認推奨**: 設計意図が不明 → コメントかPR説明欄に書く
- 🟢 **提案**: リファクタ案 → 別チケットに積んでよい
実際の運用フロー
# 作業ブランチで変更が完了したら
git add -p # 差分を確認しながらステージング
git commit -m "..."
ここで Claude Code に「PR前チェックして」と話しかける。
# Claude Code からの出力例
## PR前チェック結果
🔴 要修正
- `src/api/users.ts:42` — ユーザー入力をそのままSQLに渡している。プリペアドステートメントに変更を
🟡 確認推奨
- `src/components/Form.tsx:18` — `handleSubmit` が何をやっているか不明。コメントか PR 説明欄に追記を
🟢 提案
- `src/utils/validation.ts` — 同じ検証ロジックが3箇所に散らばっている。共通関数化できる(別タスクで検討)
対応方針は明確だ:
- 🔴 は絶対に直してからPRを出す
- 🟡 はコメントかPR本文で補足する
- 🟢 は別チケットに積んでスルーしてよい
「全部直す必要はない」のが重要で、提案まで全対応しようとすると時間がかかりすぎる。
CLAUDE.md との役割分担
| タイミング | チェック内容 | トリガー | |
|---|---|---|---|
| CLAUDE.md ルール | コード変更時・常時 | 型・テスト・セキュリティ(明らかなNG) | 自動 |
| review-before-pr Skill | PR作成前 | 可読性・設計・コメント(品質向上) | 手動 |
この2段で「出してはいけないコード」と「出す前に改善できるコード」を分けて処理できる。
まとめ
- 第1段(CLAUDE.md): 型エラー・セキュリティ系を常時チェック
- 第2段(Skills): 可読性・設計・コメントをPR前に手動チェック
両方を組み合わせることで、「レビュアーに明らかなものを指摘させない」運用が実現できる。レビューでの議論を「設計判断」に集中させられるようになった。
未経験者向けの講座を運営しています
未経験から Next.js + Supabase + Claude Code で Webアプリを作って公開するまで を、全20セッションで体系化した教材です。Claude Code を学習パートナーにする CLAUDE.md / Skills 設計までセットで含みます。
- 無料体験版(git clone してすぐ動く・最初の数セッション分・⭐ Star もよろしくお願いします)→ https://github.com/ayies128/next-ai-camp-trial
- 教材完全版+月5,500円〜のCTOメンタリング(全20セッション+チャット質問し放題)→ https://menta.work/plan/20251?ref=qiita
- YouTube『AIエンジニア情報局』(AI×開発ニュースを1本5分でキャッチアップできる別運営チャンネル・無料)→ https://www.youtube.com/channel/UC1rXVD9WYsQPQEWZyd-A1KA/?ref=qiita
※ Qiita 読者の方には易しすぎる内容なので、初心者の知り合いへの紹介や社内研修の参考としてどうぞ。