Build This Now
Build This Now
What Is Claude CodeInstallationNative InstallerFirst Project
speedy_devvkoen_salo
Blog/Handbook/Core/Planning Modes

Claude Code Plan Mode: A Practical Guide

Use Claude Code Plan Mode to inspect a codebase, challenge an implementation approach, and approve a safer plan before any source file changes.

Want the framework behind these builds?

Get the Claude Code system we use to plan, build, test, and ship production software.

See what we build for companies →
speedy_devvkoen_salo
speedy_devvWritten by speedy_devvPublished Jul 28, 2026Updated Jul 28, 202610 min readHandbook hubCore index

Claude Code Plan Mode separates investigation from implementation. Claude can read the repository, trace dependencies, and propose a sequence of changes, but it cannot edit your source until you approve the plan. That pause is useful when the expensive mistake is not a bad line of code. It is choosing the wrong boundary before writing any code at all.

This guide explains how to enter Plan Mode, give it a useful brief, review what comes back, and know when planning is worth the extra pass.

What Plan Mode actually does

Plan Mode is a read-only permission mode. Claude can read files, search the codebase, inspect Git history, and run commands that help it understand the project. It then presents a plan for review instead of modifying files.

Anthropic's current permission mode documentation distinguishes Plan Mode from normal permission prompts. In default mode, Claude can propose a write and ask you to approve it. In Plan Mode, the session is deliberately held in research and design until you accept a plan or leave the mode.

You can enter it in three ways:

# Start an entire session in Plan Mode
claude --permission-mode plan

In an active CLI session, press Shift+Tab until the status line shows Plan Mode. For one planning turn, prefix the prompt with /plan.

The official CLI reference also supports the same mode in non-interactive use:

claude -p --permission-mode plan \
  "Inspect the authentication flow and propose a migration to passkeys"

In VS Code, Desktop, and Claude Code on the web, select Plan Mode from the mode control near the prompt box.

When Plan Mode earns its keep

Use Plan Mode when an implementation decision will spread across the repository.

Good candidates include:

  • Authentication and authorization changes
  • Database schema migrations
  • Framework or dependency upgrades
  • A feature that crosses UI, API, database, and background jobs
  • Performance work where the bottleneck is not yet proven
  • A refactor in a codebase you do not know well
  • Any task where rollback would be painful

It is usually unnecessary for a spelling correction, a small isolated component, or a failing test with an obvious cause. Planning is not a ritual. It is a tool for reducing uncertainty.

A simple rule works well: if you cannot name the files and invariants that matter, plan first.

Give Claude a planning brief, not a feature slogan

"Plan subscriptions" is too loose. It tells Claude the topic, but not the boundary.

A useful planning prompt includes the outcome, the constraints, the evidence to inspect, and the checks that define success:

Plan a self-serve subscription upgrade flow.

Before proposing changes:
- inspect the existing Stripe webhook handlers
- trace how plan entitlements reach the session
- find every place the current plan is cached
- identify database and API compatibility risks

Constraints:
- Stripe webhooks remain the source of truth
- no breaking schema migration
- existing annual customers must keep their price
- do not change code yet

The plan should name affected files, data flow, failure cases,
test coverage, rollout steps, and rollback conditions.

This prompt makes Claude investigate before designing. It also gives you a concrete basis for rejecting a shallow plan.

For a framework change, point Claude to the authoritative local documentation:

Plan the migration from Next.js 15 to 16.
Read package.json, next.config.ts, proxy or middleware files,
cache usage, and node_modules/next/dist/docs before proposing changes.
Separate mechanical codemods from decisions that need review.

That final sentence matters. Mechanical work and architectural choices should not be mixed into one approval.

What a good plan should contain

A plan is useful when another developer could implement it without rediscovering the codebase.

Look for seven things:

  1. Current behavior. The plan explains how the feature works today and names the source files that prove it.
  2. Proposed boundary. It says which layer owns the new behavior and why.
  3. Concrete file changes. It names files to add or edit, not vague areas such as "the backend."
  4. Data flow. Inputs, validation, persistence, side effects, and outputs are connected.
  5. Failure cases. Retries, partial writes, stale state, permissions, and user-visible errors are covered.
  6. Verification. The plan names tests, type checks, builds, and manual checks.
  7. Rollout. Risky work has a migration order, compatibility window, and rollback path.

