AI 補完の精度を左右する .cursor/rules。
これまでは個別の .cursorrules ファイルや設定画面で管理するのが一般的でしたが、最近では Anthropic が提唱する 「CLAUDE.md」や「AGENTS.md」 のスタイルを Cursor に取り入れる動きが活発化しています。
今回は、プロジェクトのルール管理を Claude ベースの構成に寄せ、より柔軟でスケーラブルな管理を実現する方法をご紹介します。
なぜ Claude ベースの構成に寄せるのか?
Cursor は非常に強力ですが、複数のディレクトリ(フロントエンド、バックエンドなど)が混在するモノレポ構成や、複雑なコンポーネント設計ルールを一つのファイルで管理しようとすると、すぐに「指示の衝突」や「トークンの無駄遣い」が発生します。
そこで、Claude の公式ドキュメントやコミュニティで推奨されている 「階層的な指示書(AGENTS.md)」 の概念を導入することで、以下のメリットを享受できます。
- コンテキストの最適化: その時触っているディレクトリに最適な指示だけを AI に与えられる。
- ポータビリティ: Cursor 以外のツール(Claude Desktop や Cline など)に移行・併用する際もルールをそのまま流用できる。
- 保守性: ルールが細分化されているため、修正の影響範囲が明確。
提案するディレクトリ構成
今回の移行では、プロジェクトルートに司令塔となるファイルを置き、各ディレクトリに固有のルールを分散させる構成をとります。
Plaintext
.
├── .claude/
│ └── commands/ # コマンド定義(ビルドやテストの自動化用)
│ └── build-doc.sh # コマンドの実体
├── CLAUDE.md # プロジェクト全体の司令塔(Cursor/Claude共用)
└── AGENTS.md # 全体的なエージェントへの行動指針
CLAUDE.md は設定すべきか?
結論から言うと、設定することを強くおすすめします。 Cursor はプロジェクト内の Markdown ファイルをコンテキストとして読み取る能力が高いため、CLAUDE.md にプロジェクトの全体像や技術スタックを記述しておくだけで、回答の解像度が劇的に上がります。
階層的な AGENTS.md の構成案
今回の肝となるのが、ディレクトリごとに配置する AGENTS.md です。Cursor の .cursor/rules と連携させることで、AI が「今、自分がどのレイヤーのコードを書いているか」を自律的に判断できるようにします。
Plaintext
project/
AGENTS.md # グローバルな指示(命名規則、コミット方針など)
frontend/
AGENTS.md # フロントエンド固有(React/Next.js の書き方)
components/
AGENTS.md # コンポーネント設計(Atomic Design, Shadcn UI 等)
backend/
AGENTS.md # バックエンド固有(Go/Python, DB 設計、API 規格)
各階層で記述する内容の例
- ルートの AGENTS.md:「常に日本語で回答せよ」「ライブラリの追加は必ず相談せよ」といった、プロジェクト全般の振る舞い。
- frontend/AGENTS.md:「Tailwind CSS を使用せよ」「Lucide React 以外のアイコンは使うな」といった、フロントエンド特有の制約。
- components/AGENTS.md:「Client Component には必ず ‘use client’ をつけよ」「props の型定義は必ず interface を使え」といった、より具体的な実装詳細。
実装のポイント:.cursor/rules との連携
Cursor の設定画面、または .cursor/rules ディレクトリ配下の各ルールから、これらの AGENTS.md を参照するように指示します。
設定例(.cursor/rules 内の記述):
“Apply the coding standards defined in
/frontend/AGENTS.mdwhen working on files within the frontend directory.”
このように記述しておくことで、Cursor の Agent モードが適切なコンテキストを選択できるようになります。
まとめ
.cursor/rules を直接肥大化させるのではなく、AGENTS.md という「AI への手紙」をディレクトリごとに配置する手法は、大規模なプロジェクトほど真価を発揮します。
コマンドの移行(.claude/commands/)については、また別タスクとして整備していく予定ですが、まずはこの「ルール管理の階層化」だけでも、開発効率は格段にアップするはずです。
エンジニアの皆さん、AI への指示も「DRY(Don’t Repeat Yourself)」に、そして「疎結合」に管理していきましょう!
