Plan Mode in Claude Code

Table of content

Plan Mode flips the default AI coding workflow. Instead of diving straight into implementation, you force Claude to research, design, and get approval first.

Why plan first

Without planningWith Plan Mode
Claude guesses at architectureClaude explores the codebase first
Discovers problems mid-implementationIdentifies blockers before writing code
Builds on wrong assumptionsValidates approach with you
Requires multiple rewritesGets it right the first time

The cost of a wrong approach compounds. A bad foundation means refactoring everything built on top.

How to enter Plan Mode

Two methods:

# Method 1: Keyboard shortcut
# Press Shift+Tab twice in Claude Code

# Method 2: Ask directly
claude "Plan how to implement user authentication"

The keyboard shortcut is faster. Use it when starting any non-trivial task.

What happens in Plan Mode

Claude shifts from “do” to “research”:

Normal modePlan Mode
Writes code immediatelyExplores codebase structure
Makes assumptionsAsks clarifying questions
Single solutionConsiders alternatives
ExecutesDesigns

In Plan Mode, Claude:

When to use it

Use Plan ModeJust code
New features touching multiple filesSingle-file changes
Unfamiliar codebaseWell-understood code
Architectural decisionsBug fixes with obvious solutions
Complex refactoringSimple formatting
Integration with external systemsIsolated utilities

Rule of thumb: if you’d sketch it on paper first, use Plan Mode.

The plan → approve → implement cycle

1. Enter Plan Mode (Shift+Tab twice)
2. Describe what you want
3. Claude researches and creates PLAN.md
4. You review the plan
5. Approve or request changes
6. Claude implements approved plan

The plan becomes a contract. Claude follows it instead of improvising.

PLAN.md structure

## Goal
What we're building and why.

## Current State
What exists now, relevant files.

## Approach
Step-by-step implementation plan.

## Files to Modify
- `src/auth/login.ts` - Add session handling
- `src/api/routes.ts` - New endpoint

## Risks
What could go wrong, mitigation strategies.

## Open Questions
Things to clarify before proceeding.

Example: planning a new feature

You: [Shift+Tab twice]
     Add a notification system that integrates with the existing
     event bus and sends emails for important alerts.

Claude: Let me explore the codebase first.

        [Reads event-bus.ts, email-service.ts, config files]

        I found:
        - Event bus uses pub/sub pattern in src/events/
        - Email service exists but only handles transactional emails
        - No notification preferences storage

        Proposed approach:
        1. Create NotificationService subscribing to event bus
        2. Add notification_preferences table
        3. Extend EmailService with template support
        4. Create priority levels for filtering

        Questions before proceeding:
        - Should notifications be real-time or batched?
        - What events count as "important"?

You: Real-time for critical, daily digest for others.
     Critical = payment failures, security alerts.

Claude: Updated plan:
        [Creates PLAN.md with full specification]

        Ready to implement when you approve.

You: Approved. Proceed.

Claude: [Implements according to plan]

The research phase caught the missing preferences table before any code was written.

The mental model shift

Default AI coding: “Just do it, fix problems as they appear.”

Plan Mode: “Understand first, then build correctly.”

MindsetResult
Ship fast, iterateWorks for prototypes, costly for production
Plan then executeSlower start, faster finish

For complex tasks, planning time is always recovered in avoided rework.

Exit Plan Mode

After approval, Claude automatically exits Plan Mode and begins implementation. The plan serves as both specification and checklist — Claude marks items complete as it works through them.

You can also exit manually:


Next: Vibe Coding

Topics: ai-coding workflow claude-code