AIコーディング Claude Code planモード 承認フロー 権限モード 設定ファイル 開発効率化

planモードとは — ソースを編集せず調査と計画だけを行うモード

Claude Codeのplanモード(計画モード)は、ファイルを書き換えずにコードベースを調査し、実装計画だけを提示させる権限モードだ。既存ファイルの読み取りや探索用のシェルコマンドは実行するが、ソースの編集は計画を承認するまでブロックされる。いきなり書き換えられる事故を避け、方針を先に固められる。

Shift+Tab や /plan で入って抜ける

セッション中に Shift+Tab を押すと、モードが default → acceptEdits → plan の順でサイクルする。1回のプロンプトだけ計画させたいなら、入力の先頭に /plan を付ければよい。起動時から固定したいときは claude --permission-mode plan を使う。

抜けるには、計画を承認しないまま Shift+Tab をもう一度押す。

読み取り専用の挙動と、自動モード併用時に変わる点

権限プロンプトの出方は基本的にManual(手動)モードと同じで、読み取り以外は都度確認が入る。ただし自動モード(別の分類器モデルが実行前に危険を判定する仕組み)が使える環境で useAutoModeDuringPlan がオン(デフォルト)なら、検索やファイル読み取りなどの読み取り専用コマンドはプロンプトなしで通る。どちらの場合でも、編集は計画を承認するまでブロックされたままだ。

計画をレビューして承認するまでの手順と、切り替わる権限モード

計画がまとまるとClaudeが内容を提示し、どう進めるかを尋ねてくる。ここで選んだ選択肢がそのまま次の権限モードを決めるため、承認は「計画の可否」と「以降の自動化レベル」を同時に選ぶ操作になる。

承認時に選べる5つの選択肢と移行先

  • 承認して自動モードで開始 → auto
  • 承認して編集を受け入れる → acceptEdits
  • 承認して各編集を手動でレビュー → 手動(default)
  • フィードバック付きで計画を続ける(planモードのまま反復)
  • Ultraplanでブラウザレビュー用に改善

承認前に Ctrl+G を押せば、提案された計画をエディタで開いて直接手を入れられる。

最後の選択肢にある Ultraplan は、ローカルCLIの計画タスクを、planモードで動くWeb版 Claude Code(Claude Code on the web)のセッションに渡す機能だ。クラウド側で計画を下書きさせている間もターミナルは別作業に使え、計画ができたらブラウザで開いて、任意のセクションにコメントを付けたり修正を依頼したりできる。実行はWeb上でそのまま進めるか、待機中のターミナルに送り返すかを選べる。なおリサーチプレビュー段階の機能で、Web版 Claude Code アカウントとGitHubリポジトリが必要になる。

タスクの機密度でどう選ぶか

判断の軸は、監視と手離れのトレードオフだ。長時間まかせたい定型作業ならautoが速いが、公式ドキュメントも「安全性を保証しない」と明記している以上、本番へのデプロイやマイグレーションを含む案件では避けたい。差分をまとめて確認したいならacceptEdits、機密性の高い変更なら手動レビューで一手ずつ止める。迷ったら手動から始め、信頼できる方向だけ緩めるのが安全だ。

現場で計画を失わないための注意点と結果の確認方法

計画が消える既知の報告と回避策

計画を中断した後もUIが計画モードのまま残る不具合(#78722)や、承認ツールがターンを分割した結果セッションが「not in plan mode」に落ち、計画が復旧不能なまま失われるという報告(#81230)がGitHubに上がっている。いずれも原因確定前のユーザー報告だが、承認前に Ctrl+G で計画を開いて手元にコピーしておけば、万一のときの保険になる。

加えて、まとまった計画は適宜Markdownファイルなどに書き出して保存しておくとよい。ファイルとして手元に残しておけば、UIやセッション側で何が起きても計画そのものを失わずに済む。

defaultMode の設定と適用範囲の落とし穴

チームの標準を計画モードにするなら、設定ファイル .claude/settings.json に defaultMode を書く。

{
  "permissions": {
    "defaultMode": "plan"
  }
}

落とし穴は auto の扱いだ。plan はプロジェクト設定でも効くが、defaultMode: "auto" は v2.1.142 以降、プロジェクトやローカルの settings からは無視される。リポジトリが自分自身に自動モードを付与できないための仕様なので、autoを既定にしたいなら ~/.claude/settings.json に書く。設定が効いたかは、セッション開始時にステータスバーへ表示されるモードで確認できる。