【Cursor】AIコードレビューのためコマンドを作成する
はじめに
株式会社レコチョクの小林です。
私はレコチョクでWebページの開発に取り組んでおり、開発ではCursorにとてもお世話になっています。
今回は、コマンド機能を利用してAIにコードレビューを依頼する方法を紹介します。
既存のAIコードレビューの方法
私が以前、CursorでAIにコードレビューをしてもらうときは、以下の画像のような内容をAgentにチャットしていました。

この方法でも特に問題はありませんが、次のような点に不便さがありました。
1. レビューしてもらうたびにこの内容を書くのが面倒
内容が大きく変わることはないため、コメントは省略したい
2. 特有のルールや記法に沿わないものも指摘してほしい
プロジェクトやチーム特有のルールは指摘してくれないこともある
コマンド機能
コマンド機能とは、事前に保存しておいたプロンプトを /コマンド名 と入力することで呼び出せる機能です。
公式ドキュメントの説明:
カスタムコマンドを使うと、チャット入力欄で / を入力するだけで呼び出せる再利用可能なワークフローを作成できます。これらのコマンドはチーム全体でプロセスを標準化し、よく行う作業をより効率的にします。
コマンドの作成方法
※ Cursorはアップデートが頻繁に行われるため、以下の手順は最新のCursorでの手順とは異なる場合があります。
-
アプリ右上の歯車マークをクリックし、「Cursor Settings」を選択。

-
メニュー一覧から「Rules and Commands」タブを選択。
-
「Team Commands」または「Project Commands」または「User Commands」の「+ Add Command」をクリック。

Commandの種類:
Team Commands: チームや組織全体で共有したいコマンドを作成する場合に利用する。Project Commands: プロジェクト内で共有したいコマンドを作成する場合に利用する。- プロジェクトのルートに.cursor/commandsディレクトリが作成され、コマンドが保存される。
User Commands: 個人で使用するコマンドを作成する場合に利用する。
作成したコマンド
私の環境では、以下のUser Commandを作成して利用することで、既存のAIコードレビューの不便さを解消しました。
※ ガイドラインの参照先は、実際の参照先からPSR-2(PHPのコーディングガイド)に変更しております。
コマンド名: code-review-diff
# code-review-diff
## ブランチ間の差分を取得し、コードレビューを行うコマンド
### 使い方
/code-review-diff {ブランチ名}
このコマンドが実行された場合、以下の処理を行ってください。
1. 以下のブランチ間の差分を取得
- カレントブランチ
- 引数で指定したブランチ
2. 差分をもとにコードレビューを実施
- コードレビューを実施する際は、以下のガイドラインを参照してください。
- https://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.php
3. レビュー結果を出力
レビューコマンドを実行
実行手順
1. チャット欄で/を入力し、作成したコマンドを選択。

2. コマンドの引数としてブランチ名を入力して送信。

レスポンス
実際のレスポンスから一部変更して、以下に添付します。
変更ファイルを確認し、PSR-2に基づいてレビューします。
PSR-2に基づくコードレビュー結果です。
コードレビュー結果
良い点
1. 命名規則: メソッド名はキャメルケースで統一
2. インデント: 4スペースで統一
3. 型ヒント: メソッドの引数・戻り値に型ヒントが付与
改善が必要な点
1. SampleController.php
問題点:
行193-199: コメントが長く、ロジックが複雑。メソッド分割を検討
行205: $content !== null の判定は、行184で既にチェック済みのため重複
2. SampleService.php
問題点:
行274: $user->code を使用。getUserCodeById() の戻り値は user_code を想定しているが、code を返している。命名の不一致の可能性。
確認事項:
$user->code と $user->user_code のどちらが正しいか確認
推奨アクション
高優先度:
getUserCodeById() の戻り値の整合性を確認・修正
冗長な null チェックの削除
中優先度:
複雑なロジックのメソッド抽出
コメントの簡潔化
低優先度:
コードの可読性向上(変数名の明確化など)
総評
機能追加は適切ですが、上記の整合性確認とリファクタリングを推奨します。
さいごに
コマンド機能を利用することで、コードレビューが以前よりも簡単に依頼できるようになりました。
レスポンスを見る限りガイドラインもきちんと参照できているようです。
今回はコマンドの定義に書きませんでしたが、追加で次のような定義を記載すると、レスポンスの一貫性が保たれ、良いと思いました。
- レビューのテンプレート
- 必ずチェックして欲しい内容をまとめたチェックリスト
おまけ
コマンド以外にコードレビューに使えそうな機能
1. Branch (Diff with Main)
チャット欄で@マークを押してBranch (Diff with Main)を選択することで、チャットのコンテキストに、main(master)ブランチと現在のブランチの差分が含まれます。

選択後は「レビューしてください。」などと入力すれば、レビュー依頼完了です。

ただし、mainブランチはリリースなどに使っているようなプロジェクトもあり、比較対象として適さないことが多いかと思います。
2. ルール機能
ルールを設定しておくことで、AIとチャットする際に、自動的にコンテキストに反映されます。
コード生成やコードレビューに関するルールを設定すると、コードレビューを依頼した時に一貫した指摘を行ってくれるようになります。

ただし、レビュー専用のルールを設定すると、レビュー以外でAIとチャットをする際に不要なコンテキストが反映される懸念があり、今回は不採用としました。
参考
小林明央