掲載済み (2026-05-30号)
146 260文字 • 2分

ローカルの Claude Code レビューを「すり抜けられない」必須チェックにした話

日本語

掲載情報

概要

Claude CodeによるローカルAIレビューの実行を、git notesとGitHub Actionsを連携させることで、バイパス不可能な必須マージ条件として組み込む手法の解説。

詳細内容

### 概要 PLEX社の開発チームによる、Claude Codeを使用したローカルAIレビューの運用改善事例です。AIレビューのコスト(従量課金)を抑制するために実行環境をCIから各開発者のローカル環境に移管しつつ、その実行を「必須」にするための技術的な仕組みを構築しています。 ### 具体的な仕組み 1. **ローカル実行と機械的判定**: `lefthook` を使用し、`pre-push` フックで Claude Code のカスタムコマンドを実行。出力内の特定のタグ(`[REVIEW_RESULT: PASS]`)をスクリプトで検知します。 2. **証跡の記録 (git notes)**: レビューがパスした場合のみ、`git notes` を利用してコミットにメタデータを付与し、そのノートをリモートリポジトリへ push します。 3. **GitHub Actions での検証**: push イベントをトリガーに Actions を起動し、対象コミットに特定の `git notes` が存在するかを確認。存在すれば GitHub の Commit Status を `success` に更新します。 4. **ブランチ保護による強制**: GitHub の Branch Protection を設定し、この status check を必須項目に指定することで、レビュー未実施のコードのマージを構造的にブロックします。 ### 導入のメリット この手法により、ローカルでの AI 実行という低コストな運用を維持しながら、Git hook のセットアップ漏れや実行忘れといったヒューマンエラーを自動的に検出・排除できるようになります。サーバー側から観測困難なローカル作業を検証可能にした点が大きな特徴です。