Claude Code Plan Mode実践ガイド——構造化プランニングで大規模タスクを確実に完遂する
Claude CodeのPlan Modeを使い、複雑な実装タスクを事前に計画してから実行に移す手法をハンズオン形式で解説。計画ファイルの自動生成、ステップバイステップの進捗管理、拡張思考(Extended Thinking)との連携まで実践的に紹介します。

はじめに
Claude Codeで開発を進めていると、こんな場面に遭遇します。
| 状況 | 困りごと |
|---|---|
| 大規模リファクタリング | いきなりコードを書き始めて途中で方針が迷走した |
| 新機能追加 | 見落としていた依存関係で手戻りが発生した |
| チーム作業 | Claudeが何をしようとしているか把握できない |
共通するのは「計画なしにコードを書き始めた」という問題です。人間の開発でも設計フェーズを飛ばせばトラブルが起きるように、AIエージェントにも計画フェーズが必要です。
Claude CodeにはPlan Modeという、コードを一切変更せずにタスクの全体像を設計するための専用モードがあります。Plan Modeを使えば、Claudeがコードベースを探索し、依存関係を洗い出し、実装手順を整理した計画ファイルを自動生成してくれます。
この記事を読み終わると、以下ができるようになります:
- Plan Modeの5つのフェーズと仕組みを理解できる
- Shift+Tabで瞬時にPlan Modeに切り替えられる
- 計画ファイル(
~/.claude/plans/)を活用してタスク進捗を管理できる - Extended Thinkingとの使い分けを判断できる
- 実際のAPI追加タスクをPlan Modeで計画してから実装できる
Plan Modeの仕組み
Plan Modeとは
Plan Modeは、Claude Codeの読み取り専用モードです。このモードに入ると、Claudeはファイルの編集やコマンドの実行を一切行わず、コードベースの探索と計画の策定だけに集中します。
起動方法は2つあります。
| 方法 | 操作 |
|---|---|
| キーボードショートカット | Shift+Tabで通常モードとPlan Modeを切り替え |
| スラッシュコマンド | /plan を入力して起動 |
5つのフェーズ
Plan Modeは内部的に5つのフェーズを経て計画を完成させます。
各フェーズの詳細は以下のとおりです。
| フェーズ | 役割 | 主なアクション |
|---|---|---|
| Initial Understanding | タスクの要件と背景を把握する | 関連ファイルの読み込み、ディレクトリ構成の確認 |
| Design | 実装アプローチを設計する | 依存関係の洗い出し、技術選定、変更箇所の特定 |
| Review | 計画をレビューして穴を見つける | エッジケースの検討、リスク評価、代替案の検討 |
| Final Plan | 最終計画を確定しファイルに出力する | ステップバイステップの実装手順を生成 |
| ExitPlanMode | Plan Modeを終了して実行に移る | 計画に沿ったコード実装を開始 |
Explore AgentとPlan Agent
Plan Modeでは、2種類のサブエージェントが協調して動作します。
Explore Agent は、コードベースを深く探索する役割を担います。ファイルの読み込み、grep検索、ディレクトリ構造の走査を行い、タスクに関連するコードの全体像を収集します。ただし、ファイルの編集は行いません。
Plan Agent は、Explore Agentが収集した情報をもとに計画を策定します。依存関係の分析、変更影響の評価、実装ステップの設計を行い、最終的に構造化された計画ファイルを生成します。
計画ファイルの構造
Plan Modeで生成された計画は ~/.claude/plans/ ディレクトリに保存されます。典型的な計画ファイルの構造は以下のとおりです。
# 計画: ユーザー認証APIの追加
## 概要
JWTベースの認証APIエンドポイントを追加する。
## 影響範囲
- src/routes/auth.ts(新規作成)
- src/middleware/auth.ts(新規作成)
- src/types/auth.ts(新規作成)
- src/routes/index.ts(ルーティング追加)
- package.json(jsonwebtoken追加)
## 実装ステップ
- [ ] Step 1: 型定義の作成(src/types/auth.ts)
- [ ] Step 2: JWT検証ミドルウェアの実装(src/middleware/auth.ts)
- [ ] Step 3: 認証エンドポイントの実装(src/routes/auth.ts)
- [ ] Step 4: ルーティングへの組み込み(src/routes/index.ts)
- [ ] Step 5: テストの作成(src/__tests__/auth.test.ts)
## リスク・注意点
- 既存のセッション管理との競合に注意
- トークン有効期限の設定はenvで管理する
このファイルは次回のセッションでも参照でき、長期的なタスク管理にも活用できます。
Extended Thinkingとの併用
Plan ModeとExtended Thinking(拡張思考)は、どちらも「考えてから動く」ための機能ですが、その粒度と目的が異なります。
2つの機能の違い
| 特性 | Extended Thinking | Plan Mode |
|---|---|---|
| スコープ | 1つのターン内での深い推論 | 複数ステップにまたがる構造化された計画 |
| 出力 | 思考プロセスが内部で展開される | 計画ファイルとして永続化される |
| 操作 | Option+T(macOS) / Alt+Tで切り替え | Shift+Tab / /planで切り替え |
| 適用場面 | 複雑なロジック、アルゴリズム設計 | 大規模タスク、複数ファイルの変更 |
| コスト制御 | MAX_THINKING_TOKENS環境変数で上限設定 | 探索エージェントの呼び出し回数に依存 |
併用のベストプラクティス
最も効果的なのは、Plan Mode内でExtended Thinkingを有効にすることです。
# Extended Thinkingのトークン予算を設定してから起動
export MAX_THINKING_TOKENS=16000
claude
Plan Modeに入った状態でExtended Thinkingが有効になっていると、各フェーズ(特にDesignとReview)で深い推論が行われます。例えば、Design フェーズでは以下のような効果があります。
- 依存関係の見落としが減る
- エッジケースが事前に検出される
- 代替アプローチの比較が精緻になる
# Plan Mode + Extended Thinking の典型的な使い方
> Shift+Tab # Plan Modeに切り替え
> 「認証システムをセッションベースからJWTに移行してください」
# Claudeの内部動作:
# 1. Extended Thinkingで要件を深く分析
# 2. Explore Agentで現在の認証コードを探索
# 3. Extended Thinkingで移行戦略を比較検討
# 4. Plan Agentで段階的な移行計画を策定
使い分けの判断基準
| 状況 | 推奨 |
|---|---|
| 1ファイル内のアルゴリズム改善 | Extended Thinkingのみ |
| 3ファイル以上にまたがる変更 | Plan Mode |
| アーキテクチャ刷新 | Plan Mode + Extended Thinking |
| 簡単なバグ修正 | どちらも不要(通常モードで十分) |
ハンズオン: APIエンドポイント追加を計画する
架空のプロジェクト「TaskFlow」(タスク管理APIサーバー)に、新しいAPIエンドポイントを追加するシナリオで実践します。
前提
| 項目 | 詳細 |
|---|---|
| プロジェクト | Express + TypeScript のREST APIサーバー |
| 追加するエンドポイント | POST /api/tasks/:id/comments (タスクへのコメント追加) |
| 要件 | 認証必須、バリデーション付き、テスト込み |
Step 1: Plan Modeに入る
Claude Codeを起動し、Shift+TabでPlan Modeに切り替えます。プロンプト表示が変わり、Plan Modeであることが示されます。
plan> タスクへのコメント追加API(POST /api/tasks/:id/comments)を
実装してください。認証必須、バリデーション付き、テストも書いてください。
Step 2: 探索フェーズ(Initial Understanding)
Claudeは自動的にExplore Agentを起動し、コードベースを探索します。
[Explore Agent] ディレクトリ構造を確認中...
src/
├── routes/
│ ├── tasks.ts ← 既存のタスクルート
│ └── index.ts ← ルーティング定義
├── middleware/
│ └── auth.ts ← 認証ミドルウェア
├── models/
│ └── task.ts ← Taskモデル
├── types/
│ └── task.ts ← Task型定義
└── __tests__/
└── tasks.test.ts ← 既存テスト
[Explore Agent] 既存のエンドポイントパターンを分析中...
- GET /api/tasks → getAllTasks()
- POST /api/tasks → createTask()
- PUT /api/tasks/:id → updateTask()
[Explore Agent] 認証ミドルウェアの仕様を確認中...
- authMiddleware() でJWTトークンを検証
- req.user にユーザー情報を格納
この段階では、Claudeはファイルの読み込みと検索だけを行い、一切の変更を加えません。
Step 3: 設計フェーズ(Design)
Explore Agentの結果をもとに、Plan Agentが設計を行います。
[Plan Agent] 設計を策定中...
新規作成ファイル:
- src/types/comment.ts — Comment型定義
- src/models/comment.ts — Commentモデル
- src/routes/comments.ts — コメントルート
- src/__tests__/comments.test.ts — テスト
修正ファイル:
- src/routes/index.ts — コメントルートの追加
- src/models/task.ts — commentsリレーションの追加
Step 4: レビューと確定(Review → Final Plan)
計画のドラフトが表示されたら、あなたが内容を確認します。
plan> コメントの文字数制限はありますか?また、コメントの編集・削除も必要ですか?
このように、Plan Mode内であなたが追加の要件を伝えると、Claudeは計画を修正します。今回は「最大500文字、編集・削除は次フェーズで対応」と伝えます。
plan> 最大500文字。編集・削除はこのフェーズでは不要です。
最終計画が確定すると、~/.claude/plans/ に計画ファイルが保存されます。
Step 5: 実行に移る(ExitPlanMode)
計画に問題がなければ、Shift+Tabで通常モードに戻ります。
> 先ほどの計画に従って実装を開始してください。
Claudeは計画ファイルを参照しながら、ステップバイステップで実装を進めます。各ステップの完了状況は計画ファイルのチェックリストで追跡できます。
## 実装ステップ
- [x] Step 1: Comment型定義の作成
- [x] Step 2: Commentモデルの実装
- [ ] Step 3: コメントルートの実装 ← 現在ここ
- [ ] Step 4: ルーティングへの組み込み
- [ ] Step 5: テストの作成
まとめ
Plan Modeを使うかどうかの判断基準を整理します。
| 状況 | 推奨アプローチ |
|---|---|
| 1〜2ファイルの小さな修正 | 通常モードでそのまま実装 |
| 3ファイル以上の中規模タスク | Plan Modeで計画してから実装 |
| アーキテクチャ変更・大規模リファクタリング | Plan Mode + Extended Thinkingで綿密に計画 |
| よく知らないコードベースでの初回作業 | Plan Modeで探索してから着手 |
次のアクションとしておすすめ:
- まずShift+Tabを試す — 普段のタスクでPlan Modeに切り替えてみて、Claudeがどのように探索・計画するか観察する
- 中規模のタスクで本格活用する — 新しいAPIエンドポイントの追加や、既存機能のリファクタリングなど
- Extended Thinkingと併用する —
MAX_THINKING_TOKENSを設定し、設計フェーズの推論精度を高める - 計画ファイルをチームで共有する —
~/.claude/plans/の計画ファイルをPRの説明に引用して、レビュアーに意図を伝える
Plan Modeは「急がば回れ」の精神をAI開発に持ち込むツールです。5分の計画が2時間の手戻りを防ぐ——まずは次の中規模タスクでShift+Tabを押してみてください。
参考リンク:
関連記事: