Test your exam readiness
Drill one domain at a time, or run a full mixed mock exam. Each set is exam-style with instant scoring, a per-task-statement breakdown, and an explanation for every answer. Pass mark: 72%. Free to take — a free account unlocks the full answer review, gap analysis and certificate.
Practice by domain
Full mock exams — all 5 domains mixed
Sample Claude Certified Architect Foundations practice questions
6 free sample questions from the practice bank, with the correct answer and the reasoning.
Question 1 · Domain 1 — Agentic Architecture & Orchestration
Customer Support Resolution Agent
Your support agent loop checks if the assistant message text contains the phrase 'resolution complete' to decide when to stop processing. In a load test, you find the loop sometimes stops mid-task and sometimes never stops. What is the root cause of this inconsistency?
- A.The issue is a race condition in the support agent — multiple concurrent requests are causing the loop state to be shared incorrectly, not a fundamental problem with text-based termination logic.
- B.The load test is hitting Claude's rate limits, causing some responses to be truncated before the phrase appears, which explains why some loops stop early and others continue for unexpected numbers of turns.
- C.The text 'resolution complete' is too long a phrase for Claude to reliably reproduce — shortening it to a single word like 'done' would make text inspection reliable enough for production use.
- D.Claude's phrasing varies every run — it may say 'resolved', 'done', 'completed', or omit confirmation entirely, making text inspection an unreliable termination signal. The correct signal is stop_reason='end_turn', which is a deterministic API contract. Correct answer
Why: TS 1.1 Skills: avoid the anti-pattern of checking assistant text content as a completion indicator. stop_reason='end_turn' is the deterministic API contract. Claude's natural language output varies every run — the API's stop_reason does not. Why the other options are wrong: Rate limits causing truncation doesn't explain 'never stops' cases — truncation produces early stops, not infinite loops. Shortening the phrase is still text inspection, still an anti-pattern. A race condition is a separate engineering concern — the root cause tested here is the unreliability of text parsing as a termination signal.
Question 2 · Domain 2 — Tool Design & MCP Integration
Multi-Agent Research System
Your research system has two tools: analyze_content and analyze_document. Both descriptions say 'Analyzes input and returns structured findings.' Production logs show the coordinator randomly selects between them for identical queries, with correct routing dropping to 52%. You need to fix this without restructuring the agent. What is the most direct solution?
- A.Merge the two tools into a single analyze tool with a required type parameter ('content' or 'document') so the model only needs to select one tool, eliminating the ambiguity between two similarly named options.
- B.Add a routing rule to the coordinator's system prompt that explicitly lists which queries should go to analyze_content versus analyze_document, bypassing description-based selection for this pair of tools.
- C.Rewrite each tool's description to specify its exact input type, output structure, and an explicit 'Do NOT use for X — use [other tool] instead' boundary clause. This gives the model the differentiating signal needed to reliably select the correct tool. Correct answer
- D.Add a PreToolUse hook that intercepts tool selection and reroutes calls based on the input type detected in the request payload, enforcing correct routing regardless of what the model selects.
Why: Tool descriptions are the primary mechanism LLMs use for tool selection. Near-identical descriptions give zero differentiating signal. Rewriting with explicit input types, output contracts, and exclusion clauses directly addresses the TS 2.1 root cause. Why the other options are wrong: System-prompt routing rules are a probabilistic override that doesn't fix the description ambiguity. Merging into one tool removes independent capability. A PreToolUse hook enforces after incorrect selection; the root cause is still unaddressed.
Question 3 · Domain 3 — Claude Code Configuration & Workflows
Developer Productivity with Claude
A lead engineer adds detailed code review standards to ~/.claude/CLAUDE.md on her laptop. Three new engineers join the team, clone the repository, and start using Claude Code. They report Claude is not following the review standards. What is the root cause?
- A.The new engineers need to restart Claude Code after cloning to pick up project-level configuration files — the review standards would be visible after a session refresh.
- B.The review standards file is too large — files exceeding a certain size limit in ~/.claude/CLAUDE.md are silently truncated and ignored by Claude Code.
- C.User-level ~/.claude/CLAUDE.md is personal and not version-controlled — it exists only on the lead engineer's machine. Team-shared standards belong in the project-level .claude/CLAUDE.md or root CLAUDE.md committed to the repo. Correct answer
- D.New engineers must manually copy ~/.claude/CLAUDE.md from a shared team drive — Claude Code does not automatically inherit configuration from the person who set up the project.
Why: TS 3.1 Knowledge: user-level settings apply only to that user — instructions in ~/.claude/CLAUDE.md are not shared with teammates via version control. Team standards must be committed to the project-level .claude/CLAUDE.md. Why the other options are wrong: Restart-after-clone is about session state, not config scope. There's no silent size-limit truncation. There's no manual-copy mechanism — the fix is project-level config committed to the repo.
Question 4 · Domain 4 — Prompt Engineering & Structured Output
Claude Code for Continuous Integration
A PR review prompt includes: 'Only flag issues when you are highly confident. Be conservative and avoid over-reporting.' After 30 runs, the review still flags 14 false positives per PR — mostly style differences labelled as bugs. Adding 'be even more conservative' does not reduce the false positive rate. What is the fundamental problem?
- A.The prompt lacks a confidence threshold numerical value — replacing 'highly confident' with 'confidence above 0.9' would give Claude a precise cutoff that reduces false positives to near zero.
- B.The review is running on the full repository diff rather than only changed files — reducing the scope eliminates false positives on unchanged code that the prompt cannot filter out.
- C.'Highly confident' and 'be conservative' are vague confidence-based instructions with no categorical definition. Claude has no concrete basis for deciding what to report versus skip. Correct answer
- D.The prompt needs more detailed descriptions of each bug type it should flag, so Claude can match code against specific patterns rather than using a subjective confidence assessment.
Why: TS 4.1 Knowledge: general instructions like 'be conservative' fail to improve precision because Claude has no categorical basis for differentiation. The fix is replacing vague confidence filters with specific categorical report/skip criteria. Why the other options are wrong: A numerical threshold is still a confidence filter — the same class of ineffective instruction. Scope reduction may lower volume but doesn't fix miscategorising style as bugs. More bug descriptions help but the question targets the core confidence-filter anti-pattern.
Question 5 · Domain 5 — Context Management & Reliability
Customer Support Resolution Agent
A support agent handling a billing dispute correctly references the exact refund amount ($8,450.00) and order ID early in the conversation, but after 18 turns it starts saying 'a significant amount' and 'your recent order' instead of the precise values. A developer proposes enabling /compact more aggressively. What is the correct fix?
- A.Enable /compact every few turns so the conversation never grows large enough to lose the exact values.
- B.Inject a case-facts block containing the exact amount and order ID verbatim at the TOP of every prompt, re-added outside the summarised history so it survives compaction. Correct answer
- C.Increase the model's max_tokens so it has more room to retain the original values across turns.
- D.Lower the temperature to 0 so the model reproduces the exact figures deterministically on every turn.
Why: TS 5.1: critical facts placed verbatim at the top of every prompt are processed reliably and survive /compact because they are injected fresh, outside the summarised conversation history. Why the other options are wrong: More aggressive /compact is what destroys exact values into vague summaries. max_tokens affects output length, not retention of buried facts. Temperature controls sampling variance, not whether a value is still present in context.
Question 6 · Domain 1 — Agentic Architecture & Orchestration
Multi-Agent Research System
A research coordinator processes a search subagent's results. After the search tool returns 12 articles, the coordinator's very next API call produces a response where Claude asks for the search query again as if no results were returned. What is the most likely cause?
- A.The search tool's result was not appended to the messages array before the next API call, so Claude had no record of the tool output and reasoned from an incomplete message history. Correct answer
- B.Claude's context window was exceeded by the 12 articles, causing it to lose the tool result from its working memory before the next API call could incorporate the information.
- C.The coordinator's system prompt does not explicitly instruct Claude to use the search results, so Claude ignores them and treats the task as still pending additional input from the user.
- D.The tool result was returned in the wrong format — Claude requires tool results to be plain text strings, not structured JSON objects, for them to be incorporated into reasoning correctly.
Why: TS 1.1 Knowledge: tool results must be appended to conversation history so the model can reason about the next action. TS 1.1 Skills: add tool results to conversation context between iterations. Without appending, Claude has no record of what the tool returned. Why the other options are wrong: Context-window overflow would drop earlier messages, not the immediately preceding tool result — a different failure mode. Claude uses tool results based on the messages array structure, not on a system-prompt instruction to 'use' them. Structured JSON tool results are the standard, expected format.
What this practice exam covers
386 questions · 5 exam domains · 2 mock exams
- Domain 1 — Agentic Architecture & Orchestration · weight 27%
- Domain 2 — Tool Design & MCP Integration · weight 18%
- Domain 3 — Claude Code Configuration & Workflows · weight 20%
- Domain 4 — Prompt Engineering & Structured Output · weight 20%
- Domain 5 — Context Management & Reliability · weight 15%
More practice for this exam
Claude Certified Architect Foundations: the 37-question quiz
Questions about this practice exam
- Are these the official Claude Certified Architect Foundations exam questions?
- No. They are practice questions written against the published exam domains. This site is not affiliated with or endorsed by Anthropic.
- How many practice questions are there?
- 386 questions across 5 exam domains including 2 full mock exams.
- Do I need an account to practise?
- No. You can take the practice questions without an account and your scores save in your browser. A free account adds the full answer review, gap analysis and a completion certificate.
- Do the questions explain the answers?
- Yes. Every question comes with an explanation of the correct answer.
Practice questions written against the published exam domains. Not official exam questions. Not affiliated with or endorsed by Anthropic.