0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cursor Rules と CLAUDE.md の違いを理解したら AI コーディングの精度が別物になった話【2026年版】

0
Posted at

この記事で紹介する Cursor / Claude Code × MCP 連携をさらに活用するなら pay-per-call-mcp もチェックしてください。Web検索・メール調査・請求書検証を Claude / Cursor が自律で実行できます。

この記事でわかること

  • Cursor Rules(.cursor/rules/)と CLAUDE.md の根本的な違い
  • Cursor Rules の 3 種類(Always / Auto Attached / Agent Requested)の使い分け
  • 「なぜか Cursor の精度が落ちてきた」を解決する Rules 設計のコツ
  • CLAUDE.md から Cursor Rules に移行するときの変換パターン
  • 両ツールを併用するチームが採用している共通ルール管理の実例

はじめに

「CLAUDE.md を整理したら Claude Code の精度が上がった」という記事を書いたところ、「Cursor でも同じことをやりたい」という声を多くいただきました。

しかし Cursor Rules は CLAUDE.md とかなり設計思想が違います。同じノリで書くと期待通りに動かないことが多いです。

この記事では、両者の違いを整理した上で、Cursor Rules の効果的な設計方法を解説します。


Cursor Rules と CLAUDE.md の根本的な違い

CLAUDE.md Cursor Rules
読み込みタイミング 毎ターン常に読む ルールの種類によって変わる
適用スコープ ファイル単位(グローバル / プロジェクト) ルールの種類で制御
ファイル形式 Markdown .mdc(Markdown + メタデータ)
条件分岐 できない ファイルパターンで自動適用できる
最大推奨サイズ 60行以下 ルールあたり 500 行以下

最大の違いは「Cursor Rules は場面によって自動的に切り替わる」点です。


Cursor Rules の 3 種類

1. Always(常時適用)

.cursor/rules/always.mdc
---
alwaysApply: true
---

# 絶対ルール

1. `any` 型禁止。`unknown` + type guard を使う
2. コミット前に `npm test` を通す
3. 外部 API 呼び出しには必ずリトライ処理を入れる

使い所: プロジェクト全体で守るべき最重要ルール。3〜5個まで。


2. Auto Attached(ファイルパターンで自動適用)

.cursor/rules/react-components.mdc
---
globs: ["src/components/**/*.tsx", "src/app/**/*.tsx"]
---

# React コンポーネントルール

- Props は interface で定義(type は使わない)
- `use client` は必要な場合のみ(デフォルトは Server Component)
- スタイルは Tailwind のみ(styled-components 禁止)
- コンポーネント名はファイル名と一致させる
.cursor/rules/api-routes.mdc
---
globs: ["src/app/api/**/*.ts", "src/server/**/*.ts"]
---

# API ルールール

- 全エンドポイントで zod バリデーションを使う
- レスポンスは `{ data, error }` 形式に統一
- 認証チェックは middleware で行う(個別ルートでしない)
- エラーログは logger.ts を使う(console.error 禁止)

使い所: フロントエンドとバックエンドで異なるルールがある場合。ファイルを開いた瞬間に自動で適用される。


3. Agent Requested(エージェントが必要と判断したときだけ)

.cursor/rules/database-patterns.mdc
---
description: "Prisma  SQL を使うタスクのときに参照するDB操作ルール"
---

# データベース操作ルール

- N+1 クエリ禁止。`include` / `select` で関連データを一括取得
- トランザクションは `prisma.$transaction` を使う
- マイグレーションは `prisma migrate dev` のみ(直接 SQL 禁止)
- 本番 DB への直接 write は禁止。必ず確認を求める

使い所: 特定の技術領域のルール。DB、認証、決済など。Cursor が「今これが必要」と判断したときだけロードされる。


よくある失敗パターン

❌ 全部 Always に入れてしまう

---
alwaysApply: true
---

# ルール(300行)

## TypeScript
...(50行)

## React
...(80行)

## API
...(70行)

## DB
...(100行)

毎ターン 300 行が丸ごとコンテキストに入るため、精度が落ちます。

✅ 正しい分割

.cursor/rules/
├── critical.mdc          (alwaysApply: true、10行以内)
├── typescript.mdc        (globs: **/*.ts, *.tsx)
├── react.mdc             (globs: src/components/**)
├── api.mdc               (globs: src/app/api/**)
├── database.mdc          (description: DB操作時に参照)
└── commit.mdc            (description: コミット時に参照)

CLAUDE.md からの移行パターン

Before(CLAUDE.md)

## コーディングルール
- TypeScript の any 禁止
- React は Server Component デフォルト
- API は zod バリデーション必須
- DB は Prisma 使用

## コミット規約
- feat: / fix: / docs: を使う
- 50文字以内

## 禁止事項
- console.log を残さない
- magic number 禁止

After(Cursor Rules)

critical.mdc(alwaysApply: true)
→ any 禁止、console.log 禁止の2つだけ

typescript.mdc(globs: **/*.ts)
→ TypeScript 固有ルール

react.mdc(globs: src/**/*.tsx)
→ React / Server Component ルール

api.mdc(globs: src/app/api/**)
→ zod・レスポンス形式

commit.mdc(description: コミット作成時)
→ コミット規約

両ツール併用チームの構成例

Claude Code と Cursor を両方使うチームでよく見られる構成:

project/
├── CLAUDE.md                    ← Claude Code 用(共通最重要ルール)
├── .cursor/
│   └── rules/
│       ├── critical.mdc         ← Cursor 用必須ルール
│       ├── frontend.mdc         ← フロントエンド専用
│       └── backend.mdc          ← バックエンド専用
└── .claude/
    └── rules/
        ├── coding-style.md      ← @include でCLAUDE.mdから参照
        └── commit.md

共通ルールは .claude/rules/shared.md に書いて、CLAUDE.md と Cursor Rules の両方から参照する形にすると管理コストが最小になります。


まとめ

やること CLAUDE.md Cursor Rules
全体の最重要ルール alwaysApply: true
ファイル種別ごとのルール @include で分割 globs で自動切替
特定技術のルール @include description で Agent Requested
ルールの優先度 書く順序 alwaysApply > globs > description

Cursor Rules の設計ポイントは「常に読ませるルールを最小限にして、必要なときだけ読み込む」です。CLAUDE.md と同じ原則ですが、Cursor は globs という強力な自動振り分け機能があるため、より細かく制御できます。


よくある質問(FAQ)

Q. .cursorrules(旧形式)と .cursor/rules/ はどちらを使うべきですか?
A. .cursor/rules/ を推奨します。旧形式の .cursorrules は単一ファイルで Always 相当の動作のみです。新形式は複数ファイルに分割でき、Auto Attached / Agent Requested が使えます。

Q. Cursor Rules は .gitignore に入れるべきですか?
A. チームで共有するルールはコミット推奨です。個人設定(フォント・テーマなど)は .gitignore に入れてください。

Q. CLAUDE.md と Cursor Rules に同じルールを二重管理するのは辛いです。
A. 共通ルールを独立したファイル(例: .ai-rules/common.md)に書き、CLAUDE.md は @include、Cursor Rules は globs: [".ai-rules/**"] で参照する方法があります。

Q. Cursor Rules の文字数制限はありますか?
A. 公式の制限はありませんが、1ファイルあたり 500 行以下を推奨します。それ以上になるとコンテキスト消費が増え精度が落ちます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?