ルールは Agent と Inline Edit に対するシステムレベルの指示を提供する。プロジェクトにおける永続的なコンテキスト、設定、ワークフローとして考えていい。 Cursor は 4 種類のルールをサポートしている:

Project Rules

.cursor/rules に保存され、バージョン管理され、コードベースにスコープされる。

User Rules

Cursor 環境全体で有効。設定で定義され、常に適用される。

AGENTS.md

Markdown 形式の Agent 向け指示。.cursor/rules のシンプルな代替。

.cursorrules (Legacy)

まだサポートされているが非推奨。代わりに Project Rules を使ってね。

ルールの仕組み

大規模言語モデルは補完のあいだで状態を保持しない。ルールはプロンプトレベルで永続的かつ再利用可能なコンテキストを提供する。 適用されると、ルールの内容はモデルのコンテキストの先頭に含まれる。これにより、AIはコード生成、編集内容の解釈、ワークフロー支援において一貫した指針を得られる。
チャットのコンテキストで適用されたルール
ルールは ChatInline Edit に適用される。アクティブなルールは Agent サイドバーに表示される。

プロジェクトルール

プロジェクトルールは .cursor/rules に配置される。各ルールは単一ファイルで、バージョン管理の対象。パスパターンで適用範囲を絞ったり、手動で実行したり、関連性に基づいて自動的に取り込める。サブディレクトリには、そのフォルダにスコープされた独自の .cursor/rules ディレクトリを含められる。 プロジェクトルールの使いどころ:
  • コードベースに関するドメイン固有知識を記述する
  • プロジェクト固有のワークフローやテンプレートを自動化する
  • スタイルやアーキテクチャの方針を標準化する

ルールの構成

各ルールファイルはメタデータとコンテンツを扱える MDC.mdc)で書かれてる。種類のドロップダウンから descriptionglobsalwaysApply のプロパティを切り替えて、ルールの適用方法を制御できる。
Rule TypeDescription
Alwaysつねにモデルのコンテキストに含まれる
Auto Attachedグロブパターンに一致するファイルが参照されたときに含まれる
Agent RequestedAI が判断して必要なら含める。説明の記述が必須
Manual@ruleName で明示的に指定した場合にのみ含まれる
---
description: RPC サービス用ボイラープレート
globs:
alwaysApply: false
---

- サービスを定義するときは、社内の RPC パターンを使用する
- サービス名は常に snake_case を使用する

@service-template.ts

ネストされたルール

プロジェクト内の各所にある .cursor/rules ディレクトリにルールを置いて整理しよう。ディレクトリ内のファイルが参照されると、そのディレクトリにあるネストされたルールが自動的に適用される。
project/
  .cursor/rules/        # プロジェクト全体のルール
  backend/
    server/
      .cursor/rules/    # バックエンド用ルール
  frontend/
    .cursor/rules/      # フロントエンド用ルール

ルールの作成

New Cursor Rule コマンドを使うか、Cursor Settings > Rules に進んでルールを作成しよう。これで .cursor/rules に新しいルールファイルが作成される。Settings では、すべてのルールとそのステータスを確認できる。
簡潔なルールと長文ルールの比較

ルールの生成

会話の中で /Generate Cursor Rules コマンドを使って、ルールをその場で作成できる。エージェントのふるまいを決めて、それを再利用したいときに便利。

ベストプラクティス

良いルールは、焦点が明確で、実行可能で、スコープが適切。
  • ルールは500行以内に収める
  • 大きなルールは、複数の組み合わせ可能なルールに分割する
  • 具体的な例や参照ファイルを示す
  • あいまいな指示は避ける。社内ドキュメントのように明確に書く
  • チャットで同じプロンプトを繰り返す場合は、ルールを再利用する

このルールはフロントエンドコンポーネントの標準を定める:components ディレクトリで作業するとき:
  • スタイリングは常に Tailwind を使う
  • アニメーションは Framer Motion を使う
  • コンポーネントの命名規則に従う
