10 Practice Questions for the Claude Architect Exam (With Answers)

Save is available to registered users — create a free account to save this article. 2 views

Summarize with AI

Here are 10 practice questions for the Claude Certified Architect: Foundations exam (CCAR-F), each with the answer and a short explanation. They are scenario-style and multiple choice, like the real exam, and they cover all five official domains. We wrote them ourselves. They are not real exam questions, which are confidential under Anthropic's non-disclosure agreement. Each answer is based on Anthropic's documentation and the official exam guide.

How the real Claude Architect exam questions work

Before you start, know the format. Per Anthropic's official exam guide:

Detail Official answer
Items 60, multiple-choice and multiple-response
Structure 4 scenarios picked at random from 6
Time 120 minutes
Passing score Scaled 720 out of 1,000

The five domains and weights are below. Our questions follow the same split as closely as 10 questions allow.

Domain Weight Our questions
1. Agentic Architecture and Orchestration 27% Q1 to Q3
2. Tool Design and MCP Integration 18% Q4, Q5
3. Claude Code Configuration and Workflows 20% Q6, Q7
4. Prompt Engineering and Structured Output 20% Q8, Q9
5. Context Management and Reliability 15% Q10

For the full breakdown, see our Claude Certified Architect exam guide.

How to use these: cover the answer, pick one, then read the explanation. If you get it wrong, open the linked doc in the Sources list.

Domain 1 practice questions: agentic architecture

Question 1: when should the agentic loop stop?

You are building a support agent with the Claude API. Your loop ends as soon as Claude's response contains any text block. In testing, the agent sometimes says "Let me check that order for you" and then stops without calling lookup_order. What is the best fix?

  • A. Add "never stop before calling a tool" to the system prompt.
  • B. Keep looping while stop_reason is "tool_use", run the requested tools, return the results, and stop when stop_reason is "end_turn".
  • C. Cap the loop at 10 iterations and stop when the cap is reached.
  • D. Parse the text for phrases like "let me check" and loop again when they appear.

Answer: B. Claude can return text and a tool call in the same response, so text alone does not mean the turn is done. Anthropic's tool use docs say a tool_use stop reason means Claude wants a tool run and the result sent back. Iteration caps and phrase parsing are brittle stand-ins for that signal.

Question 2: why is the synthesis subagent missing facts?

A coordinator agent runs a search subagent, then a synthesis subagent. The search subagent finds strong sources. But the synthesis subagent's report ignores them and says it "found limited information". The coordinator's prompt to the synthesis subagent says: "Write a report on the findings so far." What is the most likely cause?

  • A. The synthesis subagent needs a larger context window.
  • B. The synthesis subagent does not have web search tools.
  • C. Subagents run in their own context and do not inherit the coordinator's history, so the findings must be passed in the prompt.
  • D. The search subagent should write its results to the coordinator's system prompt.

Answer: C. Anthropic's docs say each subagent runs in its own context window. It only knows what you give it. The fix is to put the search results, ideally with source metadata, directly into the synthesis subagent's prompt.

Question 3: how do you fix mixed date formats from tools?

Your agent calls three MCP tools. One returns Unix timestamps, one returns ISO 8601 strings, and one returns dates like "03/04/26". The agent sometimes compares dates wrongly when deciding if an order is inside the return window. What is the most reliable fix?

  • A. Add a system prompt line telling Claude to convert all dates to ISO 8601 before comparing.
  • B. Add a PostToolUse hook that normalizes every date to one format before Claude sees the result.
  • C. Add few-shot examples of date conversion.
  • D. Ask each tool owner to change their API.

Answer: B. A PostToolUse hook runs after a tool call succeeds, so code can clean the result before the model reasons over it. That gives a deterministic fix in your control. Prompt rules and examples help, but they still leave room for error on every call.

Domain 2 practice questions: tool design and MCP

Question 4: what should a failing MCP tool return?

Your process_refund MCP tool returns {"error": "Operation failed"} for every failure. Logs show the agent retries refunds that failed because they broke the refund policy, and gives up on refunds that failed from a brief timeout. What change helps the agent most?

  • A. Retry every failure three times inside the tool.
  • B. Return the result with isError: true plus structured details: an error category (such as transient, validation, business or permission), whether it is retryable, and a plain-English reason.
  • C. Return an empty success result so the agent moves on.
  • D. Throw an exception that ends the whole conversation.

Answer: B. The MCP spec reports tool failures inside the result with isError, so the model can see and react to them. A generic message hides the one fact the agent needs: whether trying again can work. Hiding errors as success or ending the session are both worse.

Question 5: where do you put a shared MCP server with a secret token?

Your team wants everyone's Claude Code to use the same GitHub MCP server. Each developer has their own token, and tokens must never be committed. What is the best setup?

  • A. Add the server to each developer's ~/.claude.json by hand.
  • B. Add the server to the project's .mcp.json and reference the token as ${GITHUB_TOKEN}, which each developer sets in their environment.
  • C. Add the token directly to .mcp.json and add the file to .gitignore.
  • D. Put the server details in CLAUDE.md.

