AnthropicClaude Certified Architect – Foundations2026-103.4 Determine when to use plan mode vs direct execution
Keep verbose discovery inside Explore
Completed by the knowledge check
Learning objective
Offload verbose codebase exploration to an Explore subagent so the main conversation receives focused summaries.
Core idea
For a multi-phase Claude Code task, the conversation that decides and implements the change needs findings, not every file read used to discover them. Delegate verbose codebase exploration to the built-in Explore subagent. Its reads and searches occur in a separate context window, and the main conversation receives its summary.
The main context window holds every message, every file Claude reads, and every command output. Anthropic notes that one debugging session or codebase exploration can consume tens of thousands of tokens. Performance degrades as context fills: Claude can lose track of earlier instructions or make more mistakes. The exam guide calls the capacity problem “context window exhaustion.” Delegation helps prevent it by preserving room for the later design and implementation phases. It does not eliminate context costs: the summary still enters the main conversation, and the subagent sends its own requests against the same usage limits. A useful delegation therefore narrows both the research question and the result you need back.
See 1.3.3 for self-contained specialist assignments and 1.3.4 for evidence attribution. This lesson applies those ideas specifically to Claude Code’s built-in exploration role; see 3.4.2 for the main session’s planning boundary.
How it works
Move the reading, preserve the answer
The subagent documentation identifies Explore as a fast, read-only agent for file discovery, code search, and codebase exploration. Write and Edit are denied for the built-in agent. Claude delegates to it when it needs to understand code without making changes. You can request that role explicitly in your prompt instead of asking the main conversation to open every file itself.
A suitable request names the question: use Explore to identify the shared request adapter, its callers, and any direct library usage that bypasses it. Ask for grouped findings with relevant paths and the unresolved questions that affect migration order. Those paths let the main conversation inspect decisive passages without importing the full discovery transcript.
The important boundary is where tool output accumulates. Explore can inspect many files in its own conversation while the main session retains the task and summarized evidence. Asking the main session to read all those same files again defeats much of the benefit. A targeted read to verify a central claim is different from duplicating the entire exploration.
Explore’s reads and searches stay in its own context window, and the main conversation receives only its summary.
Claude specifies Explore’s thoroughness as quick, medium, or very thorough. A targeted location lookup fits quick; a broader dependency search can need more depth. These are documented exploration levels, not guarantees that a given number of files is inspected or that every dependency is found. State the search scope and the decision it supports even when asking for thorough exploration.
Distinguish Explore from the planning role
The built-in Plan subagent also uses read-only tools, with Write and Edit denied. Its documented purpose is gathering codebase context during plan mode before the main conversation presents a plan. Claude delegates research to it when planning needs codebase understanding, keeping verbose exploration in a separate window.
Explore and Plan are subagent names; plan is a permission-mode value for the session. They are not interchangeable configuration values. Using Explore does not switch the main session to plan mode, and receiving a Plan subagent’s research does not approve implementation. Choose the main workflow as described in 3.4.1, then use the research role appropriate to the question.
The exam guide names Explore for verbose discovery. The product’s additional Plan role serves related research needs during planning. Recognizing both avoids a false choice between “use Explore” and “use plan mode”: one places discovery in a separate context, while the other separates investigation from source modification.
Include the constraints Explore needs
The built-in Explore and Plan agents skip CLAUDE.md files and the git status snapshot. They also do not preload skills. If an exploration rule matters, put it into the delegation request rather than assuming the built-in agent receives standing project instructions. For example, explicitly exclude generated and vendored directories when those would distort the dependency inventory.
The main conversation still has its instructions when interpreting the result. That helps it evaluate the summary, but cannot retroactively make Explore search an omitted directory or ignore an inappropriate one. Ask for the relevant scope, the findings needed for the decision, and a clear account of uncertainty.
A focused summary can distinguish confirmed wrapper consumers from possible indirect callers. That distinction prevents an inventory from sounding exhaustive when the exploration has only established a subset. It also gives the main conversation a smaller follow-up question rather than another repository-wide dump.
Recognize limits on availability and continuation
Interactive sessions register the built-in subagents by default, but configuration can change that. A permissions.deny rule for Agent(Explore) blocks that type. Setting CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1 removes the built-in Explore and Plan roles and makes Claude read and explore directly; the docs require Claude Code v2.1.198 or later for that setting.
A user or project subagent named Explore can override the built-in. Therefore, the built-in read-only description should not be assumed to describe every agent with that name. Diagnose which definition and restrictions apply before relying on the name as evidence of tool access.
Built-in Explore and Plan agents are one-shot and return no agent ID for resumption. Ask for another focused exploration if the summary leaves a question open. Use general-purpose or a custom subagent when the workflow requires continued work with retained subagent history; the broader delegation and continuation design belongs to 1.3.3.
Key distinctions and trade-offs
Context isolation versus zero cost: Explore keeps its raw discovery out of the main conversation. It still consumes tokens, and its returned text still consumes main-context space.
Research role versus implementation role: Explore’s built-in tools support finding and understanding code. It is not the worker that applies a reviewed migration.
A summary versus proof of completeness: A summary compresses findings. Its scope and evidence determine whether it supports the design; brevity alone does not establish coverage.
Delegation is most useful when the research produces substantial intermediate output that later phases do not need. For a single local read, the extra handoff can cost more than it saves. Many subagents returning detailed reports can also consume substantial main-context space. Ask for the result required by the decision instead of maximizing the number of workers.
Architecture / decision scenario
A developer-productivity team migrates a library used across several packages. A first attempt asks the main conversation to read every caller, leaving a long transcript before the architect has even compared replacement approaches.
The revised workflow starts the main session in plan mode and asks it to use Explore for a bounded dependency inventory. The delegation excludes generated output, names the relevant packages, requests very thorough exploration, and asks for caller groups, adapter paths, bypasses, and unresolved coverage questions. The source-edit boundary remains the main session’s responsibility, as explained in 3.4.2.
Explore returns a focused summary identifying a shared wrapper and one direct-call group. The main conversation reads the decisive wrapper passage, then uses those findings to design migration order. It retains the evidence needed for review without carrying every intermediate search result into implementation.
If one package’s dynamic loading remains unclear, the team requests another focused Explore pass for that question. It does not expect to resume the one-shot built-in agent, and it does not authorize Explore to start replacing imports. For an unrelated one-function validation fix, a local read remains sufficient.
Common exam traps
- Reading every discovery file in the main conversation before asking Explore to summarize it.
- Assuming Explore changes the main session’s permission mode.
- Treating the Plan subagent as approval to implement.
- Assuming built-in Explore receives every
CLAUDE.mdrule automatically. - Expecting a one-shot Explore agent to support resumption by agent ID.
- Assuming summaries consume no context or that delegation consumes no usage.
- Inferring built-in restrictions from a name that a project definition can override.
What to remember
Use Explore for verbose, bounded codebase discovery and return the findings the main session needs. Keep scope, constraints, paths, and uncertainty in the assignment. Separate research delegation from plan-mode selection and implementation permission; neither a short summary nor a subagent name proves completeness.
Knowledge check
During a three-phase Claude Code task — map a legacy payments module, design a change, implement it — the main conversation reads about sixty files to build the map. By implementation, the context is crowded and Claude starts missing earlier instructions. What should the team have done in the mapping phase?
/clear after the mapping so implementation started with an empty context/clear discards the map the later phases need, and plan mode governs source edits, not where file reads accumulate.A project’s root CLAUDE.md says to ignore the generated/ and vendor/ directories when analysing dependencies. A dependency inventory produced by the built-in Explore subagent nevertheless lists hundreds of callers inside generated/. What change fixes the next run?
CLAUDE.md with stronger wordingvery thorough level so Explore applies every project ruleCLAUDE.md files at startup, so strengthening the root file does not supply this exclusion. Thoroughness controls search depth, not instruction loading. Built-in Explore is one-shot and returns no agent ID to resume. A rule the search depends on belongs in the delegation request.A reviewer approves a workflow because “Explore is read-only, so the discovery step cannot change files.” The repository’s .claude/agents/ directory holds a subagent definition named Explore whose tools list includes Edit. What should the reviewer conclude?
Explore overrides the built-in one. The built-in’s read-only restrictions describe that built-in, not every agent with the name, so the reviewer must check which definition applies before treating the name as evidence of tool access.References
- Anthropic, Create custom subagents
- Anthropic, Common workflows
- Anthropic, Best practices for Claude Code
- Anthropic, Claude Certified Architect – Foundations Exam Guide