ルール
ルールはエージェントに対するシステムレベルの指示です。プロンプトやスクリプトなどをまとめ、チーム全体でワークフローを簡単に管理・共有できます。
Cursor は4種類のルールをサポートしています。
プロジェクトルール
.cursor/rules に保存され、バージョン管理される、コードベースに限定されたルールです。
ユーザールール
Cursor 環境全体に適用されます。エージェント (チャット) で使用されます。
チーム ルール
ダッシュボードから管理するチーム全体向けのルールです。Team および Enterprise プランで利用できます。
AGENTS.md
Markdown 形式のエージェント向け指示です。.cursor/rules のシンプルな代替手段です。
ルールの仕組み
大規模言語モデルは、補完と補完のあいだで記憶を保持しません。ルールは、プロンプトレベルで永続的かつ再利用可能なコンテキストを提供します。
ルールが適用されると、その内容はモデルコンテキストの先頭に追加されます。これにより、コード生成、編集内容の解釈、ワークフロー支援において、AIに一貫した指針を与えることができます。
プロジェクトルール
プロジェクトルールは、バージョン管理された .mdc ファイルとして .cursor/rules に保存されます。これらはパスパターンで適用範囲を指定したり、手動で呼び出したり、関連性に応じて自動的に含めたりできます。
プロジェクトルールを使用すると、次のことができます:
- コードベースに関するドメイン固有の知識を組み込む
- プロジェクト固有のワークフローやテンプレートを自動化する
- スタイルやアーキテクチャに関する判断を標準化する
ルールファイルの構成
各ルールは .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 プロパティは、種別を選択するドロップダウンから設定し、ルールの適用方法を制御します。
| Rule Type | 説明 |
|---|---|
Always Apply | すべてのチャットセッションに適用されます |
Apply Intelligently | エージェント が description に基づいて関連性があると判断した場合に適用されます |
Apply to Specific Files | ファイルが指定されたパターンに一致する場合に適用されます |
Apply Manually | チャットで「@~」でメンションされたときに適用されます (例: @my-rule) |
内部的には、3 つのフロントマター フィールドの組み合わせによって、ルールがいつ含まれるかが決まります。
alwaysApply | description | globs | 挙動 |
|---|---|---|---|
true | — | — | 常に含まれます。globs と description は無視されます。 |
false | — | provided | 一致するファイルがコンテキストにある場合、自動でアタッチされます。 |
false | provided | omitted | エージェントが description を読み取り、関連性がある場合にルールを取り込みます。 |
false | omitted | omitted | チャットでルールを @ メンションした場合にのみ含まれます。 |
---alwaysApply: true---- すべてのソースファイルには会社の著作権ヘッダーを含める必要があります- 実装の詳細について不明な場合は、変更を提案する前に関連する ソースファイルを読んでください- `dist/` または `build/` ディレクトリ内の生成されたファイルは絶対に変更しないでください---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---- Every database migration must have both `up` and `down` functions so it can be fully reversed- Never alter a column type in-place. Add a new column, backfill, then drop the old one in a separate migration- Reference the template for the expected file structure@migration-template.sqlグロブパターンの例
特定のファイルまたはディレクトリにルールを適用するには、globs を使用します。複数のパターンはカンマで区切ります。
| Pattern | 一致するもの |
|---|---|
* | 任意の単一のファイル名セグメント |
** | 任意の数のディレクトリ (再帰的) |
*.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 を開き、Rules に移動して、Add Rule をクリックします。これで
.cursor/rulesに新しいルールファイルが作成されます。Customize からは、すべてのルールとそのステータスを確認できます。
ベストプラクティス
よいルールは、的が絞られていて、実行可能で、スコープが明確です。
- ルールは 500 行以内に収める
- 大きなルールは、複数の組み合わせ可能なルールに分割する
- 具体的な例や参照ファイルを提示する
- あいまいな指示は避け、社内ドキュメントのように明確にルールを書く
- チャットで同じプロンプトを繰り返す場合は、ルールを再利用する
- ファイルの内容をコピーするのではなく、ファイルを参照する — そうすることでルールを短く保ち、コード変更によって古くなりにくくできる
ルールで避けるべきこと
- スタイルガイドを丸ごとコピーすること: 代わりに linter を使ってください。Agent は一般的なスタイル規約をすでに理解しています。
- 考えうるすべてのコマンドを網羅して書くこと: Agent は npm、git、pytest などの一般的なツールを知っています。
- ほとんど発生しないレアケース向けの指示を追加すること: よく使うパターンに絞ってルールを定義してください。
- すでにコードベースにある内容を重複させること: コードをコピーする代わりに、正とするサンプルへの参照を示してください。
まずはシンプルに始めましょう。同じミスを Agent が繰り返していると気づいたときにだけルールを追加してください。自分たちのパターンを理解する前に過度に最適化しないようにしましょう。
ルールは git にコミットして、チーム全体が活用できるようにしてください。Agent がミスをしたら、そのたびにルールを更新しましょう。GitHub の issue や PR で @cursor をメンションすれば、Agent にルールの更新を任せることもできます。
ルールファイル形式
各ルールは、frontmatter メタデータと本文からなる Markdown ファイルです。frontmatter メタデータは、そのルールの適用方法を制御するために使用されます。本文がルールそのものです。
---description: "This rule provides standards for frontend components and API validation"alwaysApply: false---...rest of the rule contentalwaysApply が true の場合、そのルールはすべてのチャットセッションに適用されます。false の場合は、そのルールの説明が Cursor Agent に渡され、適用すべきかどうかが判断されます。
例
このルールはフロントエンドコンポーネントの標準を定めます:
components ディレクトリで作業する場合:
- スタイリングには常に Tailwind を使用する
- アニメーションには Framer Motion を使用する
- コンポーネントの命名規則に従う
このルールは API エンドポイントのバリデーションを徹底します:
API ディレクトリでは:
- すべてのバリデーションに zod を使用する
- 戻り値の型は zod のスキーマで定義する
- スキーマから生成された型をエクスポートする
このルールは Express サービス用のテンプレートを提供します:
Express サービスを作成するときはこのテンプレートを使用してください:
- RESTful の原則に従う
- エラーハンドリング用のミドルウェアを含める
- 適切なロギングを設定する
@express-service-template.ts
このルールは React コンポーネントの構造を定義します:
React コンポーネントは次のレイアウトに従う必要があります:
- 先頭に Props 用の interface
- コンポーネントは named export にする
- スタイルは末尾に記述する
@component-template.tsx
このルールはアプリの分析を自動化します:
アプリの分析を求められた場合:
npm run devで dev サーバーを起動する- コンソールからログを取得する
- パフォーマンス改善案を提案する
このルールはドキュメント生成を支援します:
ドキュメントのドラフトを作成するときは、次を行います:
- コードコメントを抽出する
- README.md を分析する
- Markdown ドキュメントを生成する
最初に、@reactiveStorageTypes.ts でトグル用のプロパティを作成します。
@reactiveStorageService.tsx の INIT_APPLICATION_USER_PERSISTENT_STORAGE にデフォルト値を追加します。
ベータ機能の場合は @settingsBetaTab.tsx にトグルを追加し、それ以外の場合は @settingsGeneralTab.tsx に追加します。トグルは、汎用的なチェックボックスとして <SettingsSubSection> に追加できます。ファイル内の他の例を参照してください。
<SettingsSubSection label="機能名" 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) 、そのルールは、一致するファイルがコンテキストに含まれているときにのみ適用されます。グロブパターンがないルールは、すべての会話に適用されます。 - 適用範囲: チーム ルール が有効で (強制でない限りユーザーによって無効化されていない場合) 、そのチームのすべてのリポジトリとプロジェクトに対して、Agent (Chat) のモデルコンテキストに含まれます。
- 優先順位: ルールは次の順序で適用されます: チーム ルール → プロジェクトルール → ユーザールール。該当するすべてのルールがマージされ、指示が競合する場合は、先に適用されるソースが優先されます。
一部のチームは、内部コンプライアンスワークフローの一環として、強制されるルールを使用しています。このような運用はサポートされていますが、AI によるガイダンスだけをセキュリティ対策の唯一の手段にすべきではありません。
ルールのインポート
既存の設定を再利用したり、他ツールのルールを取り込んだりするために、外部ソースからルールをインポートできます。
リモートルール (GitHub 経由)
アクセス権のある任意の GitHub リポジトリ (パブリック/プライベート) から、ルールを直接インポートできます。
- サイドバーで Customize を開く
- Rules に移動し、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 の代わりとして使えます。
Project Rules と異なり、AGENTS.md はメタデータや複雑な設定を持たないプレーンな markdown ファイルです。構造化されたルールのオーバーヘッドなしに、シンプルで読みやすい指示が必要なプロジェクトに最適です。
Cursor は、プロジェクトルートおよびサブディレクトリ内の AGENTS.md をサポートします。
# Project Instructions## Code Style- Use TypeScript for all new files- Prefer functional components in React- Use snake_case for database columns## Architecture- Follow the repository pattern- Keep business logic in service layers改善点
サブディレクトリでのネストされた AGENTS.md のサポートが利用可能になりました。プロジェクト内の任意のサブディレクトリに AGENTS.md ファイルを配置すると、そのディレクトリおよびその子ディレクトリ内のファイルを扱う際に自動的に適用されます。
これにより、作業しているコードベースの領域に応じて、エージェントへの指示内容をより細かく制御できます:
project/ AGENTS.md # グローバルな指示 frontend/ AGENTS.md # フロントエンド固有の指示 components/ AGENTS.md # コンポーネント固有の指示 backend/ AGENTS.md # バックエンド固有の指示ネストされた AGENTS.md ファイルの指示は親ディレクトリのものと結合され、より具体的な指示が優先されます。
ユーザールール
ユーザールールは、Customize → Rules で定義する、すべてのプロジェクトに共通して適用されるグローバルな設定です。エージェント (Chat) で使用され、好みのコミュニケーションスタイルやコーディング規約を指定するのに適しています。
Please reply in a concise style. Avoid unnecessary repetition or filler language.FAQ
ルールタイプを確認してください。Apply Intelligently の場合は、説明 (description) が定義されていることを確認してください。Apply to Specific Files の場合は、ファイルパターンが参照されているファイルに一致していることを確認してください。
はい。ルールのコンテキストにファイルを含めるには、@filename.ts を使用します。チャット内でルールを@メンションして、手動で適用することもできます。
はい、エージェントに依頼して新しいルールを作成できます。
いいえ。ルールは Cursor Tab や他の AI 機能には影響しません。
いいえ。ユーザールール は Inline Edit (Cmd/Ctrl+K) には適用されません。 Agent (Chat) のみで使用されます。