Cursor × Gitフック:AIを「専属のレビュアー」に変える究極の自動化ワークフロー
Cursorを単なる「チャットができるエディタ」として使っているなら、それはフェラーリで近所のコンビニに行くようなものです。真のポテンシャルは、「コンテキストの注入」と「Gitフックの自動化」を掛け合わせ、人間にしかできない意思決定以外をすべてAIに委ねることにあります。
本稿では、HuskyとCursorのCLI(`cursor`コマンド)を連携させ、コードの品質ゲートを突破し、コミットメッセージまでをAIが自律的に生成する「守りの開発」の構築手順を伝授します。
—
1. なぜ「Gitフック×AI」なのか:理論的背景
開発のボトルネックは往々にして「文脈のスイッチング」にあります。コードを書く、テストを走らせる、 diffを読み解く、コミットメッセージを捻り出す。この思考の断絶をAIで埋めることで、フロー状態を維持したまま、品質担保を自動化できます。
重要なのは、「AIに何を渡すか」です。単なるコードではなく、`git diff`の結果を適切に整形し、プロジェクトの規約に沿った「意味のあるコンテキスト」をAIに与えることが成功の鍵です。
—
2. 実装:HuskyによるAI品質ゲートの構築
まずは、Huskyを導入し、`pre-commit`フックでAIによる「自己レビュー」を強制します。
Huskyの設定とスクリプト
プロジェクトルートで以下を実行し、フックを準備します。
Huskyのインストール
npm install husky –save-dev
npx husky install
pre-commitフックの作成
npx husky add .husky/pre-commit “node scripts/ai-review.js”
AIレビュー用スクリプト (`scripts/ai-review.js`)
このスクリプトは、ステージングされた差分をAIに投げ、品質チェックを行うゲートキーパーです。
const { execSync } = require(‘child_process’);
// 1. ステージングされた差分を取得
const diff = execSync(‘git diff –cached’).toString();
if (!diff) process.exit(0);
// 2. Cursor CLIを介してAIにレビューを依頼
// 注意: CursorのCLIからプロンプトを投げるラッパーを想定
const review = execSync(`cursor-cli-chat “以下のdiffをレビューし、バグの可能性や可読性の問題を箇条書きで指摘してください。修正が不要ならOKとだけ出力してください。 ${diff}”`).toString();
if (review.includes(‘修正が必要’) || review.includes(‘バグ’)) {
console.error(‘❌ AIレビューにより品質ゲートを停止しました:’, review);
process.exit(1); // コミットを阻止
}
console.log(‘✅ AIレビュー通過:’, review);
—
3. 開発体験を劇的に変える「隠れたキーボードショートカット」
Cursorの真価は、インデックスされたプロジェクトの文脈を活用するショートカットにあります。
- `Cmd + K` (インライン生成): ただコードを書く場所ではありません。`git diff`の結果をクリップボードにコピーし、`Cmd + K`で「この差分を簡潔なコミットメッセージとして要約して」と指示する。これでメッセージ作成の悩みから解放されます。
- `Cmd + L` (Chat + コンテキスト): `@Files` や `@Git` を活用しましょう。特に、特定の機能がどのコミットで変更されたかを `@Git` で呼び出し、今の変更と衝突していないかをAIに比較させることが可能です。
- `Cmd + Shift + L` (選択範囲のAI修正): 脳内のロジックを言語化するより、汚いコードを選択して「DRY原則に従ってリファクタリングして」と投げたほうが10倍速い。
—
4. チーム開発における「設定の共有化」ルール
個人の生産性はチームの足並みがあって初めて輝きます。以下の設定をリポジトリの `.cursor` フォルダに含めて共有しましょう。
`.cursor/rules/rules.md` (プロジェクト固有のAI指針)
このファイルを作成するだけで、Cursorはチームの「コーディング規約」を自動学習します。
プロジェクト規約
- コンポーネント設計はAtomic Designに従うこと
- エラーハンドリングは必ずResult型でラップすること
- コミットメッセージはConventional Commits形式を厳守すること
- AIへの依頼時は、必ず影響範囲(依存ファイル)を特定してから回答すること
—
5. 伝説的エンジニアが選ぶ「神プラグイン」構成
CursorはVS Codeの拡張機能と互換性がありますが、入れすぎはIDEの重みになります。以下の3つだけで十分です。
1. Conventional Commits: Gitフックと連携してコミットメッセージのフォーマットを強制します。
2. Error Lens: エラー箇所をエディタ上に直表示。AIに「このエラーを解決して」と投げる際のトリガーとして機能します。
3. GitLens: コードの変更履歴を追跡。`Cmd + L`で特定の行をAIに投げる際、どのコミットが原因かを知るために不可欠です。
—
結論:AIを「ツール」から「チームメイト」へ
このワークフローを導入すると、コミットするたびにAIが背中を守ってくれる安心感を得られます。
「AIに書かせる」のではなく、「AIに検閲させ、人間が責任を持つ」。
このスタンスこそが、最も高速で、かつ品質を担保できる現代の開発スタイルです。まずは `.husky` の設定から、チームの生産性を底上げしてみてください。あなたが寝ている間に、AIがコードの負債を整理し、朝起きたときには完璧なテスト結果が待っている。そんな未来は、すぐそこにあります。