One of the most critical architectural decisions in a Claude Code session is choosing the starting mode. Selecting the wrong mode leads to either unnecessary overhead for simple fixes or "code churn" and rework on complex architectural tasks. Mastering this distinction is essential for exam candidates.
Imagine you are fixing things around your house:
In Claude Code, Direct Execution is your hammer; Plan Mode is your architectural blueprint.
Direct Execution (the default mode when you start claude) is optimized for speed and straightforward implementation. In this mode, Claude analyzes the request and begins proposing or making file changes immediately.
# Starting a session in direct mode $ claude "Add a logout button to the Header component" # Claude responds by immediately reading Header.tsx and proposing the edit.
Plan Mode (invoked via claude --plan, claude -p, or typing /plan in a session) forces a two-phase execution. Claude first explores the codebase and proposes a detailed "Implementation Plan" without touching any files. Only after you approve the plan does Claude begin the work.
While Plan Mode takes longer to start, it often finishes correctly on the first try. Direct Execution in a complex codebase can lead to "code churn" where Claude keeps fixing its own mistakes because it didn't understand the full dependency graph before starting.
Use this matrix to determine the optimal starting point for any task. On the exam, scenario questions will often hinge on these variables.
| Variable | Choose Direct Execution If... | Choose Plan Mode If... |
|---|---|---|
| Codebase Familiarity | High: You wrote the code or work in it daily. | Low: New repo or "legacy" module you haven't seen. |
| Scope of Change | Narrow: 1-5 files affected. | Broad: 10+ files or cross-service changes. |
| Task Definition | Clear: Requirements are precise and unambiguous. | Ambiguous: Requires research and architectural options. |
| Risk Profile | Low: Simple UI fix or internal helper update. | High: Database migration, auth changes, infra updates. |
| Dependencies | None/Few: Isolated functionality. | Many: Changes affect multi-agent pipelines or shared libs. |
Scenario: You are tasked with migrating an e-commerce platform's legacy payment module (C++) to a new microservice (Go). The codebase of the payment module is unfamiliar, and there are 120 interconnected files with complex business logic.
Correct Answer: Choose Plan Mode. The complexity (120 files), architectural shift (C++ to Go), and lack of familiarity make starting with direct edits extremely dangerous and likely to produce broken logic.
Scenario: A Jira ticket arrives: "Change the primary button color from #3B82F6 to #1D4ED8 in the global CSS theme file." You have worked in this project for 2 years.
Correct Answer: Choose Direct Execution. The task is well-defined, extremely narrow (one file), and in a highly familiar codebase. Plan Mode would be an unnecessary waste of time and context.
Starting in direct mode for a task that affects core authentication. Claude begins changing files, hits a naming conflict, tries to fix it, and eventually cascades into 50+ changes with no coherent strategy. Result: Broken PR.
Using `/plan` for a typo change. Claude spends 2 minutes "exploring" the directory structure and "proposing" to change one character in one file. Result: Developer frustration and token waste.
Triggering Plan Mode but clicking "Approve" without reading the proposed steps. If the plan is flawed, the execution will be flawed. Plan Mode is for collaboration on strategy.
Encountering a complex error in Direct Execution and continuing to "guess" fixes instead of immediately switching to Plan Mode to reset and analyze the underlying architecture.