
【Claude Code中級編 #4】Plan Modeを使いこなす——大きなタスクを安全に進める
Plan Modeを使うと、Claude Codeは実行前に「何をするか」を提示して承認を待つようになる。
ファイルを大量に変更するリファクタリング、本番環境に影響するデプロイ作業、削除を伴うクリーンアップ——こういった「間違えたら戻せない」タスクで特に効果を発揮する。この記事ではPlan Modeの仕組みと、実際にどう使うかを解説する。
Plan Modeとは
通常のClaude Codeはリクエストを受け取ると即座にツールを実行する。ファイルを編集し、コマンドを走らせ、結果を返す。
Plan Modeではこの流れが変わる。
【通常モード】
リクエスト → ツール実行 → 結果
【Plan Mode】
リクエスト → 計画を提示 → ユーザーが承認 → ツール実行 → 結果
実行前に「これをやろうとしています」という計画が表示され、承認しないと先に進まない。計画を見て「それは違う」と思えば修正を依頼できるし、「やっぱりやめる」こともできる。
有効にする方法
キーボードショートカット(セッション中に切り替え)
Shift + Tab を2回押すと Plan Mode に切り替わる。プロンプトの表示が変わって、Plan Modeに入ったことがわかる。もう一度 Shift + Tab 2回で通常モードに戻る。
設定で常時有効化
毎回切り替えるのが面倒な場合は settings.json で常時有効にできる。
{
"planMode": true
}
プロジェクト単位で有効にしたい場合は .claude/settings.json、全プロジェクト共通にしたい場合は ~/.claude/settings.json に書く。
承認フローの実際
Plan Modeで大きなタスクを依頼すると、以下のような流れになる。
1. 計画の提示
以下の計画で進めます:
1. src/components/ 以下の全コンポーネントで
`className="text-sm"` を `className="text-body"` に統一
2. 対象ファイル: Button.tsx, Card.tsx, Modal.tsx, Form.tsx(計4ファイル)
3. tailwind.config.ts に `text-body` のカスタムクラスを追加
実行してよいですか?
2. 承認または修正依頼
yesまたはy→ 実行に移る- 「3番はやらなくていい」などの修正指示 → 計画が更新されて再提示される
noまたは別の指示 → キャンセルして別の方向に進む
3. 実行
承認後は通常モードと同じように順番に処理が進む。
どんなタスクに使うか
使うべき場面
多数のファイルを一括変更するとき
「このAPI呼び出しを新しい形式に全部書き換えて」のような変更は、ファイルを一つひとつ確認しながら進めるより、計画を見て一括承認した方がコントロールしやすい。
# こういうリクエストはPlan Modeが向いている
「fetchUser() の呼び出し箇所を全部 getUser() に変更して」
「全ページのmetaタグにOGPを追加して」
「tsconfig.json の変更に合わせてimportパスを修正して」
破壊的な操作が含まれるとき
ファイルの削除・移動・リネームは元に戻しにくい。計画段階で対象を確認してから実行できる。
「dist/ と .cache/ 以下のファイルを全部消して」
「components/ を feature/ 以下に整理し直して」
本番環境に影響するコマンドを実行するとき
デプロイ・マイグレーション・環境変数の変更など、本番に直結する作業は計画を見てから承認したい。
「本番DBのマイグレーションを流して」
「AWSのデプロイコマンドを実行して」
使わなくていい場面
小さなバグ修正や一行の変更にPlan Modeを使うと、承認ステップが増えてかえって面倒になる。
# こういうリクエストは通常モードの方がスムーズ
「このtypoを直して」
「console.logを消して」
「変数名をわかりやすくして」
実践例:リファクタリングをPlan Modeで進める
実際にどう使うか、TypeScriptプロジェクトのリファクタリングを例に見てみる。
リクエスト:
「src/lib/ 以下のユーティリティ関数を機能ごとにファイルを分けて整理して」
Plan Modeの応答例:
以下の計画で進めます:
【現状の確認】
src/lib/utils.ts に237行のユーティリティ関数が集中している
【分割方針】
- src/lib/date.ts → 日付フォーマット関連(5関数)
- src/lib/string.ts → 文字列操作関連(8関数)
- src/lib/array.ts → 配列操作関連(6関数)
- src/lib/utils.ts → 残りの汎用関数(削除または維持)
【影響範囲】
- import文の変更が必要なファイル: 12ファイル
- 変更量: 約40箇所のimport文
実行してよいですか?
計画を見て「array.tsは今回いらない」「utils.tsは消さないで」などの修正が可能。承認してから実行に移れるので、途中で「あれ、想定と違う」となるリスクが減る。
Plan Modeのショートカットまとめ
| 操作 | キー |
|---|---|
| Plan Modeに切り替え | Shift + Tab(2回) |
| 通常モードに戻す | Shift + Tab(2回) |
| 計画を承認 | y または yes と入力してEnter |
| 計画を修正依頼 | そのまま修正指示を入力 |
| キャンセル | no と入力または Ctrl + C |
まとめ
- Plan Modeは
Shift + Tab2回で切り替え。常時有効にするならsettings.jsonに"planMode": true - 実行前に計画が提示されて承認しないと進まない——「間違えたら戻せない」タスクに向いている
- 多数ファイルの一括変更・削除・本番環境への操作はPlan Modeを使うと安全
- 小さな変更に使うと承認ステップが増えて逆に面倒。使いどころを見極める
← 第3回:Hooksで自動化する——保存前バリデーション・通知・ログ | 第5回:サブエージェントで並列処理する——Agentツールの使い方 →