『Cursor』では生成AIにコードを生成させるために色々なルールを与えることができます。Rulesを正しく管理することでプロジェクトに合ったコードを生成させることができるようになります。今回はコード生成のルールに関わるRulesについて解説します。この記事は2025/3/4時点のバージョン0.46.8をベースにしています。
Rulesの設定
Rulesの設定は大きく2つあります。
| 設定項目 | 設定内容 | 
|---|---|
| User Rules | すべてのチャットに含まれるルールを設定します。 | 
| Project Rules | プロジェクトごとのルールを設定します。 | 
User Rules
セットアップの際に言語の指定を行いました。User Rulesの設定内容を確認すると Always respond in 日本語 のように設定されています。私は言語の設定時に”日本語”と入力していました。このように『Cursor』で生成を呼び出す際に共通で使用する設定をUser Rulesに記述します。User Rulesの設定は1つだけなので設定画面で直接入力します。
Project Rules
プロジェクト毎に使用する言語やコーディング規約は変わってきます。そのようにプロジェクト毎に変わるルールを設定するのがProject Rulesです。Project Rulesを追加するにはAdd new ruleボタンをクリックします。クリックするとルール名の入力を求められます。ルール名を入力すると .cursor\rules ディレクトリに ルール名.mdc が作成されます。このファイルにルールを記述していきます。
バージョン0.45までは.cursorrulesという1つのファイルで設定していましたが、0.46からは.mdcファイルで複数設定できるようになりました。
.mdcの記述方法
.mdcファイルは2つの部分で構成されます。『Cursor』上のGUIで設定することもテキストファイルとして編集することもできます。
| セクション | 形式 | 設定内容 | 
|---|---|---|
| メタデータセクション | YAML | ルールを適用する範囲を設定します。 | 
| ルールセクション | Markdownでも記述可能 | ルールを設定します。 @でファイルを参照できます。 | 
メタデータセクション
| GUIの項目名 | ファイルに保存される項目名 | 設定内容 | 
|---|---|---|
| Description | description | 説明内容に応じてルールを適用するか判断する。 省略するとglobsのみで判断する。 | 
| Auto Attach | globs | ルールを適用する拡張子、ファイル、ディレクトリを指定します。 | 
| Global | alwaysApply | ルールを必ず適用するかをtrue or falseで指定します。 | 
globsの指定は *.txs のように拡張子を指定したり、 src/config/**/*.json のように特定のディレクトリに格納されたファイルを指定したり、 *Test.cpp のようにテストコードのみを指定などができます。
alwaysApplyは現時点では上手く効かないことがある模様です。descriptionでどのような場合に必ず適用して欲しいかを併せて書くのが効果的です。
ルールセクション
適用したいルールを記述します。作成時に「You can use markdown but dont have to」と書かれているので必ずしもマークダウンで書く必要はないかもしれません。AIが理解しやすいようにマークダウンで構造的に記述するのが良いと思います。
「You can @ files here」とも書かれています。『Cursor』で.mdcファイルを編集中に @ を入力するとプロジェクト内のファイルのツールチップが表示されます。。ツールチップからファイルを選択するとファイルを参照できます。
サンプル

上記のように『Cursor』で設定した.mdcファイルは以下のようになります。
---
description: Pythonコードのコードでは常に適用する。
globs: *.py
alwaysApply: true
---
# Pythonの一般的なコーディング規約
[python_code_rule.md](mdc:.cursor/rules/python_code_rule.md)
# プロジェクト固有のコーディング規約
## if文の継続された条件をインデントする
例
```
if (this_is_one_thing
        and that_is_another_thing):
    do_something()
```alwaysApplyの設定が分かりにくいですが右端の青いアイコンをクリックすることでオン・オフを切り替えられます。
ファイル参照すると黄色でハイライトされます。ツールチップから選択せず単純に@ファイル名と入力してしまうとマークダウンのリンクにならないので注意してください。
Notepads
AIにルールを伝える方法にもう1つNotepadsという機能があります。こちらはベータ版の機能で今後無くなってしまう可能性がありますがプロジェクト単位よりも細かい単位でAIに情報を渡すことができます。
Notepadsの作り方
- エクスプローラーのNOTEPADSにあるCreate New Notepadボタンをクリックします。 
- Notepadの名前を入力すれば作成できます。 
Notepadの使い方
Ctrl + IのChatウィンドウで @ を入力し Notepads を選択すると自分のNotepadsを選択することができます。Notepadsをコンテキストに追加した状態でチャットすることでその情報を渡すことできます。
使い分け
AIに情報を渡す3つの設定について解説しました。それぞれの特徴と使い分けを見ていきましょう。
| 設定 | 適用タイミング | 使いどころ | 
|---|---|---|
| User Rules | 必ず | 『Cursor』で生成AIを使用する際に必ず守らせたいルール | 
| Project Rules | 適用ルールにマッチしたファイルの場合 | プロジェクト毎に守らせたルール | 
| Notepads | @で明示的に指定した場合 | 各自が開発する機能に特有の情報やルール | 
まとめ
『Cursor』はとても強力なAIエディタです。しかし、思い通りのコードを生成させようと思ったらルールの設定が欠かせません。特性を理解し、適切にルールを設定できるようになりましょう。
 
					         
                     
                          