## Why These Questions Matter The Claude Certified Architect Foundations (CCA-F) exam is scenario-driven. Each question gives you a short production setup -- a customer support agent, a multi-agent research pipeline, a CI/CD integration -- and asks you to pick the best architecture decision. Wrong answers often sound like good engineering, which is exactly why static study fails some candidates. The 10 questions below are written in the same style and spread across the five official domains. Read each scenario twice, pick your answer, then check the explanation. Every explanation cites the official Anthropic documentation at docs.claude.com so you can dig deeper on any topic you missed. If you can comfortably answer eight or more of these on a first pass, you are likely close to exam-ready. Below eight, your highest-leverage move is timed full-length practice -- not more passive reading. ## How to Use This Set - Time yourself: roughly two minutes per question matches real exam pacing - Do not look at the answer until you have committed to one - For every wrong answer, read the cited doc before moving on - Note which domain each miss falls in -- patterns reveal your weak spot ## The 10 Questions ### Question 1 -- Model Selection **Scenario.** A team is building a high-throughput email triage agent that classifies incoming support emails into one of 20 categories. Volume is 200 emails per minute. Latency under 800 ms per email is a hard requirement. Cost is a major constraint. Reasoning depth required per email is shallow -- mostly pattern matching against well-described categories. **Which Claude model should the team default to?** A. Claude Opus 4.7 (claude-opus-4-7), because it has the strongest reasoning B. Claude Sonnet 4.6, because it balances cost and quality C. Claude Haiku 4.5, because it is the fastest and cheapest current model D. A mix of Opus 4.7 and Sonnet 4.6 routed by topic difficulty **Correct answer: C.** Haiku 4.5 is the right pick when the task is shallow, the latency budget is tight, and cost matters. Opus 4.7 (option A) is over-spec for classification with well-described categories. Sonnet 4.6 (option B) would work but is more expensive than necessary. Multi-model routing (option D) adds orchestration complexity that this workload does not justify. Reference: https://docs.claude.com/en/docs/about-claude/models ### Question 2 -- Prompt Caching Breakpoints **Scenario.** An engineer is implementing prompt caching for a customer support agent. The prompt has four logical blocks: tool definitions (5K tokens), a system prompt with company policies (12K tokens), an FAQ block injected per conversation (8K tokens), and the running conversation history. They want the highest possible cache hit rate across turns within a single conversation. **Where should they place `cache_control` breakpoints?** A. Only at the end of the system prompt B. At the end of the tool block, the end of the system prompt, and the end of the FAQ block C. After every user message in the conversation history D. At the start of the system prompt and the start of the tool block **Correct answer: B.** Prompt caching in Claude works by hashing content up to each `cache_control` breakpoint. Placing breakpoints at the natural boundaries between tools, system prompt, and per-conversation context lets each layer cache independently. If only one breakpoint is used (option A), the FAQ block goes uncached. Per-turn breakpoints (option C) are wasteful and risk hitting the breakpoint cap. Breakpoints belong at the **end** of cacheable content, not the start (option D rules itself out). Reference: https://docs.claude.com/en/docs/build-with-claude/prompt-caching ### Question 3 -- MCP Transport Selection **Scenario.** A team is integrating an internal HR system with Claude Code. The HR system already exposes a long-lived REST API behind their corporate VPN. They want the simplest, most reliable transport for their MCP server that exposes HR data to Claude Code running on engineers' laptops. **Which MCP transport is most appropriate?** A. stdio, running a local Node.js process that proxies to the HR API B. HTTP, hosted at a public URL C. WebSocket, with the MCP server initiating the connection to each laptop D. SSE only, with no HTTP fallback **Correct answer: A.** stdio is the canonical transport when the MCP server runs as a local subprocess of the client. A small local proxy that the engineer launches via `npx` (or similar) and that talks to the internal API over the VPN is the simplest, most secure pattern. A public HTTP endpoint (option B) exposes the HR API to the open internet. WebSocket (option C) reverses the connection direction and is not how MCP is configured. SSE-only (option D) is not the typical pattern for local developer tooling. Reference: https://docs.claude.com/en/docs/agent-sdk/mcp ### Question 4 -- Hooks in Claude Code **Scenario.** A team uses Claude Code across a 30-engineer org. They want to enforce that any `Bash` tool invocation containing the string `rm -rf` is blocked before it executes, and they want every blocked attempt logged to a central audit file. **Which combination of Claude Code hook event and configuration is correct?** A. A `PostToolUse` hook on `Bash` that checks the command and rolls back if it matches B. A `PreToolUse` hook on `Bash` that exits with a non-zero status and writes to the audit file when the command matches `rm -rf` C. A `Stop` hook that scans the session transcript and warns the user D. A `UserPromptSubmit` hook that rewrites the prompt to remove the phrase **Correct answer: B.** `PreToolUse` fires before the tool executes and can block the call by exiting non-zero. That makes it the only event that can actually prevent the destructive command. `PostToolUse` (option A) fires after execution -- too late to prevent damage. `Stop` (option C) fires only at session end. `UserPromptSubmit` (option D) does not see the eventual tool call, only the user's natural-language prompt. Reference: https://docs.claude.com/en/docs/claude-code/hooks ### Question 5 -- Tool Description Design **Scenario.** An agent has two tools: `search_orders` (described as "Search orders") and `lookup_order_by_id` (described as "Look up an order"). The agent frequently calls `search_orders` when a user provides an exact order ID, even though `lookup_order_by_id` would be cheaper and more precise. **What is the best fix?** A. Remove `search_orders` entirely B. Rewrite both descriptions to make the boundary explicit -- for example, `search_orders` becomes "Search for orders by free-text query, customer email, or partial match. Do not use when an exact order ID is known." and `lookup_order_by_id` becomes "Fetch a single order by its exact order ID (UUID)." C. Add a `PreToolUse` hook that rewrites every `search_orders` call into `lookup_order_by_id` when the input looks like a UUID D. Lower the temperature to 0 so the model becomes deterministic **Correct answer: B.** Tool descriptions are the single most important lever for tool selection accuracy. The right fix is almost always to tighten descriptions so the model can distinguish overlapping tools. Removing a useful tool (option A) loses functionality. A `PreToolUse` rewrite (option C) papers over a fixable prompt problem. Lowering temperature (option D) does not fix the underlying ambiguity. Reference: https://docs.claude.com/en/docs/agents-and-tools/tool-use/overview ### Question 6 -- Subagent Permissions **Scenario.** An Agent SDK application spawns three subagents in parallel during a research task. Each subagent needs access to the `WebFetch` tool. The parent agent already has `WebFetch` permission granted. **Which statement is correct?** A. Subagents automatically inherit all tool permissions from the parent agent B. Subagents inherit read-only tool permissions but must re-request write permissions C. Each subagent must request its own permissions; they do not automatically inherit the parent's grants D. Subagents share a single permission grant with the parent, so granting once covers all **Correct answer: C.** In the Claude Agent SDK, subagents do not automatically inherit parent permissions. Each spawned subagent re-requests permissions for the tools it uses. This is a deliberate security property -- it forces explicit consent for delegated work. Options A, B, and D describe inheritance models that do not match the SDK's actual behaviour. Reference: https://docs.claude.com/en/docs/agent-sdk/subagents ### Question 7 -- CLAUDE.md Imports **Scenario.** A team's `CLAUDE.md` is getting long. They want to split off a 600-line coding-standards section into its own file, `docs/coding-standards.md`, while keeping it active in every Claude Code session. **Which approach is idiomatic?** A. Copy the file's contents into `CLAUDE.md` on every session start using a `SessionStart` hook B. Add an import directive in `CLAUDE.md`: `@docs/coding-standards.md` C. Add the file path to `.claude/settings.json` under an `includes` key D. Symlink `docs/coding-standards.md` into the root as a second `CLAUDE.md` **Correct answer: B.** `CLAUDE.md` supports import syntax using `@path/to/file.md`. The imported file is loaded inline whenever `CLAUDE.md` is read. This is the official, documented mechanism for composition. The hook approach (option A) is convoluted. There is no `includes` key in `settings.json` for this purpose (option C). Multiple `CLAUDE.md` files via symlink (option D) is not a supported pattern. Reference: https://docs.claude.com/en/docs/claude-code/memory ### Question 8 -- Sessions and Resumption **Scenario.** A long-running coding agent has been working for 90 minutes and is approaching the model's context window. The user wants to step away and resume the same task tomorrow without losing progress. **What is the best built-in mechanism in Claude Code to support this?** A. Manually copy the entire transcript into a new session prompt B. Use session resume (e.g. `claude --resume`) which loads the prior session, with compaction available to manage context size C. Pipe the session through a `Stop` hook that summarises everything into one paragraph D. Spawn a fresh agent from scratch every morning -- context is cheap **Correct answer: B.** Claude Code provides first-class session resumption. The `--resume` flag (and the in-app session picker) restores the previous session's state, and the built-in compaction mechanism manages context as it grows. Manual copy-paste (option A) loses tool state and structure. A `Stop` hook summary (option C) reinvents what compaction already does, badly. Throwing away context every day (option D) is wasteful and breaks long tasks. Reference: https://docs.claude.com/en/docs/claude-code/sessions ### Question 9 -- Multi-Agent Architecture **Scenario.** A research workflow needs to: (1) search the web, (2) read PDFs, (3) extract structured data into JSON, and (4) write a final report. The team is debating whether to build one large agent with all four tools or four specialised subagents orchestrated by a coordinator. **Which design is best aligned with CCA-F architectural guidance?** A. One large agent with all four tools and a long system prompt that switches modes B. Four entirely independent agents that communicate via a shared SQL database C. A hub-and-spoke pattern: a coordinator agent that delegates to four narrow subagents, each with its own tools and prompt D. A fully peer-to-peer mesh where every agent can call every other agent **Correct answer: C.** The hub-and-spoke (orchestrator-worker) pattern is the canonical Claude multi-agent topology for tasks with mixed responsibilities. Each subagent has a narrow scope, its own tools, and its own context budget; the coordinator handles routing and aggregation. A single super-agent (option A) suffers from context bloat and tool confusion. Shared-database coupling (option B) is brittle and slow. A peer-to-peer mesh (option D) is hard to reason about and easy to deadlock. Reference: https://docs.claude.com/en/docs/agent-sdk/overview ### Question 10 -- Tool Use with Many Tools **Scenario.** An MCP-heavy Claude Code setup loads 47 tools across six MCP servers. Engineers complain that early-turn responses are slow and that the model sometimes picks irrelevant tools. **Which mitigation is most appropriate?** A. Reduce the tool count to under 10 by removing whichever servers are used least B. Enable tool search and use `defer_loading` so tool definitions are not all loaded into context upfront C. Lower the model from Opus 4.7 to Haiku 4.5 to make calls faster D. Restart Claude Code at the start of every session **Correct answer: B.** Tool search and `defer_loading` are designed exactly for this situation. Tool definitions can consume a large slice of the context window when many tools are loaded; tool search withholds definitions until Claude actually needs them, preserving the cache and reducing irrelevant calls. Shrinking the catalogue (option A) loses capability. Downgrading the model (option C) does not solve tool overload. Restarting (option D) is not a mitigation. Reference: https://docs.claude.com/en/docs/agents-and-tools/tool-use/tool-use-with-prompt-caching ## How to Read Your Score - **9 or 10 correct.** You are tracking well. Spend remaining time on full-length timed practice and any domain you missed. - **7 or 8 correct.** Solid foundation. Target the specific domains where you missed and re-read the cited docs. - **5 or 6 correct.** You need more hands-on time, especially in the Agent SDK and Claude Code configuration domains. Build one real multi-agent project before sitting the exam. - **Below 5.** The exam will be a stretch this month. Step back into the 6-week study plan, focus on Agentic Architecture (27% of the exam), and re-test after two weeks of focused work. ## Frequently Asked Questions ### Are these the actual exam questions? No. Anthropic's real questions are confidential and protected by NDA. These are original questions written against the published CCA-F domain blueprint and Anthropic's public documentation, in the same scenario-based style as the real exam. ### How many questions are on the real CCA-F exam? Sixty questions in 120 minutes, scored on a 100-1000 scale with a passing score of 720. ### Does the real exam have multi-select questions? Yes. Most are single-best-answer, but a minority are multi-select where you must pick all correct options. Read the question stem carefully -- it will tell you how many to pick. ### Where do I find more practice questions? PrepMyCert maintains a dedicated CCA-F practice exam course with full-length, domain-weighted tests and per-question explanations: https://www.prepmycert.com/course/ccaf-claude-certified-architect-foundations. ### Should I memorise docs.claude.com URLs? No. The exam tests architectural judgement, not URL recall. Use the citations here to deepen your understanding of each topic. On exam day, you will not need to quote any URL. ### How close in difficulty are these to the real exam? Close, with one caveat. The real exam often groups three or four questions around a single multi-paragraph scenario, so reading-comprehension load is higher. The reasoning depth per question is comparable to what you saw above. ## Next Step If you got eight or more correct, you are within striking distance of the real exam. If you missed three or more, the fastest path forward is realistic, full-length practice with detailed explanations. Take the complete CCA-F practice exam at https://www.prepmycert.com/course/ccaf-claude-certified-architect-foundations. Multiple full-length tests, domain analytics, and explanations that cite the official docs so you learn the topic, not just the answer. Good luck. Read every scenario twice.