Cursorを使っていて「毎回同じことを指示するのが面倒」と感じたことがあるなら、.cursorrulesが解決策になる。プロジェクトのルートに置くだけで、Cursorのチャット・補完・Agentが「このプロジェクトの文脈」を理解して動くようになる。
.cursorrulesとは何か
.cursorrulesはプロジェクトルートに置くテキストファイルで、Cursorに対する「このプロジェクトでの振る舞い方の指示書」だ。
このファイルを置くと、CursorのAIが回答を生成するたびに.cursorrulesの内容をコンテキストとして読み込む。「このプロジェクトはTypeScriptで書いていて、Prettierのフォーマットを使っていて、テストはVitestで書く」という情報を毎回チャットで入力しなくても、AIが自動的に考慮してくれるようになる。
ファイルの基本構造
.cursorrulesはMarkdown形式で書くのが一般的で、自由に記述できる。構成の例として以下のようなセクションが使いやすい。
# プロジェクト概要
- プロジェクト名: [名前]
- 技術スタック: [TypeScript, React, Next.js, TailwindCSS]
- パッケージマネージャ: pnpm
# コーディング規約
- 変数名はcamelCase
- コンポーネントはPascalCase
- CSSはTailwindのユーティリティクラスを優先し、カスタムCSSは最小限に
- any型の使用は禁止。型推論を活用する
# アーキテクチャ
- Server ComponentsをデフォルトにしてClient Componentsは最小限に
- データ取得はServer Componentで行う
- フォームはServer Actionsで処理する
# テスト
- テストフレームワーク: Vitest
- テストファイルは __tests__ ディレクトリに配置
- 各関数にユニットテストを書く
Next.jsプロジェクトでの設定例
Next.js 15のApp Routerを使うプロジェクト向けの.cursorrulesとして、以下のような内容が実用的だ。
# Next.js App Router プロジェクト
## 技術スタック
- Next.js 15(App Router)
- TypeScript 5.x
- TailwindCSS v4
- Prisma + PostgreSQL
## コンポーネント方針
- デフォルトはServer Component
- インタラクションが必要な場合のみ 'use client' を付ける
- データ取得はasync Server Componentで直接fetchする
## 命名規則
- ページ: app/[slug]/page.tsx
- コンポーネント: components/[Name]/index.tsx
- 型定義: types/[name].ts
## エラー処理
- APIエラーはResult型パターンで処理する
- try-catchはServer Actionsに限定する
この設定を入れておくと「新しいコンポーネントを作って」という指示に対して、自動的に適切なディレクトリ構成・命名・TypeScriptの型付けで生成してくれるようになる。
効果的な指示の書き方
.cursorrulesに書く内容で効果が高いのは、「否定形の制約」だ。「〜しないこと」という形で書くと、Cursorが避けるべきパターンを明確に認識する。
例えば、「console.logをデバッグ目的で残さないこと」「非同期処理でPromise.allを使わずawaitを使うこと」「コメントは日本語で書くこと」という形だ。これらはCursorが「何がOKか」より「何を避けるべきか」を学ぶのに有効だ。
逆に効果が薄い書き方は、抽象的な指示だ。「良いコードを書いてください」や「わかりやすくしてください」は意味をなさない。CursorのAIはすでに「良いコードを書く」ことを目指しているので、それより具体的な制約や文脈を書くことに集中する方がいい。
Cursor Rulesとproject-level rulesの違い
最新のCursorでは、.cursor/rules/ディレクトリに複数のルールファイルを置く形式も使えるようになっている。.cursorrulesがプロジェクト全体に適用されるのに対して、.cursor/rules/では特定のファイルパターンにだけ適用するルールを分けて管理できる。
例えばfrontend.mdcにはフロントエンドのルール、api.mdcにはAPIのルールを分けて書き、それぞれ対応するファイルパターンに紐付けることができる。規模が大きくなってきたプロジェクトでは、ルールを分割して管理する方が可読性が上がる。
Claude Codeとの比較
Claude CodeにもCLAUDE.mdという類似のファイルがある。役割は似ていて、プロジェクトの文脈をAIに伝えるものだ。
Cursorの.cursorrulesはエディタ内での補完・チャットに影響するのに対して、Claude CodeのCLAUDE.mdはCLIでの操作全般に影響する。Cursorをエディタとして使いながらClaude Codeも使うなら、両方に同様の内容を書いておくのが二重管理になるが、一貫した振る舞いを引き出すためには有効だ。
実際に入れてみて変わったこと
プロジェクトに.cursorrulesを入れると、一番変わるのは「修正頻度」だ。AIが生成したコードに対して「いや、このプロジェクトでは型をこう書く」「ここはTailwindで書いてほしい」という修正が減る。最初の設定に少し時間がかかるが、一度整えると毎回の対話がスムーズになる。