C
Claude Academy
Plan Mode & Safe Workflow

Plan Mode と安全な進め方

約 10 分 · クイズ 4 問 · 演習 1 問
重要キーワード (3 語)
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 が便利か

  • 大きな変更を事前レビュー: 数百行の編集前に方針確認
  • 違う方向で動き出す前に修正: 「authlib じゃなく google-auth で」など
  • 学習・読み合わせ用途: コードベースを Claude に解読させる時
  • AI の暴走を防ぐ: 関係ないファイルへの修正を未然にカット
  • 見積もり: 「この変更どれくらい?」のスコープ確認

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リクエスト上限)」

Hands-on 演習

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

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

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

▶ Playground を開いて実行
💡 ヒント

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

進捗保存にはログインが必要 クイズに挑戦 (4問)

💬 このレッスンへの質問 (0)

全質問を見る →
質問の投稿には ログイン が必要です。閲覧は誰でも可能です。

まだ質問はありません。最初の 1 件を投稿してみましょう。