ルール
ルールはエージェントに対するシステムレベルの指示です。プロンプトやスクリプトなどをまとめ、チーム全体でワークフローを簡単に管理・共有できます。
Cursor は4種類のルールをサポートしています。
プロジェクトルール
.cursor/rules に保存され、バージョン管理される、コードベースに限定されたルールです。
ユーザールール
Cursor 環境全体に適用されます。エージェント (チャット) で使用されます。
チーム ルール
ダッシュボードから管理するチーム全体向けのルールです。Team および Enterprise プランで利用できます。
AGENTS.md
Markdown 形式のエージェント向け指示です。.cursor/rules のシンプルな代替手段です。
ルールの仕組み
大規模言語モデルは、補完ごとに記憶を保持しません。ルールは、プロンプトレベルで永続的かつ再利用可能なコンテキストを提供します。
ルールを適用すると、その内容がモデルコンテキストの先頭に含まれます。これにより、AI はコードの生成、編集内容の解釈、ワークフローの支援において、一貫した指針に従えます。
プロジェクトルール
プロジェクトルールは .cursor/rules に .mdc ファイルとして保存され、バージョン管理されます。パスパターンで適用範囲を指定でき、手動で呼び出したり、関連性に応じて含めたりできます。
プロジェクトルールでは、次のことができます。
- コードベースに関するドメイン固有の知識を記述する
- プロジェクト固有のワークフローやテンプレートを自動化する
- スタイルやアーキテクチャに関する方針を標準化する
ルールファイルの構造
各ルールは、任意の名前を付けられる .mdc ファイルです。プロジェクトルールには .mdc 拡張子が必要です。.cursor/rules 内の通常の .md ファイルは、description、globs、alwaysApply を指定するフロントマターがないため、ルールシステムでは無視されます。プレーンな markdown を使用したい場合は、代わりに AGENTS.md を使用してください。
.cursor/rules/ react-patterns.mdc # プロジェクトルールとして認識される api-guidelines.md # 無視される(拡張子が異なるため) frontend/ # ルールをフォルダーで整理 components.mdcルールの構成
各ルールは、フロントマターのメタデータとコンテンツを含むMarkdownファイルです。タイプのドロップダウンで、description、globs、alwaysApply プロパティを変更し、ルールの適用方法を制御できます。
| ルールタイプ | 説明 |
|---|---|
常に適用 | すべてのチャットセッションに適用 |
インテリジェントに適用 | 説明に基づき、エージェントが関連性があると判断した場合 |
特定のファイルに適用 | ファイルが指定したパターンに一致する場合 |
手動で適用 | チャットで@メンションされた場合 (例:@my-rule) |
内部では、3つのフロントマターフィールドが連携して、ルールを含めるタイミングを決定します。
alwaysApply | description | globs | 挙動 |
|---|---|---|---|
true | — | — | 常に含まれます。globsと説明は無視されます。 |
false | — | provided | 一致するファイルがコンテキストにある場合、自動的に添付されます。 |
false | provided | omitted | エージェントが説明を読み、関連する場合にルールを取り込みます。 |
false | omitted | omitted | チャットでルールを@メンションした場合にのみ含まれます。 |
---alwaysApply: true---- All source files must include the company copyright header- When you are unsure about implementation details, read the relevant source files before proposing changes- Never modify generated files in the `dist/` or `build/` directories---globs: src/components/**/*.tsxalwaysApply: false---- Use named exports, not default exports- Co-locate styles in a module CSS file next to the component- Keep components under 200 lines. Extract subcomponents into the same directory when a file grows beyond that- Prefer composition over prop drilling. Pass children or render props instead of threading data through multiple layers---description: RPC service conventions and patterns for the backendalwaysApply: false---- Define each service in its own file under `src/services/`- Always validate inputs at the service boundary before passing data to internal functions- Return structured error objects with a `code` and `message` field, never throw raw strings- Add a `@service-template.ts` reference file when creating a new service for the standard boilerplate---alwaysApply: false---- すべてのデータベースマイグレーションには `up` と `down` の両方の関数を用意し、 完全に元へ戻せるようにする- カラムの型を直接変更しない。新しいカラムを追加してバックフィルし、 古いカラムは別のマイグレーションで削除する- 想定されるファイル構成はテンプレートをリファレンスとして参照する@migration-template.sqlglob パターンの例
globs を使用すると、ルールの適用対象を特定のファイルやディレクトリに絞り込めます。複数のパターンはカンマで区切ります。
| パターン | 一致する対象 |
|---|---|
* | 任意の1つのファイル名セグメント |
** | 任意の数のディレクトリ (再帰的) |
*.ts | ルート内のすべての .ts ファイル |
**/*.ts | 任意のディレクトリ内のすべての .ts ファイル |
src/** | src/ 配下のすべてのファイル |
src/**/*.tsx | src/ 配下のすべての .tsx ファイル |
docs/**/*.md, docs/**/*.mdx | docs/ 配下の .md および .mdx ファイル (カンマ区切り) |
tailwind.config.* | 任意の拡張子を持つ tailwind.config |
ルールを作成する
ルールの作成方法は2つあります。
- チャットで
/create-ruleを使う: エージェントで/create-ruleと入力し、作成したい内容を説明します。エージェントが適切なフロントマターを含むルールファイルを生成し、.cursor/rulesに保存します。 - Customizeから: サイドバーでCustomizeを開き、ルールに移動してAdd Ruleをクリックします。
.cursor/rulesに新しいルールファイルが作成されます。Customizeでは、すべてのルールとそのステータスを確認できます。
ベストプラクティス
よいルールは、焦点が明確で、実行可能かつ適用範囲が限定されています。
- ルールは500行未満に抑える
- 大きなルールは、組み合わせ可能な複数のルールに分割する
- 具体例や参照ファイルを示す
- 曖昧な指示は避ける。明確な社内ドキュメントのようにルールを記述する
- チャットで同じプロンプトを繰り返す場合は、ルールを再利用する
- 内容をコピーする代わりにファイルを参照する。これによりルールを短く保ち、コードの変更に伴って古くなるのを防げる
ルールで避けるべきこと
- スタイルガイド全体をコピーする: 代わりにリンターを使用してください。エージェントは一般的なスタイル規約をすでに把握しています。
- 考えられるすべてのコマンドを文書化する: エージェントは npm、git、pytest などの一般的なツールを把握しています。
- めったに該当しないエッジケース向けの指示を追加する: ルールは頻繁に使うパターンに絞ってください。
- コードベースにすでにある内容を重複して記載する: コードをコピーする代わりに、正式な例を参照してください。
まずはシンプルに始めましょう。エージェントが同じミスを繰り返すことに気付いたときだけ、ルールを追加してください。自分のパターンを理解する前に、過度に最適化しないでください。
チーム全体が活用できるよう、ルールを git にコミットしてください。エージェントがミスをしたら、ルールを更新してください。GitHub の issue や PR で @cursor をタグ付けすれば、エージェントにルールを更新させることもできます。
ルールファイルの形式
各ルールは、フロントマターのメタデータと本文で構成されるMarkdownファイルです。フロントマターのメタデータは、ルールの適用方法を制御するために使用されます。本文がルール本体です。
---description: "This rule provides standards for frontend components and API validation"alwaysApply: false---...rest of the rule contentalwaysApply が true の場合、ルールはすべてのチャットセッションに適用されます。それ以外の場合は、適用すべきかどうかを Cursor Agent が判断できるよう、ルールの説明が提示されます。
例
このルールでは、フロントエンドコンポーネントの標準を定めます。
components ディレクトリで作業する場合:
- スタイリングには常に Tailwind を使用する
- アニメーションには Framer Motion を使用する
- コンポーネントの命名規則に従う
このルールでは、API エンドポイントの検証を徹底します。
API ディレクトリ内:
- すべての検証に zod を使用する
- zod スキーマで戻り値の型を定義する
- スキーマから生成した型をエクスポートする
このルールでは、Express サービス用のテンプレートを定めます。
Express サービスを作成する際は、次のテンプレートを使用します:
- RESTful の原則に従う
- エラー処理ミドルウェアを含める
- 適切なロギングを設定する
@express-service-template.ts
このルールでは、React コンポーネントの構成を定めます。
React コンポーネントは次のレイアウトに従います:
- Props インターフェースを先頭に配置する
- コンポーネントは名前付きエクスポートにする
- スタイルを末尾に配置する
@component-template.tsx
このルールはアプリの分析を自動化します。
アプリの分析を求められた場合:
npm run devで開発サーバーを起動する- コンソールからログを取得する
- パフォーマンスの改善案を提案する
このルールはドキュメント生成に役立ちます。
次の方法でドキュメント作成を支援します:
- コードコメントを抽出する
- README.md を分析する
- markdown ドキュメントを生成する
まず、@reactiveStorageTypes.ts にトグル用のプロパティを作成します。
@reactiveStorageService.tsx の INIT_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;プロバイダーやフレームワークの例を利用できます。コミュニティ提供のルールは、オンラインのクラウドソーシングコレクションやリポジトリで見つけられます。
チーム ルール
Team および Enterprise プランでは、Cursor ダッシュボードから組織全体に適用・強制するルールを作成できます。管理者は、各ルールをチームメンバーに必須にするかどうかを設定できます。
チーム ルールは他のルールタイプと併用でき、優先して適用されるため、すべてのプロジェクトで組織の標準を維持できます。個別のセットアップや設定を行うことなく、チーム全体で一貫したコーディング標準、プラクティス、ワークフローを確保できる強力な方法です。
チーム ルールの管理
チーム管理者は、Cursor ダッシュボードから直接ルールを作成・管理できます。
チーム ルールを作成すると、すべてのチームメンバーに自動的に適用され、ダッシュボードに表示されます。
有効化と強制適用
- このルールをすぐに有効にする: オンにすると、ルールは作成直後から有効になります。オフにすると、ルールは下書きとして保存され、後で有効にするまで適用されません。
- このルールを強制適用する: 有効にすると、ルールはすべてのチーム メンバーに必須となり、Customize で無効にできなくなります。強制適用しない場合、チーム メンバーは Customize の チーム ルール でルールをオフにできます。
デフォルトでは、強制適用されていないチーム ルールはユーザーが無効にできます。これを防ぐには、このルールを強制適用するを使用してください。
形式とチーム ルールの適用方法
- 内容: チーム ルールは自由形式のテキストです。プロジェクトルールのフォルダー構造は使用しません。
- グロブパターン: チーム ルールでは、ファイル単位で適用するためにグロブパターンを使用できます。グロブパターン (例:
**/*.py) を設定すると、一致するファイルがコンテキストに含まれる場合にのみルールが適用されます。グロブパターンがないルールは、すべての会話に適用されます。 - 適用範囲: チーム ルールが有効になっている場合 (強制ルールでない限り、ユーザーが無効にしていない場合) 、そのチームのすべてのリポジトリとプロジェクトにおけるエージェント (チャット) のモデルコンテキストに含まれます。
- 優先順位: ルールは次の順序で適用されます: チーム ルール → プロジェクトルール → ユーザールール。該当するすべてのルールがマージされ、ガイダンスが競合する場合は、先に記載されたルールが優先されます。
一部のチームでは、社内コンプライアンスのワークフローの一環として強制ルールを使用しています。これはサポートされていますが、AI のガイダンスだけにセキュリティ対策を依存しないでください。
ルールのインポート
外部ソースからルールをインポートして、既存の設定を再利用したり、他のツールのルールを取り込んだりできます。
リモートルール (GitHub 経由)
アクセス可能な任意の GitHub リポジトリ (パブリックまたはプライベート) からルールを直接インポートできます。
- サイドバーで Customize を開く
- ルール に移動し、Add Rule をクリックする
- Remote Rule (Github) を選択する
- ルールを含む GitHub リポジトリの URL を貼り付ける。Cursor がリポジトリ内のすべての
.mdcファイルをスキャンします。 - Cursor がルールをプロジェクトにプルして同期します
ルールは .cursor/rules/imported/<repoName> に配置されます。ルールの相対パスも維持されるため、dir/rule.mdc は .cursor/rule/imported/<repoName>/dir/rule.mdc としてインポートされます。
AGENTS.md
AGENTS.md は、エージェント向けの指示を定義するためのシンプルな markdown ファイルです。シンプルな用途では、.cursor/rules の代わりにプロジェクトルートに配置できます。
プロジェクトルールとは異なり、AGENTS.md はメタデータや複雑な設定を含まないプレーンな markdown ファイルです。構造化されたルールのような手間をかけずに、シンプルで読みやすい指示を必要とするプロジェクトに最適です。
Cursor は、プロジェクトルートおよびサブディレクトリ内の AGENTS.md をサポートしています。
# プロジェクトの指示## コードスタイル- すべての新規ファイルにTypeScriptを使用する- Reactでは関数コンポーネントを優先する- データベースの列名にはsnake_caseを使用する## アーキテクチャ- リポジトリパターンに従う- ビジネスロジックはサービス層に配置する改善
サブディレクトリ内の AGENTS.md もサポートされるようになりました。プロジェクト内の任意のサブディレクトリに AGENTS.md ファイルを配置でき、そのディレクトリまたは子ディレクトリ内のファイルを扱う際に自動的に適用されます。
これにより、作業しているコードベースの領域に応じて、エージェントへの指示をより細かく制御できます。
project/ AGENTS.md # グローバルな指示 frontend/ AGENTS.md # フロントエンド固有の指示 components/ AGENTS.md # コンポーネント固有の指示 backend/ AGENTS.md # バックエンド固有の指示ネストされた AGENTS.md ファイルの指示は親ディレクトリの指示と組み合わされ、より具体的な指示が優先されます。
ユーザールール
ユーザールールは、Customize → ルール で定義する、すべてのプロジェクトに適用されるグローバルな設定です。エージェント (チャット) で使用され、好みのコミュニケーションスタイルやコーディング規約を設定するのに適しています。
簡潔に回答してください。不必要な繰り返しや冗長な表現は避けてください。よくある質問
ルールタイプを確認してください。Apply Intelligently では説明が設定されていることを、Apply to Specific Files ではファイルパターンが参照ファイルと一致していることを確認してください。
はい。@filename.ts を使って、ルールのコンテキストにファイルを含めることができます。また、チャットでルールを@メンションして手動で適用することもできます。
はい。エージェントに新しいルールの作成を依頼できます。
いいえ。ルールはCursor Tabやその他のAI機能に影響しません。
いいえ。ユーザールールはInline Edit (Cmd/Ctrl+K) には適用されません。 エージェント (チャット) でのみ使用されます。