If the plan only restates your prompt as a numbered list, keep planning.

Review the plan with adversarial questions

The first draft is a proposal, not a verdict. Ask questions that force the hidden assumptions into the open:

What existing behavior could this break?
Which part of this plan relies on an assumption you did not verify?
Find the simplest implementation with one fewer abstraction.
How does this fail if the webhook arrives twice or out of order?
Which tests would pass even if the feature were still broken?

This is where Plan Mode becomes more than a safety switch. It gives you a cheap place to challenge the architecture.

Claude Code lets you continue refining, approve into a chosen permission mode, or leave Plan Mode without approval. Anthropic's docs also describe opening the proposed plan in your editor with Ctrl+G, which is useful when inline edits are faster than another conversational round.

A reliable two-pass workflow

The cleanest workflow has one pass for understanding and one for execution.

Pass 1: investigate and plan

Start read-only:

claude --permission-mode plan

Ask Claude to inspect the relevant paths, map the current behavior, list uncertainties, and produce the smallest safe plan. Review it until every consequential decision is explicit.

Pass 2: implement against acceptance criteria

Approve the plan into the permission mode you prefer. Then give Claude a short execution reminder:

Implement the approved plan.
Keep the existing public API compatible.
Run the named tests, typecheck, and production build.
Stop and report if repository evidence contradicts the plan.

That final condition prevents a stale plan from becoming an instruction to ignore new evidence.

After implementation, inspect the diff instead of asking whether the task is complete:

git diff --stat
git diff

Then run the checks listed in the plan. The Claude Code workflow guide recommends giving Claude something concrete to verify against, such as tests, expected screenshots, or explicit output.

Make Plan Mode the project default

For repositories where most work is high-impact, set Plan Mode as the default in .claude/settings.json:

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

Do this when the team wants an architecture review before implementation by default. Do not force it on a repository full of tiny content changes or generated files. The right default depends on the cost of a wrong edit.

You can also document planning expectations in CLAUDE.md:

## Planning expectations

- Plan before database, auth, billing, or public API changes.
- Name affected files and compatibility risks.
- Separate migrations from application deployment.
- Include tests, manual verification, rollout, and rollback.

These instructions improve the quality of the plan. The permission mode controls whether Claude can act on it.

Common Plan Mode mistakes

Asking for implementation detail too early

Do not spend the planning turn dictating exact functions and filenames before Claude has inspected the project. State the constraints and let repository evidence shape the design.

Accepting a file list as a plan

"Edit these six files" says nothing about ownership, data flow, or failure behavior. Ask for the reason behind each change.

Planning without a verification path

A plan that ends at "implement the feature" is incomplete. Require checks that can disprove success.

Treating the plan as immutable

Implementation can reveal facts the planning pass missed. Tell Claude to stop when evidence contradicts the plan, then revise it.

Using Plan Mode as a substitute for version control

Plan Mode prevents premature edits. It does not replace a clean branch, a readable diff, tests, or a rollback strategy.

A reusable Plan Mode prompt

Investigate this task in Plan Mode before changing anything:
[describe the desired outcome]

Read the relevant implementation, tests, configuration, and history.

Return:
1. current behavior and evidence
2. constraints and invariants
3. the smallest safe design
4. exact files affected
5. data flow and failure cases
6. test and manual verification plan
7. rollout and rollback
8. unresolved questions

Do not invent missing facts. Mark assumptions explicitly.

This template works for features, migrations, refactors, and incident fixes. Adjust the evidence sources and acceptance criteria, not the basic structure.

If you are building a product from a larger framework, Build This Now can turn the approved architecture into an ordered implementation path. The useful handoff is not "build an app." It is a reviewed plan with boundaries, evidence, and checks.

Claude Code Plan Mode FAQs

Does Plan Mode run terminal commands?

It can run read-only exploration commands, subject to the normal permission system. It should not use those commands to modify source or produce side effects. If a command is not clearly exploratory, keep it out of the planning pass.

Can Claude edit files after I approve the plan?

