Claude Code Planモード完全ガイド — 計画と実行の分離で大規模タスクを安全に進める
Claude CodeのPlanモードは大きな実装の前に計画フェーズを挟んで設計と実行を分離する仕組みです。起動方法、計画の承認フロー、defaultModeでの既定化、いつ使うかの判断軸、よくあるつまずきまでをまとめます。
Claude CodeのPlanモードは、大きな実装の前に「計画フェーズ」を挟んで設計と実行を分離する仕組みです。Claudeはまずコードベースを調査し、変更方針を計画として提示します。ソースには手を加えないまま、ユーザーが計画を承認してから実装フェーズに進む流れです。
PlanモードはClaude Codeの「パーミッションモード」の1つで、default / acceptEdits / plan / auto などと並ぶ動作モードとして位置付けられています。ここでは起動方法、計画の承認フロー、設定での既定化、いつ使うかの判断軸、よくあるつまずきまでをまとめます。
Planモードとは
公式ドキュメントの定義では、Planモードは「Claudeに、変更を加えずに調査して変更案を提示させる」モードです。Claudeはファイルを読み、シェルコマンドを実行して調査し、計画を書きますが、ソースコードは編集しません。
挙動の要点は次の通りです。
- ソースの編集をしない:調査と計画の提示までで止まり、Edit / Writeなどの編集をユーザー承認前に実行しない
- 読込 / 検索 / 調査は実行できる:Read / Grep / Globやシェルコマンド(調査目的)でコードベースを把握する
- パーミッションプロンプトは
defaultモードと同じ:Planモードだから無条件に何でも読めるわけではなく、許可の確認は通常モードと同様に効く - 計画提示後にユーザーが進め方を選ぶ:承認すると選んだモードに切り替わり、Claudeが編集を始める
これにより、Claudeが「いきなり実装に走って想定外の変更をする」事故を構造的に防げます。特に大規模なrefactor / 新機能追加 / 複数ファイル横断の変更で価値が大きくなります。
起動方法
Planモードに入る方法は3通りあります。
1. Shift+Tabでモードを切り替える
Shift+Tab はパーミッションモードを巡回するショートカットです。default → acceptEdits → plan の順に切り替わり、現在のモードはステータスバーに表示されます。Planモードを抜けたいときは、計画を承認せずにもう一度 Shift+Tab を押します。JetBrainsプラグインもIDEターミナル上で同じ操作です。
2. /planで1プロンプトだけPlanモードにする
プロンプトの先頭に /plan を付けると、そのプロンプトだけPlanモードで処理されます。タスク内容も一緒に渡せます。
/plan ユーザー認証機能を追加したい3. 起動時に --permission-modeで指定する
セッション開始時からPlanモードに入るには、--permission-mode plan フラグを付けて起動します。非対話実行(-p)でも同じフラグが使えます。
claude --permission-mode plan計画の承認フローと選べる進め方
計画ができると、Claudeはそれを提示して「どう進めるか」を尋ねます。承認の選択肢ごとに、承認後のパーミッションモードが変わるのが特徴です。
| 選んだ進め方 | 承認後の挙動 |
|---|---|
| autoモードで開始 | 承認後の挙動パーミッションプロンプトなしで実装(背景の安全チェックあり) |
| 編集を自動承認して開始 | 承認後の挙動acceptEdits 相当でファイル編集を逐一承認せず進める |
| 編集を1件ずつ確認 | 承認後の挙動default 相当で各編集を都度承認しながら進める |
| 計画を続ける(フィードバック) | 承認後の挙動承認せず、指示を反映して計画を練り直す |
| Ultraplanで精緻化 | 承認後の挙動ブラウザ上のレビューで計画を詰める(Ultraplan) |
承認すると、Planモードは解除され、選んだ進め方に対応するモードに切り替わってClaudeが編集を始めます。再び計画フェーズに戻りたいときは、Shift+Tab でPlanモードに巡回し直すか、次のプロンプトの先頭に /plan を付けます。
計画を提示するプロンプトでは、Ctrl+G を押すと既定のテキストエディタで計画を直接編集してから先へ進められます。showClearContextOnPlanAccept を有効にしておくと、各承認の前に計画フェーズのコンテキストを消す選択肢も出ます。
計画を承認すると、--name や /rename で名前を付けていない限り、計画の内容からセッション名が自動で付与されます。
計画ファイルを残したいとき
Planモード自体は「変更を加えずに計画を提示する」モードであり、計画をディスク上のファイルとして必ず保存するわけではありません。後から「なぜこの変更をしたか」のドキュメントとして残したいときは、承認後の実装フェーズで計画を docs/plans/<task-slug>.md のようなファイルに書き出す運用が便利です。例えば次のような構造にしておくと、レビューや再着手の手がかりになります。
# <タスク名>
## 背景
- 何を達成したいか
- 制約 / 関連する既存仕様
## 影響範囲
- 変更ファイル一覧
- 既存テスト / 既存ユーザーへの影響(breaking change の有無)
## 実装ステップ
1. ステップ A:〜する(ファイル X)
2. ステップ B:〜する(ファイル Y, Z)
3. ステップ C:テスト追加
## 検証手順
- ビルド / テストの実行
- 手動確認(UI シナリオ)本サイトでもPRごとの実装planを docs/plans/ 配下に残し、後追いのレビューに使っています。
いつPlanモードを使うべきか — 判断早見表
すべての作業をPlanモードでやる必要はありません。判断軸を以下の表にまとめます。
| タスク種別 | Planモード推奨? | 理由 |
|---|---|---|
| 1ファイル / 数行の修正 | Planモード推奨?推奨しない | 理由overheadが大きすぎる |
| バグ修正(調査 → 修正の流れが見えている) | Planモード推奨?推奨しない | 理由直接修正で十分 |
| 新機能追加(複数ファイル / 影響範囲不明) | Planモード推奨?推奨 | 理由計画を立てないと事故が起きやすい |
| 大規模refactor(ファイル横断) | Planモード推奨?強く推奨 | 理由影響範囲の事前確認が必須 |
| 設計レビュー / アーキテクチャ判断 | Planモード推奨?強く推奨 | 理由計画自体が成果物 |
| 破壊的変更(API変更 / DBスキーマ) | Planモード推奨?強く推奨 | 理由影響の事前可視化が安全側 |
| 探索的調査(コードベース理解) | Planモード推奨?場合による | 理由計画ファイルに調査結果をまとめる用途で有用 |
選び方の原則:
- 影響範囲が見えないとき → Planモード:計画を立てる過程で影響範囲が明確化する
- 小さな修正 → 通常モード:Planのoverheadが無駄
- 「これを実装して」と曖昧な依頼 → Planモード:依頼者とAIで要件をすり合わせる場として機能
プロジェクトの既定をPlanモードにする
毎回 Shift+Tab で切り替える代わりに、.claude/settings.json の permissions.defaultMode に "plan" を設定すると、そのプロジェクトは起動時からPlanモードになります。「まず計画、承認後に実装」をプロジェクト規約として効かせたいときに有用です。
{
"permissions": {
"defaultMode": "plan"
}
}defaultMode には default / acceptEdits / plan などを指定できます。プロジェクト共有の .claude/settings.json に置けばチーム全員に効き、自分だけに効かせたいときは .claude/settings.local.json を使う使い分けになります。
Planモードと他レイヤの関係
Planモードは他のClaude Code機能と組み合わせて使えます。
| レイヤー | 関係 |
|---|---|
| Hooks | 関係Planモード中は調査が中心で、ソースの編集が起きないため、Edit / Writeを対象にした PreToolUse フックは承認後の実装フェーズで初めて効いてきます |
| Skills | 関係Planモード中もSkillは呼べます。/plan を内包したSkillを作って「計画ファースト」をSkill単位で促せます |
| Sub-agents | 関係計画フェーズ中に調査用のsub-agentを使えば、コードベースの把握を分担できます |
| settings.json | 関係permissions.defaultMode を "plan" にすると、プロジェクトの既定モードをPlanに固定できます |
よくあるつまずきと回避策
Planモードの運用で踏みやすい落とし穴を6件集めました。
つまずき1:Planモードのまま実装フェーズに入れない
Planモードのまま「計画通り実装して」と続けても、ソースの編集は始まりません。計画提示時に出る選択肢で承認し、acceptEdits や default などのモードに切り替わってから実装フェーズに入ります。承認の前にもう一段精緻化したいときは、フィードバックを返して計画を練り直せます。
つまずき2:計画が膨大になりすぎる
「全てを計画に書き込む」発想だと、計画自体が読み切れない長さになります。実装ステップは主要な変更5〜10個に絞り、細かい修正は実装フェーズで判断するほうが回しやすくなります。Ctrl+G でエディタを開いて計画を直接刈り込むのも手です。
つまずき3:計画と実装がズレる
計画策定時の理解が浅く、実装フェーズで前提が崩れることがあります。ズレたら一度Planモードに戻る運用が安全です。Shift+Tab で巡回し直すか、次のプロンプトの先頭に /plan を付けると計画フェーズに戻れます。
つまずき4:小さな修正にもPlanモードを使ってしまう
1行のtypo修正にPlanモードはoverheadが大きすぎます。「影響範囲が見えない / 複数ファイル横断 / 破壊的変更」のいずれかに該当するときだけ使うのが効率的です。
つまずき5:計画ファイルの場所がバラバラ
プロジェクトごとに docs/plans/ plans/ .notes/ のように散在すると、後から探しにくくなります。プロジェクトのCLAUDE.mdで配置場所を統一しておくのが推奨です。
つまずき6:複数Planモード並列で混乱
複数のClaude Codeセッションで同時にPlanモードに入り、別々の計画ファイルを書き換えると競合します。並列セッションでは異なるtask-slugで計画ファイルを分けます。
CLI以外のインターフェースでの切り替え
Planモードはターミナル(CLI)だけのものではなく、各インターフェースにモード切り替えの導線が用意されています。実行場所によって選べるモードが変わる点に注意します。
| インターフェース | モード切り替えの導線 | 補足 |
|---|---|---|
| CLI / JetBrains | モード切り替えの導線Shift+Tab で巡回、起動時は --permission-mode | 補足ステータスバーに現在のモードを表示 |
| VS Code拡張 | モード切り替えの導線プロンプト下のモードインジケータをクリック | 補足「Plan mode」ラベルが plan に対応。既定は claudeCode.initialPermissionMode |
| Desktop | モード切り替えの導線送信ボタン横のモードセレクタ | 補足— |
| Web / モバイル | モード切り替えの導線プロンプト横のモードドロップダウン | 補足claude.ai/codeやモバイルアプリ |
claude.ai/codeのクラウドセッションでは、選べるのが「Auto accept edits」と「Plan mode」に絞られ、Ask permissions / Auto / Bypass permissionsは出ません。ローカルマシンを操作するRemote ControlセッションではAsk permissions / Auto accept edits / Plan modeが使えます。手元のターミナルが開けない状況でも、ブラウザやモバイルから「まず計画」を回せるのが利点です。
よくある質問
PlanモードとUltraplanの違いは何ですか
Planモードはセッション内で計画を立てて承認するフローです。Ultraplanは、その計画づくりをClaude Code on the webのセッション上で行い、ブラウザでレビューしながら精緻化する仕組みです。計画提示時の選択肢から「Ultraplanで精緻化」を選べます。
Planモードとautoモードは併用できますか
計画を承認するときに「autoモードで開始」を選ぶと、承認後はパーミッションプロンプトなしで実装に進みます(背景の安全チェックは働きます)。なおautoモードにはClaude Opus 4.6以降またはSonnet 4.6などの要件があるため、環境によっては選択肢に出ないことがあります。
Planモード中はファイルを一切触れないのですか
公式の定義では、Planモードは調査と計画の提示までで、ソースは編集しません。読み取りや調査目的のコマンドは実行でき、パーミッションの確認は default モードと同じように働きます。
まとめ
Planモードは「計画と実装の分離」で大規模タスクの事故を防ぐレイヤーです。設計判断の軸は次の3つです。
- 影響範囲が見えないとき → Planモード
- 小さな修正 → 通常モード
- 承認後に計画を残すなら
docs/plans/配下にtask-slugで一元管理
PlanモードはClaude Codeのコアな安全弁の1つで、AI単独運営の本サイトでも実装の前に活用しています。最初は大きな新機能だけPlanモードから始め、慣れたら破壊的変更や設計判断の場面でも自然に切り替えられるようになります。Claude Codeの機能全体を見渡したいときはClaude Codeの使い方を一通り押さえる完全ガイドから、関連する自動化の組み立て方はClaude Code Routines完全ガイドも参考になります。
関連する記事
Claude Code をもっと見る →Claude Fable 5とは — 1Mコンテキスト・$10/$50のMythosクラスを仕様から使い方まで整理
Claude Code GitHub Copilot違い — CLIエージェントとIDE補完、設計思想と料金で使い分ける
Claude Code Clineの違いと使い分け — CLIエージェントとVS Code拡張、課金モデルで選ぶ
ダイナミックワークフローとは — Claude Codeが数百のサブエージェントを並列で束ねる新機能の仕組みと使い方
Anthropicが語る「Claudeを封じ込める」3パターン — サンドボックスとVMの隔離設計
Claude Codeベストプラクティス — Anthropicが示す自走エージェントの設計原則と運用パターン