はじめに
Cursor Rulesは、AIがプロジェクトのコンテキストを理解するための強力な機能です。基本的なルール設定については別記事で解説しましたが、本記事ではより高度な活用方法に焦点を当てます。
フロントマターの詳細設定、Apply Intelligentlyによる自動適用、GitHubからのリモートルールインポートなど、チーム開発での効率化に役立つテクニックを解説します。
本記事を読むことで、以下のことができるようになります。
- RULE.mdのフロントマター設定を使いこなし、ルールの適用条件を細かく制御できる
- Apply Intelligentlyを活用して、AIが自動的に適切なルールを選択する環境を構築できる
- GitHubからルールをインポートし、チーム間でルールを共有できる
- Agent Skillsと連携した高度なルール設定を実現できる
実行環境と前提条件
本記事の内容を実践するための環境要件は以下のとおりです。
| 項目 | 要件 |
|---|---|
| オペレーティングシステム | Windows 10以上、macOS 10.15以上、Ubuntu 20.04以上/Debian 10以上 |
| Cursor バージョン | 2.3以降 |
| プラン | Pro以上(一部機能はBusinessプラン推奨) |
| インターネット接続 | 必須 |
前提条件
- Cursorの基本操作に習熟していること
- Project Rules(.cursor/rules)の基本的な作成方法を理解していること
- Gitの基本操作を理解していること(リモートルールインポート時)
期待される結果
本記事の手順を完了すると、以下の状態になります。
- ファイルパターンや関連性に基づいてルールが自動適用される
- GitHubリポジトリからルールを同期し、最新の状態を維持できる
- チーム全体で統一されたコーディング規約がAIに適用される
- Agent Skillsを活用した動的なルール適用が実現できる
RULE.mdフロントマターの詳細設定
RULE.mdファイルのフロントマターには、ルールの適用方法を制御するための重要なメタデータを記述します。これらの設定を適切に使用することで、ルールの適用範囲と条件を細かく制御できます。
フロントマターフィールド一覧
| フィールド | 型 | 説明 |
|---|---|---|
description |
string | ルールの説明。Apply Intelligentlyで使用される |
globs |
string[] | ルールを適用するファイルパターン |
alwaysApply |
boolean | 常にルールを適用するかどうか |
ルールタイプの決定フロー
フロントマターの設定値によって、ルールの適用タイプが決まります。
flowchart TD
A[ルール設定] --> B{alwaysApply?}
B -->|true| C[Always Apply<br/>常に適用]
B -->|false| D{globs設定?}
D -->|あり| E[File Pattern<br/>特定ファイルに適用]
D -->|なし| F{description設定?}
F -->|あり| G[Apply Intelligently<br/>自動判断で適用]
F -->|なし| H[Manual Only<br/>手動適用のみ]Always Apply(常に適用)
すべてのチャットセッションで自動的に適用されるルールです。プロジェクト全体で遵守すべき基本規約に使用します。
|
|
使用場面:
- コーディング規約
- 命名規則
- 禁止事項の明示
- 必須のドキュメント形式
Apply to Specific Files(特定ファイルに適用)
globsフィールドで指定したパターンに一致するファイルにのみ適用されるルールです。
|
|
globパターンの記述例
| パターン | 説明 |
|---|---|
src/**/*.ts |
srcディレクトリ以下のすべてのTypeScriptファイル |
src/components/**/*.tsx |
componentsディレクトリ以下のTSXファイル |
**/*.test.ts |
すべてのテストファイル |
src/api/*.ts |
apiディレクトリ直下のTypeScriptファイル |
!**/*.d.ts |
型定義ファイルを除外(否定パターン) |
複数パターンの指定
|
|
Apply Intelligently(インテリジェント適用)
descriptionフィールドの内容をもとに、CursorのAIが関連性を判断して自動的に適用するルールです。
|
|
効果的なdescriptionの書き方:
- 具体的なキーワードを含める
- ルールが適用される場面を明示する
- 関連する技術用語を含める
Manual Only(手動適用のみ)
descriptionもglobsも設定せず、alwaysApplyがfalseの場合、チャット内で@ルール名として明示的に参照されたときのみ適用されます。
|
|
使用方法:
@legacy-guidelines に従って、このファイルをリファクタリングしてください
効果的なルール設計パターン
チーム開発で有効なルール設計パターンを紹介します。
階層構造によるルール整理
.cursor/rules/
├── 00-project-standards/
│ └── RULE.md # alwaysApply: true
├── 01-frontend/
│ ├── components/
│ │ └── RULE.md # globs: ["src/components/**"]
│ └── styles/
│ └── RULE.md # globs: ["**/*.css", "**/*.scss"]
├── 02-backend/
│ ├── api/
│ │ └── RULE.md # globs: ["src/api/**"]
│ └── database/
│ └── RULE.md # description-based
├── 03-testing/
│ └── RULE.md # globs: ["**/*.test.*", "**/*.spec.*"]
└── 04-documentation/
└── RULE.md # globs: ["**/*.md", "docs/**"]
ドメイン別ルールの例
フロントエンド - コンポーネントルール
|
|
バックエンド - APIルール
|
|
テストルール
|
|
GitHubからのリモートルールインポート
Cursorは、GitHubリポジトリからルールを直接インポートする機能を提供しています。これにより、組織全体でルールを共有したり、コミュニティのベストプラクティスを取り込んだりできます。
リモートルールインポートの手順
- Cursor Settings(
Ctrl + Shift + J/Cmd + Shift + J)を開く - 「Rules, Commands」セクションに移動
- 「Project Rules」の横にある「+ Add Rule」をクリック
- 「Remote Rule (GitHub)」を選択
- GitHubリポジトリのURLを入力
サポートされるリポジトリ形式
| 形式 | 例 |
|---|---|
| パブリックリポジトリ | https://github.com/org/rules-repo |
| プライベートリポジトリ | https://github.com/org/private-rules(認証必要) |
| 特定のブランチ | https://github.com/org/rules-repo/tree/main |
| 特定のディレクトリ | https://github.com/org/rules-repo/tree/main/cursor-rules |
リモートルールの同期
インポートしたルールは元のGitHubリポジトリと継続的に同期されます。リポジトリでルールが更新されると、プロジェクトにも自動的に反映されます。
組織用ルールリポジトリの構築例
組織全体で共有するルールリポジトリの構成例です。
company-cursor-rules/
├── README.md
├── general/
│ ├── coding-standards/
│ │ └── RULE.md
│ └── security/
│ └── RULE.md
├── frontend/
│ ├── react/
│ │ └── RULE.md
│ └── vue/
│ └── RULE.md
├── backend/
│ ├── nodejs/
│ │ └── RULE.md
│ └── python/
│ └── RULE.md
└── templates/
├── component-template.tsx
└── api-template.ts
リモートルールのベストプラクティス
| 推奨事項 | 説明 |
|---|---|
| バージョン管理 | mainブランチは安定版のみ、開発はfeatureブランチで |
| ドキュメント | READMEにルールの概要と使用方法を記載 |
| 変更履歴 | CHANGELOGでルールの変更を追跡 |
| レビュープロセス | ルール変更はPRでレビュー |
Agent Skillsとの連携
Agent Skillsは、Cursorが提供する追加の機能セットで、ルールとして読み込むことができます。
Agent Skillsの有効化
- Cursor Settings → Rules を開く
- 「Import Settings」セクションを見つける
- 「Agent Skills」をオンに切り替え
Agent Skillsの動作
Agent Skillsは「エージェント決定ルール」として扱われます。これは、Apply Intelligentlyと同様に、コンテキストに基づいてCursorが関連性を判断し、必要に応じて適用されることを意味します。
Agent Skillsとカスタムルールの組み合わせ
Agent Skillsが提供する機能を補完するカスタムルールを作成できます。
|
|
Team Rulesの高度な活用
Team/Enterpriseプランで利用可能なTeam Rulesの高度な活用方法を解説します。
強制ルールとオプションルール
Team Rulesには2つのモードがあります。
| モード | 説明 | 使用場面 |
|---|---|---|
| 強制 | チームメンバーが無効化できない | セキュリティ規約、必須のコーディング標準 |
| オプション | メンバーが個別に無効化可能 | 推奨事項、スタイルガイド |
段階的なルール展開戦略
新しいルールをチームに展開する際の推奨アプローチです。
flowchart LR
A[ドラフト作成] --> B[少人数でテスト]
B --> C[フィードバック収集]
C --> D[ルール調整]
D --> E[オプションとして展開]
E --> F[効果測定]
F --> G{効果あり?}
G -->|Yes| H[強制ルールに昇格]
G -->|No| I[ルール見直し]
I --> D複数チーム間でのルール共有
大規模な組織では、チームごとに異なるルールセットが必要な場合があります。
Organization Rules (全社共通)
├── security-standards # 強制
├── documentation-standards # 強制
└── naming-conventions # オプション
Team A Rules (フロントエンドチーム)
├── react-guidelines # 強制
├── css-standards # オプション
└── accessibility-rules # 強制
Team B Rules (バックエンドチーム)
├── api-design # 強制
├── database-conventions # 強制
└── logging-standards # オプション
ルールの効果測定と改善
ルールの効果を継続的に測定し、改善するためのアプローチを紹介します。
測定指標
| 指標 | 測定方法 | 目標 |
|---|---|---|
| コードレビュー指摘数 | PRコメントの分析 | 減少 |
| ルール違反検出数 | リンター/静的解析 | 減少 |
| 開発者満足度 | アンケート | 向上 |
| オンボーディング時間 | 新メンバーの立ち上がり | 短縮 |
フィードバックループの構築
- 定期レビュー: 月次でルールの有効性をレビュー
- 例外管理: 正当な理由で例外が必要なケースを記録
- 更新プロセス: ルール変更のリクエストフローを整備
- ドキュメント: ルールの背景と理由を明文化
ルール改善のトリガー
- 同じ例外リクエストが複数回発生
- 新しい技術/ライブラリの導入
- チーム構成の変化
- プロジェクトフェーズの変化(開発→運用)
まとめ
本記事では、Cursor Rulesの高度な活用方法を解説しました。
- フロントマター設定:
alwaysApply、globs、descriptionを使い分けることで、ルールの適用条件を細かく制御できる - Apply Intelligently: 適切な
descriptionを設定することで、AIが自動的に関連するルールを選択・適用する - リモートルールインポート: GitHubからルールをインポートし、チーム間でルールを共有・同期できる
- Agent Skillsとの連携: Agent Skillsを有効化し、カスタムルールで補完することで、より高度なAI支援が可能になる
- Team Rules: 強制ルールとオプションルールを使い分け、段階的にチームに展開する
効果的なルール設計により、チーム全体のコーディング品質が向上し、AIがプロジェクトの文脈を理解した的確な支援を提供できるようになります。ルールは一度作成して終わりではなく、継続的に改善していくことが重要です。