← レッスンに戻る
第5章 · Claude Code入門

Plan Mode と安全な進め方

Plan Mode & Safe Workflow · 約 10 分

重要キーワード

English日本語説明
Plan Mode 計画モード 書き換えを行わず計画だけを立てるモード
Branch ブランチ git の作業分岐
Checkpoint チェックポイント 作業途中の安全な巻き戻しポイント

Plan Mode (計画モード)

Shift+TabPlan Mode に切り替えると、Claude は 書き換えを行わず計画だけ提示 します。

典型的な流れ

[default] > ユーザー認証に Google OAuth を追加して
              ↓ Shift+Tab
[plan]    > (同じ依頼)
              ↓
Claude: 計画を提示...
  1. requirements.txt に authlib を追加
  2. app/auth/oauth.py を新規作成 (OAuth フロー実装)
  3. app/routes/auth.py に /login/google, /callback ルート追加
  4. app/templates/login.html に「Googleでログイン」ボタン追加
  5. .env.example に GOOGLE_CLIENT_ID/SECRET を追記
  6. tests/test_oauth.py で 5 ケース追加
              ↓ ユーザーがレビュー → 「OK、進めて」
              ↓ Shift+Tab
[acceptEdits] > 計画通り実装して

なぜ Plan Mode が便利か

Plan Mode で深く計画させるコツ

「計画を出して」だけだと粗い場合があるので、こう聞くと精度が上がる:

計画を提示してください。各ステップに次を含めてください: - 対象ファイルの絶対パス - 変更前後のロジックの要点 - 影響範囲 (他に修正が波及するファイル) - テスト戦略 (新規テスト名・既存テストへの影響) - ロールバック方法

安全な進め方のチェックリスト

# やること なぜ
1 ブランチを切ってから main を直接いじらない (git checkout -b feat/oauth)
2 小さな単位でコミット 失敗時に部分巻き戻しできる
3 テストを通してからマージ Claude にもテスト実行させる
4 危険操作は手動で git push -f, rm -rf は自分で打つ
5 CLAUDE.md に禁則を書く 「migrations 手動編集禁止」など
6 大規模変更は Plan Mode から 方向性ズレを早期発見
7 git status を毎節目で確認 想定外の編集を発見

チェックポイント運用 (実例)

リファクタの前後で git をうまく使う:

# 1. 不安なら一時コミット (作業ベースを残す)
git checkout -b refactor/services
git commit -am "wip: before refactor"

# 2. Claude に任せる
claude
> services 層を別ファイルに分離。テストも新パスに合わせて修正。

# 3. テスト
pytest -q

# 4a. OK → squash で綺麗な 1 コミットに
git rebase -i HEAD~5

# 4b. NG → 一発でロールバック
git reset --hard HEAD~5

/undo と git の関係

Claude Code には /undo がある場合がありますが、git に頼るのが確実。 Claude が複数ファイル / シェルコマンドを実行した後の状態を戻すには、git の方が信頼できる。

Worktree で本格的に隔離する (詳細は ch6-l7)

リスキーな作業や並列実験には git worktree:

git worktree add ../my-project-experiment -b experiment
cd ../my-project-experiment
claude

main 作業ツリーを汚さず別フォルダで実験できる。Claude Code 側にも EnterWorktree ツール (Agent から isolation: worktree) があり、エージェント自身が隔離環境を作る使い方も可能。

permission ルールで自動承認の枠組みを定義 (詳細は ch6-l6)

.claude/settings.json でルール化:

{
  "permissions": {
    "allow": [
      "Bash(git status)",
      "Bash(git diff*)",
      "Bash(pytest*)",
      "Bash(npm test*)",
      "Bash(npm run lint)"
    ],
    "deny": [
      "Bash(git push --force*)",
      "Bash(git reset --hard*)",
      "Bash(rm -rf*)",
      "Read(.env)",
      "Read(**/*.pem)"
    ]
  }
}

git status / pytest などは 無確認で実行git push --force絶対実行不可 に。

危険な操作のリスト

Claude Code に任せず 自分の手で打つ べきコマンド:

カテゴリ
git の破壊 git push --force, git reset --hard origin/main
広範な削除 rm -rf, git clean -fd
本番アクセス DB の DELETE/UPDATE/DROP, 本番 deploy
シークレット操作 API キー再発行、.env への鍵書き込み
CI/CD 設定 .github/workflows/ の本番デプロイトリガー
ネット越し操作 curl ... | bash, クラウド SDK の delete 系

CLAUDE.md と .claude/settings.json の両方に明記しておくのが理想。

▶ プランレビュー想定
あなたは Claude Code の Plan Mode のような立場で、次の依頼に対する変更計画 (read 対象ファイル / 編集箇所 / 検証方法 / ロールバック手順) を提示してください。依頼: 「Flask アプリにレートリミット機構を追加 (1分100リクエスト上限)」

演習問題

演習 1: Plan Mode で計画を取る

あなたのプロジェクトで、ある程度大きな変更 (例: テスト追加、ライブラリ移行) を Claude Code に依頼してください。 ただし Plan Mode で計画だけを取り、実行はせずレビューしてください。

チェック項目: - 計画は具体的か (「ファイル X を編集」レベルまで踏み込んでいるか) - 想定外の影響範囲が含まれていないか - テスト追加・ロールバック手順が含まれるか

スタータープロンプト:
私のプロジェクトに <変更内容> を加えたいです。Plan Mode 想定で、編集予定のファイル一覧、各ファイルの変更概要、検証方法、ロールバック方法を順に提示してください。実装はしないでください。
ヒントを見る

Plan Mode は Claude Code の Shift+Tab で切り替えます。計画が大雑把すぎる場合は「もう少し具体的に」とフィードバックを返すと精度が上がります。

理解度チェック

  1. Plan Mode の特徴は?
    1. ファイルを書き換えない計画提示モード
    2. 自動でデプロイするモード
    3. 音声入力モード
    4. API キーを暗号化するモード
  2. 安全に Claude Code を使うための推奨でないのは?
    1. ブランチを切る
    2. テストを回す
    3. main で直接作業
    4. 小刻みコミット
  3. Plan Mode の切替えに使うキーは?
    1. Tab
    2. Shift+Tab
    3. Ctrl+P
    4. Esc
  4. 破壊的作業を隔離する git の機能は?
    1. worktree
    2. stash
    3. reflog
    4. submodule
解答と解説を見る
  1. A — 計画だけ立てて変更は行わないモードです。
  2. C — main で直接作業するのは危険。ブランチを切って進めましょう。
  3. B — Shift+Tab で permission mode / plan mode を巡回できます。
  4. A — git worktree は別ディレクトリで作業ツリーを分けられます。