Yes. Approving the plan exits Plan Mode and switches to the permission mode you select. You can approve automatic edits, approve while reviewing changes, continue planning, or leave without implementing.

Is Plan Mode safer than default mode?

It is safer for premature source changes because the planning phase is read-only. It does not make every later command safe. Remote actions, deployments, migrations, and external API changes still need deliberate controls and review.

Should every Claude Code task start in Plan Mode?

No. Use it when uncertainty or blast radius justifies a separate design pass. Small, reversible edits are often faster in default or accept-edits mode.

The best use of Plan Mode is not making longer plans. It is discovering the decision that would have made the first implementation wrong.

Posted by @speedy_devv

Continue in Core

  • 1M Context Window in Claude Code
    Anthropic flipped the 1M token context window on for Opus 4.6 and Sonnet 4.6 in Claude Code. No beta header, no surcharge, flat pricing, and fewer compactions.
  • AGENTS.md vs CLAUDE.md Explained
    Two context files, one codebase. How AGENTS.md and CLAUDE.md differ, what each one does, and how to use both without duplicating anything.
  • Why a Hidden Line of Text Can Hijack Your AI Browser
    AI browsers read the whole web page — including text hidden from you. That's the door behind prompt injection, OWASP's #1 AI security risk in 2026. Here's how the attack works, in plain English.
  • AI Research for Builders: The Latest Breakthroughs, Explained Monthly
    A monthly digest of the latest AI research — agents, reasoning, efficiency, and models — with every claim traced to its source and translated into what it means if you build with AI.
  • 15 AI Research Breakthroughs (July 2026)
    The latest AI research, explained: OpenAI shipped GPT-5.6, Anthropic shipped Claude Opus 5, Moonshot open-weighted Kimi K3, and three separate results showed an agent benchmark score measures your whole evaluation setup, not just your model. What each finding means if you build with AI, with every vendor self-report flagged.
  • 15 AI Research Breakthroughs (June 2026)
    The latest AI research, explained: DeepSeek shipped DSpark and a million-token V4, open coding models closed the gap, AI disproved an 80-year-old math conjecture, and inference costs kept dropping. What each finding means if you build with AI.

More from Handbook

  • Best SaaS Boilerplate 2026: The Honest Comparison
    An honest 2026 roundup of the best SaaS boilerplates and starter kits (ShipFast, Makerkit, Supastarter, SaaS Pegasus, Divjoy, open source), with real pricing, stacks, and the trade-off nobody mentions: a boilerplate still leaves you coding.
  • Claude Code Changelog
    Release-by-release notes for Claude Code from the v0.2 beta through March 2026. Bare mode, Channels permission relay, OAuth fixes, and every breaking change.
  • What It Really Costs to Build a SaaS MVP in 2026
    A buyer's cost breakdown for building a SaaS MVP in 2026. Real freelancer, agency, no-code, AI-tool, and DIY numbers with citations, plus where the money actually goes.
  • Prompt Templates That Ship Code
    Ten prompt recipes that ship code: full-stack scaffolding, APIs, schemas, tests, refactors, debugging, reviews, and CI. Each with failure modes to avoid.

Want the framework behind these builds?

Get the Claude Code system we use to plan, build, test, and ship production software.

See what we build for companies →
speedy_devvkoen_salo

On this page

What Plan Mode actually does
When Plan Mode earns its keep
Give Claude a planning brief, not a feature slogan
What a good plan should contain
Review the plan with adversarial questions
A reliable two-pass workflow
Pass 1: investigate and plan
Pass 2: implement against acceptance criteria
Make Plan Mode the project default
Common Plan Mode mistakes
Asking for implementation detail too early
Accepting a file list as a plan
Planning without a verification path
Treating the plan as immutable
Using Plan Mode as a substitute for version control
A reusable Plan Mode prompt
Claude Code Plan Mode FAQs
Does Plan Mode run terminal commands?
Can Claude edit files after I approve the plan?
Is Plan Mode safer than default mode?
Should every Claude Code task start in Plan Mode?

Want the framework behind these builds?

Get the Claude Code system we use to plan, build, test, and ship production software.

See what we build for companies →