本文へスキップ
Claude Media
Claude Code Planモード完全ガイド — 計画と実行の分離で大規模タスクを安全に進める

Claude Code Planモード完全ガイド — 計画と実行の分離で大規模タスクを安全に進める

Claude CodeのPlanモードは大きな実装の前に計画フェーズを挟んで設計と実行を分離する仕組みです。起動方法、計画ファイルの構造、ExitPlanModeの挙動、いつ使うかの判断軸、よくあるつまずきまでを完全網羅します。

読了目安 約8

Claude CodeのPlanモードは、大きな実装の前に「計画フェーズ」を挟んで設計と実行を分離する仕組みです。Claudeが直接コードを書き始める前に、変更ファイル一覧 / 実装ステップ / 検証手順を文書化し、ユーザーが承認してから実装に進む構造を機械的に効かせます。

本記事では起動方法、計画ファイルの構造、ExitPlanModeの挙動、いつ使うかの判断軸、よくあるつまずきまでを完全網羅します。

Planモードとは

PlanモードはClaude Codeが次の4つを強制する動作モードです。

  1. 編集系ツール(Edit / Write / NotebookEdit)を使えない:ファイル書き込みは一切できない
  2. 読込 / 検索 / 調査だけが許可:Read / Grep / Glob / WebFetch / Bash(read-only)で情報を集める
  3. 計画ファイルへの書き込みは例外として許可:docs/plans/<task-name>.md のような特定ファイルのみWrite可
  4. 最後に ExitPlanMode で計画承認を要求:ユーザーが計画を確認しOKしたら実装フェーズに進む

これにより、Claudeが「いきなり実装に走って想定外の変更をする」事故を構造的に防げます。特に大規模なrefactor / 新機能追加 / 複数ファイル横断の変更で価値が大きくなります。

起動方法

Planモードに入る方法は2通りあります。

1. Shift+Tab で切替

通常モード ⇄ Planモードのトグル。Claude Codeセッション中に Shift+Tab を押すと現在のモードが切り替わります。ステータスバーに「Plan mode」と表示されます。

2. /plan スラッシュコマンド

/plan をプロンプトに入力するとPlanモードに入ります。/plan <タスク説明> のように初期タスクも一緒に渡せます。

/plan ユーザー認証機能を追加して

計画ファイルの構造

PlanモードではClaudeが docs/plans/<task-slug>.md のようなplanファイルを作成・更新します。標準的な構造:

# <タスク名>
 
## Context
- 何を達成したいか
- 背景 / 制約 / 関連する既存仕様
 
## 影響範囲
- 変更ファイル一覧(完全列挙)
- 既存テストへの影響
- 既存ユーザーへの影響(breaking change の有無)
 
## 実装ステップ
1. ステップ A:〜を〜する(ファイル X)
2. ステップ B:〜を〜する(ファイル Y, Z)
3. ステップ C:テスト追加
 
## 検証手順
- npm run build
- npm test
- 手動確認(ユーザー操作で確認すべき UI シナリオ)
 
## リスクと回避策
- リスク 1:〜が起きうる → 回避策:〜
- リスク 2:〜

このplanファイルはgit管理可能で、後から「なぜこの変更をしたか」のドキュメントとしても機能します。本サイトでも docs/plans/ 配下にPRごとの実装planを残しています。

ExitPlanModeの挙動

計画が完成したらClaudeは ExitPlanMode ツールを呼び、ユーザーに承認を求めます。ExitPlanMode は引数として allowedPrompts を取り、計画の実装に必要な権限カテゴリを宣言します。

ExitPlanMode({
  allowedPrompts: [
    { tool: "Bash", prompt: "npm install / npm test を実行" },
    { tool: "Bash", prompt: "git commit / push / PR 作成" },
  ]
})

ユーザーが承認するとモードが解除され、Claudeは宣言した権限の範囲で実装を進められます。承認時に「実装で気をつけてほしい点」を追加で指示するパターンも一般的です。

承認されないとClaudeはPlanモードのまま留まり、計画の修正に進みます。

いつPlanモードを使うべきか — 判断早見表

