AIコーディングエージェントへの「指示力」完全ガイド — CLAUDE.md / .cursor/rules / Copilot Instructionsの設計術
Cursor、Claude Code、GitHub Copilot。どのAIコーディングツールを使っていても、成果の差はツールの性能ではなく「指示の質」で決まる。
これは3ヶ月間、3つのツールを併用して実感したことだ。同じ機能を実装させても、指示ファイルの書き方ひとつで出力の精度がまるで違う。
この記事では、各ツールの指示システム(CLAUDE.md、.cursor/rules、Copilot Instructions)の設計パターンと実践ノウハウをまとめる。ツール横断で使える考え方に焦点を当てた。
3つのツールの指示システム比較
まず、各ツールがどんな仕組みで「指示」を読み込むのか整理する。
| Claude Code | Cursor | GitHub Copilot | |
|---|---|---|---|
| 指示ファイル | CLAUDE.md |
.cursor/rules/*.mdc |
.github/copilot-instructions.md |
| 読み込みタイミング | セッション開始時 | ルールタイプ別 | チャット/インライン時 |
| スコープ | User / Project / Local | User Rules / Project Rules | リポジトリ単位 |
| 補助機能 | Skills, Hooks, Memory | Auto Attached, Agent Requested | — |
| バージョン管理 | git推奨 |
.cursor/rules/をgit管理 |
.github/をgit管理 |
共通原則: 良い指示ファイルの条件
ツールが違っても、効果的な指示ファイルの原則は同じだ。
1. 短く、本質だけ書く
これが一番重要。1行ごとに「これを削除したらAIが間違えるか?」と自問する。答えがNoなら削る。
指示が長すぎるとAIは無視し始める。CLAUDE.mdもCursorルールも、肥大化すると逆効果になる。
❌ 悪い例:
「このプロジェクトはReactとTypeScriptを使っています。
Reactは2013年にFacebookが開発したUIライブラリで...」
✅ 良い例:
「React 19 + TypeScript 5.7 + Next.js 15。
Server Componentsデフォルト。Client Componentは'use client'必須。」
2. AIが推測できないことだけ書く
コードの構文規則やフレームワークの基本的な使い方は、AIはすでに知っている。書くべきはプロジェクト固有の暗黙知だ。
- ビルド・テストコマンド:
npm run test:unit -- --watch - ドメイン用語: 「ユーザー = テナント管理者を指す。エンドユーザーではない」
- アーキテクチャ上の制約: 「APIレスポンスは必ずcamelCaseに変換してからstoreに入れる」
- 避けるべきパターン: 「
any型は禁止。unknownを使う」
3. 肯定形で書く
「〜するな」より「〜する」の方がAIは従いやすい。
❌ 「console.logを使わないでください」
✅ 「ログ出力はlogger.info/warn/errorを使う」
4. バージョン管理に入れる
指示ファイルはコードと同じようにgit管理する。チームメンバー全員が同じ指示を使うべきだし、変更履歴が追えることで「この指示を追加したらAIの挙動が改善した」という検証ができる。
Claude Code: CLAUDE.mdの設計
階層構造
CLAUDE.mdは複数の場所に配置できる:
~/.claude/CLAUDE.md → 全プロジェクト共通(個人設定)
./CLAUDE.md → プロジェクトルート(チーム共有)
./src/CLAUDE.md → サブディレクトリ(オンデマンド読み込み)
設計方針: ルートのCLAUDE.mdは全タスクに共通する内容だけ。サブディレクトリは必要に応じて読み込まれるので、ドメイン特化の知識はそちらに。
/initで始める
空のCLAUDE.mdを一から書く必要はない。/init コマンドがプロジェクト構造を解析して、ビルドシステム・テストフレームワーク・コードパターンを検出したスターターファイルを生成してくれる。ここから削って磨くのが効率的。
CLAUDE.md vs Skills vs Hooks
CLAUDE.mdに全部書くと肥大化する。使い分けはこうだ:
- CLAUDE.md: 全タスクに適用される基本ルール(コードスタイル、コマンド、禁止パターン)
- Skills: 特定タスクにのみ必要な手順書(「デプロイ手順」「DBマイグレーション手順」など)。Skillの説明がマッチした時だけ読み込まれる
- Hooks: 100%確実に実行すべきアクション(「コミット前にlint実行」など)。CLAUDE.mdは助言だが、Hooksは確定動作
強調の使い方
Claude Codeは「IMPORTANT」や「YOU MUST」に反応する。ただし乱用すると効果が薄れる。本当に守らせたいルールだけに使う。
## コードスタイル
- TypeScript strictモードを維持する
- IMPORTANT: エラーハンドリングではtry-catchを使い、catchブロックでは必ずログを残す
Cursor: .cursor/rules/ の設計
2026年のルール構造
2026年現在、.cursorrules(単一ファイル)は非推奨。.cursor/rules/ディレクトリに複数の.mdcファイルで管理するのが正解。
.cursor/rules/
├── core.mdc → 常に適用
├── react-components.mdc → .tsx編集時に自動適用
├── api-design.mdc → API関連ファイル時に自動適用
├── testing.mdc → テストファイル時に自動適用
└── performance.mdc → 手動で有効化
アクティベーションタイプ
ここがCursorの強み。ルールの発動条件を4種類から選べる:
- Always: 常時適用。コアルール向け。ただし増やしすぎるとトークン消費が増える
- Auto Attached: ファイルタイプで自動適用。「.tsxファイルならReactルール適用」。一番使う
- Agent Requested: AIが会話内容から必要性を判断。補助的なルール向け
- Manual: 明示的に指定時のみ。特殊シナリオ向け
実運用では Auto Attached 80% + Always 10% + 残り10% くらいのバランスがちょうどいい。
500行以内に抑える
各.mdcファイルは500行以内が目安。長すぎるとAIが指示を見落とす。分割して役割を明確にする方が効果的だ。
GitHub Copilot: copilot-instructions.mdの設計
仕組み
.github/copilot-instructions.mdにMarkdownで記述する。構造はシンプルで、Claude CodeやCursorほどの階層管理はない。
特徴と限界
- チャットとインラインの両方で参照される
- ファイルタイプ別の自動適用のような細かい制御はない
- 短く汎用的な指示を書くのが現実的
Copilotの場合は指示ファイルよりも、コード内のコメントやJSDocが効果的なことが多い。コードに近い場所に意図を書くスタイルが合っている。
実践パターン: 指示レベル5段階
どのツールでも使える、指示の詳細度を5段階に分類した:
Level 1: ゼロ指示
「ログイン機能を作って」 → AIが全部推測。品質はガチャ。
Level 2: 技術スタック指定
「React + Firebase Authでログイン機能を作って」 → フレームワーク選定はAI任せではなくなる。
Level 3: パターン指定
「React Hook Formでバリデーション、Zodでスキーマ定義、エラーはtoastで表示」 → かなり具体的。ここまで書くと安定する。
Level 4: 既存コードの参照
「src/features/signup/の実装パターンに合わせてログイン機能を作って」 → 既存コードが最高のプロンプトになる。
Level 5: テスト込みの完全指示
Level 4 + 「テストはVitest、カバレッジ80%以上、エラーケース5パターン含む」 → 最も確実だが、ここまで書くなら自分で書いた方が速い場合もある。
推奨はLevel 3〜4。指示のコスト対効果が最も高い。
やりがちなミスとその対策
1. 指示ファイルの肥大化
追記し続けて500行超えになるパターン。定期的に「この行、最近のタスクで参照されたか?」を確認して刈り込む。
2. 矛盾する指示
「簡潔に書け」と「詳細なコメントを残せ」が同居していると、AIは混乱する。指示同士の整合性を保つ。
3. 具体例の不足
「きれいなコードを書け」では伝わらない。具体的なコード例を1つ見せる方が100倍効果的。
4. ツールの特性を無視
Cursorのルールは .mdc ファイルに分割できるのに、全部1ファイルに書く。Claude CodeにはSkillsやHooksがあるのに、CLAUDE.mdだけで管理する。ツールの機能を活かす。
まとめ
AIコーディングエージェントは、指示の精度で生産性が劇的に変わる。ポイントは3つ:
- 短く、本質だけ: 肥大化した指示ファイルは逆効果
- ツールの機能を活かす: CLAUDE.md + Skills + Hooks、.cursor/rules/ のアクティベーションタイプなど
- Level 3-4で指示する: 技術スタック + パターン + 既存コード参照が最も効率的
指示ファイルの設計にこだわるのは、一見「面倒」に見える。しかし一度整備すれば、それ以降の全タスクの品質が上がる。指示ファイルは最もROIの高いコードだ。
環境情報
- Claude Code v2.1.42 / Cursor 0.45+ / GitHub Copilot
- 2026年2月時点の情報