AIは、コードを書くたびに過去のやり取りをすべて記憶しているわけではありません。そこで役立つのが、Rulesです。

Rulesとは?

Rulesには、フレームワークやコーディングスタイル、ディレクトリ構造といったものや、AIの振る舞いなどをルールとして設定できます。こうしたルールを事前に登録しておくことで、AIに毎回説明する手間を減らし、プロジェクト全体でコードの書き方を統一しやすくなります。

Cursorは4種類のRulesをサポートしています。

User Rules(ユーザールール)
Cursor環境全体に適用されるルールです。
Project Rules(プロジェクトルール)
.cursor/rulesに保存され、バージョン管理の対象となります。特定のコードベースに適用されるルールです。
Team Rules(チームルール)
チーム全体に適用されるルールです。TeamプランおよびEnterpriseプランからの利用のため、ここでは紹介していません。
AGENTS.md
Markdown形式で記述する、AIエージェント向けの指示ファイルです。.cursor/rulesの代わりに使える、シンプルな選択肢です。

4種類は多いねー。ボクはUser RulesとProject Rulesだけ使っているよ。

ルールの有効範囲

Cursorには、すべてのプロジェクトで使うグローバルなUser Rules(ユーザールール)と、特定のプロジェクトだけで使うProject Rules(プロジェクトルール)があります。

  • ユーザールール:すべてのプロジェクトに適用
  • プロジェクトルール:特定のプロジェクトに適用
  • AGENTS.md:ファイルを配置したディレクトリと、その配下のディレクトリに適用

たとえば、回答を日本語にするルールはユーザールールに、AstroやTypeScriptの使い方はプロジェクトルールに設定すると整理しやすくなります。ユーザールールはCursorの設定画面で、プロジェクトルールはプロジェクト内の.cursor/rulesにファイルを作成して設定します。設定場所が異なるため、用途に応じて使い分けられます。

User Rules(ユーザールール)の設定

全てのプロジェクトに適用するユーザールールは、Cursorの設定画面から設定します。

  1. エディターウィンドウ右上の歯車ボタンをクリックし、「Cursor Settings」画面を開く
  2. 「Cursor Settings」画面の左側にある[Customize]を選択する。
    →「Customize」画面が表示されます。
  3. 画面内にいくつかのボタンが表示されるので、[Rules]をクリックする。
  4. Rules画面に切り替わったら、あとはUserの右端にある[New]ボタンをクリックする。
  5. ルールを記入して保存する。

ルールの設定までの手順は画像付きで下記の記事が詳しいです。

Cursorを日本語化する方法

この記事を読む

プロジェクトルールは、プロジェクトのディレクトリ内にルールファイルを作成して設定します。詳しい設定方法は、次の章で解説します。

ルールの実例集

ユーザールールに設定するルールの参考例を紹介します。ユーザールールは複数のプロジェクトで共通して使うため、プロジェクトによって異なる項目は省き、自分の開発スタイルに合わせて調整しましょう。

# 共通ルール

## 基本方針
- 既存の挙動を壊さない(互換性最優先)。
- 変更範囲は最小限にし、依頼内容と関係のない変更は行わない。
- 不明点は勝手に仕様を決めず、仮定する場合は明記する。
- 既存の設計・ディレクトリ構成・命名規則に合わせる。
- 依頼の範囲外で問題を発見した場合、勝手に修正せず報告する。
- 不要な依存関係や複雑な実装を追加しない。

## 出力ルール
- 必ず日本語で回答する。
- 冗長にせず、簡潔に説明する。
- 専門用語は必要に応じて簡単に説明する。
- 変更後は、可能な範囲で既存機能への影響を確認する。

Rulesの設定は、チャットでAIに作業を依頼するときだよ。コード補完や、インライン編集には適用されないんです。

Project Rules(プロジェクトルール)の設定

プロジェクト固有のルールは、プロジェクトディレクトリ直下に.cursor/rulesディレクトリを作成し、拡張子が.mdcのファイルを作成して設定します。.mdcファイルは、Cursor用のルールファイルです。Markdown形式※で記述できるため、文章を書くようにAIへのルールを指定できます。

※Markdown形式とは、文章の構造や装飾を「#」や「*」といった記号で手軽に表現できる軽量マークアップ言語のことです。

プロジェクトルールのディレクトリ構成
.cursor/
└── rules/
    ├── project.mdc
    ├── astro.mdc
    ├── css.mdc
    ├── content.mdc
    └── wordpress.mdc