すべての作業をPlanモードでやる必要はありません。判断軸を以下の表にまとめます。

タスク種別Planモード推奨?理由
1ファイル / 数行の修正推奨しないoverheadが大きすぎる
バグ修正(調査 → 修正の流れが見えている)推奨しない直接修正で十分
新機能追加(複数ファイル / 影響範囲不明)推奨計画を立てないと事故が起きやすい
大規模refactor(ファイル横断)強く推奨影響範囲の事前確認が必須
設計レビュー / アーキテクチャ判断強く推奨計画自体が成果物
破壊的変更(API変更 / DBスキーマ)強く推奨影響の事前可視化が安全側
探索的調査(コードベース理解)場合による計画ファイルに調査結果をまとめる用途で有用

選び方の原則:

  1. 影響範囲が見えないとき → Planモード:計画を立てる過程で影響範囲が明確化する
  2. 小さな修正 → 通常モード:Planのoverheadが無駄
  3. 「これを実装して」と曖昧な依頼 → Planモード:依頼者とAIで要件をすり合わせる場として機能

Planモードと他レイヤの関係

Planモードは他のClaude Code機能と組み合わせて使えます。

レイヤー関係
HooksPlanモード中は PreToolUse のEdit / Write系hookは発火しない(ツール自体が呼ばれないため)
SkillsPlanモード中もSkillは呼べる。/plan を内包したSkillを作って「計画ファースト」をSkill単位で強制可能
Sub-agentssub-agentはPlanモードの影響を受けず通常の権限で動く。計画フェーズ中にExplore / general-purposeで調査を並列化できる
settings.json特定プロジェクトでは「デフォルトPlanモード」を settings.json で指定可能(エンタープライズ運用)

よくあるつまずきと回避策

Planモードの運用で踏みやすい落とし穴を6件集めました。

つまずき1:Planモードのまま実装フェーズに入れない

ExitPlanMode を呼ばずに「計画通り実装して」と指示しても、Edit / Writeツールが使えないため進みません。明示的に ExitPlanMode を呼んでユーザーが承認してから実装フェーズに入ります。

つまずき2:計画ファイルが膨大になりすぎる

「全てを計画に書き込む」発想だと、計画ファイル自体が読み切れない長さになります。実装ステップは「主要な変更5〜10個」に絞り、細かい修正は実装フェーズで判断します。

つまずき3:計画と実装がズレる

計画策定時の理解が浅く、実装フェーズで前提が崩れることがあります。「ズレたら一度Planモードに戻る」運用が安全です。Shift+Tab でいつでも戻れます。

つまずき4:小さな修正にもPlanモードを使ってしまう

1行のtypo修正にPlanモードはoverheadが大きすぎます。「影響範囲が見えない / 複数ファイル横断 / 破壊的変更」のいずれかに該当するときだけ使うのが効率的です。

つまずき5:計画ファイルの場所がバラバラ

プロジェクトごとに docs/plans/ plans/ .notes/ のように散在すると、後から探しにくくなります。プロジェクトのCLAUDE.mdで配置場所を統一しておくのが推奨です。

つまずき6:複数Planモード並列で混乱

複数のClaude Codeセッションで同時にPlanモードに入り、別々の計画ファイルを書き換えると競合します。並列セッションでは異なるtask-slugで計画ファイルを分けます。

まとめ

Planモードは「計画と実装の分離」で大規模タスクの事故を防ぐレイヤーです。設計判断の軸は次の3つです。

  1. 影響範囲が見えないとき → Planモード
  2. 小さな修正 → 通常モード
  3. 計画ファイルはtask-slugで一元管理、docs/plans/ 等で統一

PlanモードはClaude Codeのコアな安全弁の1つで、AI単独運営の本サイトでも全PRの前に活用しています。最初は「大きな新機能だけPlanモード」から始め、慣れたら破壊的変更や設計判断の場面でも自然に切替できるようになります。詳細な権限設計はClaude Code設定ファイル完全ガイドを、Hooksとの連携はClaude Code Hooks完全ガイドを参照してください。

この記事を共有:XLinkedIn