このルールは API エンドポイントのバリデーションを徹底する:api ディレクトリでは:
  • すべてのバリデーションに zod を使う
  • 戻り値の型は zod スキーマで定義する
  • スキーマから生成された型をエクスポートする
このルールは Express サービスのテンプレートを提供する:Express サービスを作成するときはこのテンプレートを使う:
  • RESTful の原則に従う
  • エラーハンドリング用ミドルウェアを含める
  • 適切なロギングを設定する
@express-service-template.tsこのルールは React コンポーネントの構成を定義する:React コンポーネントは次のレイアウトに従う:
  • 先頭に Props のインターフェース
  • コンポーネントは名前付きエクスポート
  • スタイルは末尾に置く
@component-template.tsx
このルールはアプリの分析を自動化する:アプリの分析を依頼されたら:
  1. npm run dev で dev サーバーを起動する
  2. コンソールのログを取得する
  3. パフォーマンス改善案を提案する
このルールはドキュメント生成を支援する:ドキュメントの下書きは次で行う:
  • コードコメントを抽出する
  • README.md を分析する
  • Markdown ドキュメントを生成する
まず @reactiveStorageTypes.ts にトグル用のプロパティを作成する。@reactiveStorageService.tsxINIT_APPLICATION_USER_PERSISTENT_STORAGE にデフォルト値を追加する。ベータ機能の場合は @settingsBetaTab.tsx に、そうでない場合は @settingsGeneralTab.tsx にトグルを追加する。トグルは一般的なチェックボックスとして <SettingsSubSection> を使って追加できる。詳細はファイル内の他の例を参照。
<SettingsSubSection
				label="Your feature name"
				description="Your feature description"
				value={
					vsContext.reactiveStorageService.applicationUserPersistentStorage
						.myNewProperty ?? false
				}
				onChange={(newVal) => {
					vsContext.reactiveStorageService.setApplicationUserPersistentStorage(
						'myNewProperty',
						newVal
					);
				}}
			/>
アプリで使うには、reactiveStorageService をインポートしてプロパティを参照する:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage.myNewProperty
プロバイダーやフレームワークから多くの例がある。コミュニティ提供のルールは、クラウドソースのコレクションやオンラインのリポジトリに多数ある。

AGENTS.md

AGENTS.md は、エージェント向けの指示を定義するためのシンプルな Markdown ファイル。プロジェクトのルートに配置すれば、簡単なユースケースでは .cursor/rules の代替として使える。 Project Rules と違い、AGENTS.md はメタデータや複雑な設定を持たないプレーンな Markdown ファイル。構造化ルールのオーバーヘッドなしで、シンプルで読みやすい指示がほしいプロジェクトに最適。
# プロジェクト方針

## コードスタイル
- すべての新規ファイルで TypeScript を使用する
- React では関数コンポーネントを優先する
- データベースのカラム名は snake_case を使用する

## アーキテクチャ
- リポジトリパターンに従う
- ビジネスロジックはサービス層に置く

User Rules

User Rules は、すべてのプロジェクトに適用される Cursor Settings → Rules で定義するグローバルな設定。プレーンテキストで記述できて、好みのコミュニケーションスタイルやコーディング規約を設定するのに最適だよ。
簡潔に返答して。不要な繰り返しや冗長な表現は避けて。

.cursorrules(レガシー)

プロジェクトのルートにある .cursorrules ファイルは引き続きサポートされるが、今後廃止予定。より細かな制御、柔軟性、可視性のために Project Rules への移行をおすすめする。

よくある質問

ルールの種類を確認して。Agent Requested なら説明が定義されてるかチェック。Auto Attached ならファイルパターンが参照してるファイルにマッチしてるか確認して。
できる。@filename.ts を使って、ルールのコンテキストにファイルを含めて。
できる。/Generate Cursor Rules コマンドでチャットからプロジェクトルールを生成できる。Memories が有効なら、メモリは自動で作成されるよ。
影響しない。ルールが適用されるのは Agent と Inline Edit だけだよ。