.cursor/rulesには、プロジェクト固有のルールを.mdcファイルとして保存します。ルールごとに適用方法を設定できるため、用途に応じてファイルを分けておくと管理しやすくなります。

ルールの適用方法

ルールは適用するタイミングを設定できます。

  1. 常に適用:常にルールを適用する
  2. AIが判断して適用:説明文などをもとに、AIが必要性を判断する
  3. ファイルに応じて自動適用:指定したファイルパターンに一致するファイルを対象にする
  4. 手動で適用:必要なときに明示的に指定する

1. 常に適用

この指定は、使用する言語や基本的なコーディング規約など、プロジェクト全体で守るルールに向いているよ。

プロジェクト内で常に適用するルールです。.mdcファイルでは、ルール本文の前に---(ハイフン3つ)で囲んで記述し、ルールの適用条件などを指定します。

たとえば、次の設定ではalwaysApplyという専用のプロパティを使って、ルールを常に適用するよう指定しています。

---
alwaysApply: true
---

# プロジェクトルール

## 技術スタック
- フロントエンド:JavaScript
- スタイリング:Tailwind CSS

## コーディング規約
- コメントは日本語で記述する。
- 命名は意味が分かる英語を使用し、略語は避ける。
- グローバル汚染をしない。
- 例外処理・入力チェックは、必要性に応じて適切に実装する。
- 共通する処理は関数化し、重複を避ける。
- 1か所でしか使用しない処理は、可読性や保守性の向上など、明確な理由がない限り関数化しない。
- 既存のコード規約やプロジェクト固有のルールを優先する。

## 出力ルール
回答は必ず以下の順番で出力する。

1. 変更点サマリ(箇条書き)
2. 変更後コード(ファイルパスを明記し、変更した箇所が分かるようにする。コメントの変更は表示しない)
3. 確認手順

常に適用されるルールは、会話のたびに毎回読み込まれるため、トークン消費量(コスト)とレスポンスの遅延に直結します。本当に外せないコアな前提条件(絶対的な禁止事項、出力のトーン&マナー、セキュリティ要件など)のみに厳選し、特定のタスクに必要な指示は「その都度のプロンプト」で渡す設計にすることが、最も効率的です。

2. AIが判断して適用

「AIが判断して適用」は、ルールの説明文などをもとに、AIが必要だと判断した場合に適用する方式です。たとえば、データベースを操作するときのルールなどに向いています。

AIが判断しやすいように、ルールの説明文には「どのような作業で使うルールなのか」を具体的に記述しましょう。

---
alwaysApply: false
description: "データベースを操作するとき"
---

# DB規約
- 依頼されていないテーブル・カラム・データは変更しない。
- SQLは必要最小限とし、既存の仕様やデータ整合性を維持する。
- SQLインジェクションを防ぐため、プレースホルダーやプリペアドステートメントを使用する。
- データの更新・削除を伴う処理は、対象と影響範囲を確認してから実行する。

descriptionの内容を使ってAIが判断するので、どの状況で何をするのか、を明確にすることが重要です。

3. 自動で適用

「常に適用」と「自動で適用」がよく使うかな。

指定したファイルパターンに一致するファイルを扱うときに、自動で適用されるルールです。たとえば、TypeScriptファイルを編集するときだけ適用するルールなどに使えます。globsというプロパティに、拡張子の.tsにマッチするように書くと下記のようになります。

---
alwaysApply: false
globs: ["**/*.js"]
---

# JavaScript Coding Rules

## 基本規約
- 既存の動作や他の機能に影響を与えないようにする。
- エラーハンドリングは必須

## コーディング規約
- ES6+の構文を厳格に使用すること。
- 変数・関数には、用途が分かる英語の名前を付ける。
- `const`を基本とし、再代入が必要な場合のみ`let`を使用する。`var`は使用しない。
- グローバル変数の追加やグローバルスコープの汚染を避ける。
- 不要なライブラリや複雑な処理を追加しない。
- 処理の意図がわかるように細かくコメントを記述する。

## 実装時の注意
- 共通する処理は関数化し、重複を避ける。
- 1か所でしか使用しない処理は、可読性や保守性の向上など、明確な理由がない限り関数化しない。
- DOM操作は対象要素の存在を確認し、必要な範囲に限定する。
- 不要なエラーハンドリングや過剰な入力チェックを追加しない。
- 既存の仕様を推測で変更しない。不明点がある場合は確認する。

## 作業完了時
- 変更内容と変更したファイルを簡潔に報告する。
- 実施した確認内容と、未確認の項目があれば明記する。- 既存の動作や他の機能に影響を与えないようにする。

