はじめに
AI駆動の開発が一般化した現在、Claude CodeやGitHub Copilotなどのツールを活用することで、コードを書くスピードが劇的に向上しています。しかし、その結果として新たな課題が浮上してきました。
PRを出すスピードが速くなりすぎて、レビュー側が追いつかない。
この記事では、チームでこの課題に直面した際に導入した2つの対策について紹介します。
課題: PRレビューのボトルネック
AI支援により、開発者は想像を超えるスピードでPRを作成できるようになりました。しかし、レビュープロセスは従来のまま。結果として以下のような問題が発生していました。
- レビュー待ちのPRが溜まる - レビュー待ちのキューが長くなり、フィードバックが遅延
- コンテキストスイッチのコスト - 対象ブランチをチェックアウトするたびに、作業中の内容を中断
- AIとの並行作業ができない - レビュー中は同じworkspace上でClaude Codeに別作業を依頼できない
解決策1: Git Worktree Managerによる並行レビュー環境
Git Worktreeとは
Git Worktreeは、1つのリポジトリで複数の作業ディレクトリを持つことができるGitの機能です。これにより、異なるブランチを物理的に独立したディレクトリとして扱えます。
詳しくは以下の記事を参照してください。
導入前の悩み
従来のレビューフローでは、以下のような問題がありました。
# 従来のワークフロー
git checkout feature-branch-to-review # 現在の作業を中断
# レビュー作業...
git checkout feature-my-work # 元の作業に戻る
# 問題点:
# - チェックアウトのたびに現在の作業状態が変わる
# - レビュー中に別の作業ができない
# - Claude Codeに別タスクを依頼すると、レビュー対象のコードが変わってしまう
導入後のメリット
Git Worktreeを使うと、レビュー環境が完全に独立します。
これにより、以下が可能になります。
- 並行作業 - メインディレクトリでClaude Codeに開発を依頼しながら、別のVSCodeウィンドウでPRレビュー
- 独立した環境 - レビュー環境のClaude Codeセッションは完全に独立
- 即座の切り替え - 複数のPRを同時にレビュー可能
スクリプトによる自動化
手動でworktreeを作成するのは面倒なため、スクリプトで自動化しました。
実行イメージ:
PR番号を指定するだけで以下を自動実行するスクリプトです。
スクリプト全文
#!/bin/bash
# 使い方: bin/review-pr/setup <PR番号>
set -e
PR_NUMBER=$1
# 本体のリポジトリルートを取得
REPO_ROOT=$(git rev-parse --path-format=absolute --git-common-dir)
REPO_ROOT=$(dirname "$REPO_ROOT")
WORKTREES_BASE="${REPO_ROOT}.worktrees"
WORKTREE_PATH="${WORKTREES_BASE}/pr-${PR_NUMBER}"
mkdir -p "$WORKTREES_BASE"
# 既にworktreeが存在する場合はスキップ
if [ -d "${WORKTREE_PATH}" ]; then
echo "⚠️ worktree は既に存在します。既存のものを使用します。"
else
cd "$REPO_ROOT"
# ghコマンドでPRのブランチ名を取得
PR_BRANCH=$(gh pr view "$PR_NUMBER" --json headRefName -q .headRefName)
# PRブランチをフェッチしてworktreeを作成
git fetch origin "${PR_BRANCH}:${PR_BRANCH}" 2>/dev/null || git fetch origin "${PR_BRANCH}"
git worktree add "${WORKTREE_PATH}" "${PR_BRANCH}"
fi
# 新しいVS Codeウィンドウで開く
code -n "$WORKTREE_PATH"
echo "✅ セットアップ完了!"
echo "👉 Claude Codeを起動して /review-pr ${PR_NUMBER} を実行してください"
より便利に使う: エイリアス設定
.zshrc または .bashrc にエイリアスを追加すると、さらに高速化できます。
alias prr='bin/review-pr/setup'
使用例:
prr 123
クリーンアップ
レビュー完了後は、worktreeを削除して環境をクリーンに保ちます。
# 個別削除
git worktree remove ../example-repo.worktrees/pr-123
# 一括削除(すべてのpr-*を削除)
git worktree list | grep "\.worktrees/pr-" | awk '{print $1}' | xargs -I {} git worktree remove {}
解決策2: Claude Codeによる自動PRレビュー
人間がレビューする前に、まずClaude CodeにPRをレビューさせることで、レビューの質とスピードを向上させました。
Claude Code Commandによるレビューの自動化
.claude/commands/review-pr.md にレビューコマンドを定義することで、Claude Codeに /review-pr コマンド一つでPRレビューを実行させることができます。
AIレビューの仕組み
GitHubインラインコメントの自動投稿
最も重要なポイント: Claude CodeはGitHub APIを使って、該当する行に直接インラインコメントを投稿できます。
review-pr.md一部実装
# .claude/commands/review-pr.md の一部
## インラインコメントの投稿方法
JSONファイルを作成してインラインコメントを投稿:
```bash
cat > /tmp/review_comments.json << 'EOF'
{
"commit_id": "{COMMIT_SHA}",
"event": "COMMENT",
"body": "コーディング規約とベストプラクティスの観点から改善提案をいくつか記載します。",
"comments": [
{
"path": "frontend/apps/fe-web/src/components/Foo/index.tsx",
"line": 42,
"body": "**📝 改善提案**\n\nマジックナンバーを定数として抽出することを推奨します。"
}
]
}
EOF
cat /tmp/review_comments.json | gh api repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}/reviews --input -
```
このように、コマンドファイルに詳細な手順を記載することで、Claude Codeは該当する行番号を指定してGitHub上にインラインコメントを自動投稿できます。
レビュー後の人間の役割
Claude Codeがレビューを投稿した後、人間のレビュアーは以下を行います。
- インラインコメントの確認 - Claude Codeが投稿したコメントをレビュー
- 内容の添削 - 必要に応じて、コメント内容を修正・削除・追加
- 最終判断 - マージの可否を判断
これにより、人間は高度な判断に集中でき、機械的なチェックはAIに任せるという理想的な分業が実現します。
今後の展望: GitHub Actions による完全自動化
現在の構成では、ローカルのClaude Codeがレビューを実行します。
一方で、さらなる自動化としてGitHub ActionsとClaude APIを組み合わせるアプローチも考えられます。PRがオープンされた瞬間に自動でAIレビューが走る仕組みです。
まとめ
AI駆動の開発が普及した現在、従来のレビュープロセスでは限界があります。本記事では、以下の2つの対策を紹介しました。
1. Git Worktree Manager による並行レビュー環境
- スクリプトによるworktree作成の自動化
- 完全に独立したレビュー環境
- 複数PRの同時レビューが可能
2. Claude Code による自動PRレビュー
- CLAUDE.mdによる一貫したレビュー基準
- GitHub APIを使ったインラインコメントの自動投稿
- 人間は高度な判断に集中
AI駆動の開発スピードに追いつくためには、レビュープロセスもAIを活用して進化させる必要があります。同じような課題を抱えているチームの参考になれば幸いです。




