はじめに
私達、株式会社よりそう のシステム部では、エンジニア全員が Cursor の有料版を利用して開発を行っています。
本記事では、普段私が実践している、Cursor を使ったセルフコードレビューの方法を紹介します。
@Git
コマンドで変更差分を渡す
まず、ctrl + L
でチャットを開きます。
(Composer では勝手に修正までされてしまうので、レビューが目的であれば、こちらから許可しない限り変更されない Chat を選択するのがより良いです。)
@
を入力して表示されるメニューの中から Git
を選択します。
PR は main ブランチとの変更差分をプロンプトとして渡すことができます。
PR を出す前に変更差分をレビューさせたい時はこちらを選択します。
(現状 main 以外のブランチとの差分は渡せないのが惜しい…)
Commit は作業中の差分をプロンプトとして渡すことができます。
コミットする前に変更差分をレビューさせたい時はこちらを選択します。
プロンプトは「レビューして」のような簡易的なもので十分です。
出力結果に合わせて追加の依頼や質問をしましょう。
.cursorrules ファイルでレビュー方針を伝える
Cursor の設定画面から、.cursorrules の利用を有効化します。
(設定画面は、 ctrl + shift + P
で表示されるメニューから Cursor Settings
で開けます。)
.cursorrules はプロンプトを送信したときに自動で読み込まれるファイルで、プロジェクト固有のルールを AI に伝えることができます。
.cursorrules というファイルをプロジェクトに作成し、コーディング規約やレビュー方針を記載します。
実際に私達が使っているファイルの一部を抜粋したものが以下です。
# コーディング規約
## 基本
- このプロジェクトは nuxt3 で作成されています。
- コンポーネントライブラリは Vuetify3 を使っています。components/Ui ディレクトリ以外では原則直接利用を禁止しています。
- コンポーネントの import 文は不要です。
- ref や computed のような vue の基本的な関数は import 不要です。
- イベントなどに使う関数は handleXxx よりも onXxx の命名が望ましいです。
## defineProps の使い方
### 非推奨
defineinterface Props {
label: string;
}
defineProps<Props>();
### 推奨
defineProps({
label: {
type: String,
required: true,
},
});
# コメント規約
- コメントがなくても意図が伝わるコードを書くことを目指す
- コードと重複するコメントは避ける
- コードだけでは意図が伝わらない部分にのみコメントを書く
- コード生成時に生成される説明的なコメントは不要
このファイルがある状態で、@Git
を使って AI にレビューさせることで、チームの方針に従ったレビューが実現できます。
チームのノウハウや方針をこのファイルに蓄積していくことで、AI のレビュー精度をより高めることができます。
おわりに
私達のチームでは、Cursor を活用し、目下 PR の精度向上に取り組んでいます。
さらに効果的な方法が見つかったり、具体的な成果が確認できた場合には、随時記事を更新していく予定です。