Open3

【Cursor Tips📝】Cursor の Project Rules (CursorRules)について📝

ピン留めされたアイテム
まさぴょん🐱まさぴょん🐱

Cursor Rulesの種類について📝

https://docs.cursor.com/context/rules

一言まとめ
Cursor IDE の「Rules」は (1) どこに置くか(2) いつ読み込まれるか の2軸で種類が決まります。

  • スコープ軸: User Rules (個人設定)Project Rules (.cursor/rules の .mdc)Legacy .cursorrules
  • 発火モード軸: AlwaysAuto-AttachAgent RequestedManual
    この組合せによって AI が “常時” ルールを抱えて動くのか、ファイルごとに “自動で” 付け替えるのか、あるいは “必要時だけ” 取りに行くのかが決まります。

1. スコープによる 3 種類

種別 保存場所 特徴・主用途
User Rules Cursor Settings → General → Rules for AI すべてのリポジトリに毎回注入される “あなた専用カスタム指示” 。コーディングスタイルや応答言語など個人ポリシーを入れるのに最適。 (Cursor, Cursor 101, Zenn)
Project Rules <repo>/.cursor/rules/*.mdc バージョン管理下に置けるチーム共通ルール。ファイル名や globs: 設定でサブモジュールごとに細粒度制御できる。 (Cursor, Cursor - Community Forum, Qiita)
Legacy .cursorrules リポジトリ直下に単一ファイル 旧方式。まだ動くが非推奨で、Project Rules へ移行推奨。 (Cursor, Reddit, Qiita)

適用順序の目安
User RulesProject Rules.cursorrules(重複すると後から読み込まれた方で上書きされる傾向があります)。 (Reddit)


2. 発火モードによる 4 種類(Project Rules の front-matter で指定)

モード 仕組み YAML 例 代表用途
Always alwaysApply: true を付けると、どの会話でも必ずコンテキストに入る yaml\nalwaysApply: true\n 重大セキュリティ方針、社内共通ボイラープレート (Qiita, Cursor - Community Forum)
Auto-Attach globs: で指定した拡張子やパスが開かれた/チャットで @リンクされた時に自動添付 yaml\nglobs:\n - \"src/**/*.py\"\n 言語別コメント規約、テストファイル専用テンプレ (Qiita, Cursor - Community Forum, Cursor - Community Forum)
Agent Requested alwaysApply: false かつ globs: なし。モデルが必要と判断した時だけフェッチ (front-matter 省略可) 巨大なドメイン設計ドキュメント、CI CD 手順など “重い” 参照 (Qiita, Cursor - Community Forum)
Manual ルール名を @MyRule とチャットに打つ/UI で選択すると即時添付 なし スニペット集、社内テンプレート、PoC 用 (Qiita, Cursor - Community Forum)

ポイント

  • 4モードは 同じ .mdc でも front-matter の値で切り替えられるため、1ファイル=1モードとは限りません。 (Cursor - Community Forum)
  • alwaysApplyglobs を併用すれば「特定ファイルでは自動、それ以外は常時」といったハイブリッド設定も可能です(ただしバージョン依存でバグ報告もある)。 (Cursor - Community Forum, Cursor - Community Forum)

3. 使い分けガイド

  1. まずは User Rules

    • 自分の話し方・出力フォーマット・お気に入りライブラリのバージョンなど、プロジェクトを跨いで通用するポリシーをここに。
  2. プロジェクト固有は Project Rules

    • 例: Next.js App Router で use client ヘッダーを強制、社内 Tailwind デザインシステムを徹底など。
    • サブディレクトリごとに .mdc を分け、globs: で範囲指定すると後々メンテしやすい。 (Cursor - Community Forum)
  3. 移行途中は .cursorrules を残す

    • 大規模リポジトリの場合、古いルールを削除せず新しい .mdc へ段階移行するのが安全。 (Reddit)
  4. パフォーマンスを考える

    • 巨大ルールを Always にするとプロンプトが肥大して LLM コストが増大。必要に応じ Agent Requested に。 (Cursor - Community Forum)
  5. コラボ開発ではレビュー必須

    • ルールは “見えないコード” 。Pull Request で差分確認し、矛盾や重複を防ぐ。 (Qiita)

4. 早見表

スコープ \ モード Always Auto-Attach Agent Requested Manual
User Rules 常時
Project Rules alwaysApply:true globs: デフォルト @RuleName
.cursorrules 常時

5. まとめ

  • スコープで “誰に効くか” を、発火モードで “いつ効くか” をコントロールする のが設計のキモ。
  • 実運用では User Rules + Auto-Attach Project Rules が最も手離れが良く、肥大化を防げます。
  • Legacy .cursorrules は読み取り互換のみ。新規追加は .cursor/rules/*.mdc で行いましょう。

これで Cursor Rules の全体像と種類の見取り図がつかめるはずです。ぜひ既存プロジェクトの整理や新規リポジトリの初期設定に役立ててください。