Answer: B. Project-scoped .mcp.json is shared through version control, and Claude Code supports environment variable expansion in it. So the config is shared but each secret stays local. User-level config in ~/.claude.json is for personal servers, and CLAUDE.md holds instructions, not server config.

Domain 3 practice questions: Claude Code

Question 6: how do you get structured output from Claude Code in CI?

Your CI job runs claude -p "Review this diff for bugs". It runs fine, but your script needs to post each finding as an inline PR comment, and parsing free text keeps breaking. What should you change?

  • A. Ask in the prompt for "valid JSON only".
  • B. Add --output-format json with --json-schema and a schema for the findings, then read the structured result.
  • C. Remove -p so you can answer follow-up questions.
  • D. Pipe the output through a regex.

Answer: B. Anthropic's Claude Code docs say --output-format json with --json-schema returns output that conforms to your schema, in a structured_output field. That gives your script a stable shape. Prompt-only JSON can drift, and removing -p would make the job wait for input.

Question 7: how do you stop a skill from flooding the main session?

Your team has a /map-codebase skill that reads dozens of files and prints a long analysis. After running it, developers find their main session is cluttered and later answers get worse. What is the best fix?

  • A. Move the skill's steps into the project CLAUDE.md.
  • B. Add context: fork to the skill's SKILL.md frontmatter so it runs in its own subagent context and returns a summary.
  • C. Tell developers to run /clear after each use.
  • D. Split the skill into five smaller skills.

Answer: B. Claude Code's skills docs say context: fork runs the skill in its own subagent context. The verbose work stays out of the main conversation. Moving it into CLAUDE.md would load it every session, which makes the problem worse.

Domain 4 practice questions: prompts and structured output

Question 8: why does the model invent missing invoice fields?

You extract invoice data with a tool whose JSON schema marks po_number as required. About 20% of invoices have no PO number, and in those cases the model returns plausible but fake values. What is the best fix?

  • A. Add "do not make things up" to the prompt.
  • B. Make po_number optional or nullable so the model can return null when the value is absent.
  • C. Retry the extraction until the value changes.
  • D. Lower the temperature.

Answer: B. A required field pushes the model to fill it even when the source has no answer. Letting the field be null gives the model an honest option. Retries cannot help when the information simply is not in the document.

Question 9: what do you do when part of a batch fails?

You send 5,000 documents through the Message Batches API overnight. When it ends, 37 results come back as errored and the rest succeed. What is the most efficient next step?

  • A. Resubmit the whole batch of 5,000.
  • B. Match results to requests by custom_id, fix the cause (for example, split documents that were too long), and resubmit only the 37 failures.
  • C. Switch to the synchronous Messages API for everything.
  • D. Assume results come back in the same order as requests and resubmit by position.

Answer: B. Anthropic's batch docs give each request a custom_id so you can match each result to its request. You are not billed for errored requests, and resubmitting only those saves time and money. Relying on result order is risky, so always match on custom_id.

Domain 5 practice question: context and reliability

Question 10: why does a long support chat lose the refund amount?

A long support chat uses rolling summaries to save context. Late in the chat, the agent offers "a partial refund" when the customer was earlier promised $84.50 by 12 March. The summaries said "customer discussed a refund". What is the best fix?

  • A. Increase max_tokens.
  • B. Keep a structured "case facts" block (amounts, dates, order IDs, promises) outside the summarized history and include it in every request.
  • C. Stop summarizing and let the context fill up.
  • D. Ask the customer to repeat the details.

Answer: B. Summaries tend to blur exact numbers and dates. Anthropic's exam guide lists a persistent case facts block, kept outside the summarized history, as the pattern for this. It fits Anthropic's broader context engineering advice: keep the smallest set of high-signal tokens in front of the model.

How did you score?

Score What it suggests
9 to 10 Strong grasp. Practise under time pressure next.
6 to 8 Good base. Revisit the domains you missed.
0 to 5 Build more first. Work through the docs and hands-on exercises.

This is a rough guide only. Ten questions cannot predict a 60-item exam.

A pattern to remember: in Anthropic's own sample questions, the right answer usually fixes the root cause with the least added machinery. Code-level controls such as hooks, schemas and IDs beat prompt wording when you need reliability.

Related reading

Get the full question bank

Want more? Our free course, Claude Certified Architect: Foundations Exam Prep, has 203 practice questions with explained answers across 19 lessons, all mapped to the exam domains. Get the full question bank in the course.

Sources

Did this land? Leave a reaction.

0 0 0 0 0 0 0 0 0 0 0 0

Discussion

0 comments

Members can join the discussion

Become a member to comment and reply to other members.

Become a Member

No comments yet

Be the first to start the discussion.

Go Member

Unlock the deep dives

Full source code and member-only articles. Free account, no card.

Create free account