※エラーハンドリング:プログラムの実行中にエラーが発生した際、システムが突然強制終了しないようにあらかじめ処理を組み込んでおく仕組みのことです。例外処理とも呼ばれます。

4. 手動で適用

「手動で適用」の使用頻度は少ないけど、トークン消費をコントロールできるので、ちょっと楽しそうだね。

必要なときに、チャットから明示的に適用するルールです。たとえば、API作成時だけ使うテンプレートや、特定の作業手順などに向いています。

---
alwaysApply: false
---

## 実行
- ファイルに変更を加えない処理は聞かないで実行
- ファイルに変更を加える処理は必ず実行してよいか確認
- 依頼の範囲を超える変更、新たな仕様の決定、破壊的な操作が必要な場合は、実行前に確認する

必要なときに@メンションでこのルールを指定して使います。

このように、常に使うルール、AIが判断して使うルール、ファイルに応じて使うルール、必要なときだけ使うルールに分けることで、プロジェクトに必要なルールだけをAIに適用できます。

globsの書き方サンプル

ファイルパスのパターンを指定するglobsは、パターンにマッチしないとルールを適用してくれません。なので、確実にちゃんと書きたいですよね。ということで、良く使うパターンを以下に記載しました。

# 特定の拡張子全て(例では全ての .ts ファイル)
**/*.ts

# 特定のディレクトリ配下(例ではsrc/以下の全ての .ts ファイル)
src/**/*.ts

# 複数のパターン
["src/**/*.ts", "src/**/*.tsx"]

効果的なルールの書き方

ルールは、具体的に書くことが大切です。

たとえば、

コードをきれいに書く

よりも、

関数コンポーネントを使用し、クラスコンポーネントは使用しない。

と指定したほうが、AIに意図が伝わりやすくなります。

では、具体的にどのような内容をルールに含めればよいのでしょうか。次のような項目を参考にしてみてください。

  • 使用する技術やバージョン
  • ファイルやフォルダの構成
  • 命名規則
  • コーディングスタイル
  • エラー処理
  • テスト方法

そのほか、必要に応じてサンプルコードを載せるのも効果的ですね。globsに指定したファイルパターンに一致すると、そのファイルにルールが適用されます。そのため、ルールが長くなった場合は、用途ごとにファイルを分割して管理することもできます。

Rulesを作成する

Rulesは、コマンドパレットから作成できます。[Ctrl] + [Shift] + [P]キーを押して、New Cursor Ruleコマンドを実行します。

新しいCursor Ruleの作成

プルダウンから[New Cursor Rule]を選択すると、[New Agent]タブが開きます。

Ruleにしたい条件をAIに指示します

/create-rule Help me create this rule for Cursor: の後に、ルールにしたい条件を入力します。これで、AIがプロジェクトの要件を解析し、CursorのAIが今後の開発で参照すべき構造化されたルールをMarkdown形式で出力します。

効果的な使い方(入力内容のコツ)

より精度の高いルールを生成させるには、以下の要素を箇条書きで与えるのがベストプラクティスです。

  1. 使用するフレームワークとそのバージョン(例: Next.js 14 App Router, WordPress 6.x)
  2. 言語と型定義の厳密さ(例: TypeScript, Strict mode)
  3. スタイリング手法(例: Tailwind CSS v4)
  4. ディレクトリ構成や設計パターン(例: UIとロジックの分離、APIフェッチはServer Componentsで行う)
  5. AIへの出力指示(例: 「コードのみを出力しろ」「変更箇所だけを出力しろ」)

作成したRulesは、プロジェクトの.cursor/rulesに保存されます。

ルールを追加した後、Cursorのエージェントに追加したルールが適正かを確認するといいよ。設定して終わり、ではなく、設定してエージェントに確認してもらう、が安心だよね。

既存のRulesを利用する

Cursor Rulesはゼロから作る必要はありません。GitHubなどには、ReactやVue、Astro、TypeScriptなどのルールをまとめたコミュニティ製のRulesがあります。

まず既存のRulesを利用し、実際に使いながら自分のプロジェクトに合わせて調整する方法もあります。

まとめ

Cursor Rulesは、AIにプロジェクトのルールを覚えてもらうための仕組みです。技術スタックやコーディング規約をあらかじめ設定しておけば、AIとのやり取りをスムーズにできます。

最初から完璧なRulesを作る必要はありません。使いながら少しずつルールを追加していくのがよいでしょう。