400 Scenario-Based CCAR-F (CCA-F) Questions
Every question in our bank is designed as a real-world scenario — not simple recall. You will face architecture decisions, debugging challenges, and system design tradeoffs that mirror what the CCA Foundations certification tests.
Each question includes a detailed explanation of the correct answer, and many also walk through why the other options fall short, helping you build deep understanding rather than surface-level memorization.
Practice Questions by Exam Domain
Our question bank covers all five CCA exam domains with the same weighting used in the real certification:
Agentic Architecture
Agent loops, orchestration patterns, multi-agent design, reliability strategies
Claude Code Config
CLAUDE.md, project setup, permissions, slash commands, MCP integration
Prompt Engineering
System prompts, chain-of-thought, few-shot
Tool Design & MCP
MCP servers, tool schemas, transport layers, resource management
Context Management
Token budgets, caching strategies, multi-turn design
Want the reasoning behind these questions, not just the count? Read our deep dives on Claude Code Configuration & Workflows and Tool Design & MCP Integration, two of the five domains covered above.
Sample Questions: How They Work
Three of the ten questions from our free practice questions post, shown exactly as they appear there:
Question 1: Agentic Architecture
A travel booking agent has tools to search flights, check hotel availability, and execute bookings. It is configured to automatically book the lowest-cost itinerary within a user's $2,000 budget as soon as one is found. A user reports the agent booked the wrong dates. What architectural change most directly prevents this class of failure?
- A. Replace the auto-execute booking tool with a
propose_itinerarytool that returns a confirmation request to the user before any booking is made. - B. Insert a second-model validation step: a reviewing subagent must approve the proposed itinerary before the orchestrator invokes the booking tool.
- C. Narrow the agent's tool set to search and booking only, so a smaller action space leaves fewer ways for a date to go wrong.
- D. Strengthen the system prompt with a pre-booking checklist that makes the agent restate the travel dates and confirm they match the request before calling the booking tool.
Correct answer: A
A flight booking is a consequential, hard-to-reverse action. Task Statement 1.5 of the exam guide covers tool call interception hooks that block policy-violating actions and redirect them to a human escalation workflow, and Task Statement 1.4 notes that prompt instructions alone carry a non-zero failure rate where deterministic compliance is required. Replacing auto-execute with a propose-and-confirm pattern inserts a human checkpoint at exactly the right moment: before commitment, not after.
Why B is wrong: A validation subagent is still an autonomous model reviewing another model's decision. It adds a layer but doesn't resolve the core problem: the booking still executes without human approval. Model-on-model review does not substitute for human-in-the-loop oversight on consequential actions.
Why C is wrong: Reducing the tool count doesn't affect execution behavior. The agent still auto-executes bookings. It just has fewer other tools while doing so. This doesn't address the reversibility or confirmation gap.
Why D is wrong: Prompts are probabilistic. Adding caution instructions influences Claude's behavior but cannot guarantee it. A prompt-based fix for a safety-critical flow is architecturally incorrect. The guarantee must come from the infrastructure layer, not the instruction layer.
Question 4: Claude Code Configuration
A development team wants Claude Code to always run the test suite before committing, use the company linting config at .eslintrc.company.json, and never modify any files in the /contracts/ directory. Where should these instructions be placed so all developers on the team get them automatically?
- A. In the project's .claude/settings.json, committed for team-wide configuration.
- B. In a
CLAUDE.mdfile at the project root, committed to the repository. - C. In a .claude/settings.local.json at the project root, kept out of git.
- D. In each developer's global ~/.claude/CLAUDE.md file.
Correct answer: B
Project-level behavioral instructions (coding standards, workflow rules, file restrictions) belong in CLAUDE.md at the project root. Committed to the repository, this file is automatically picked up by Claude Code for every developer who clones the project. This is the designed mechanism for sharing persistent natural-language instructions across a team.
Why A is wrong: settings.json controls tool permissions, hooks, and which .mcp.json servers are approved, not natural-language behavioral instructions. It is not the correct place for "run tests before committing" or "avoid /contracts/" style guidance.
Why C is wrong: settings.local.json is for local overrides that are intentionally not committed. Instructions that need to apply to the whole team must be in a committed file.
Why D is wrong: The global ~/.claude/CLAUDE.md applies to every project on a developer's machine. Putting project-specific rules there would apply them to unrelated projects and doesn't help other developers. Each person's global file is local to their machine.
Question 8: Tool Design & MCP
A tool called get_customer_records accepts a customer ID and a date range. Which JSON Schema definition will enable Claude to call this tool most reliably?
- A.
{"$schema": "https://json-schema.org/draft/2020-12/schema", "title": "get_customer_records", "type": "object", "properties": {"customer_id": {"type": "string", "minLength": 1, "maxLength": 64}, "start_date": {"type": ["string", "null"], "minLength": 1, "maxLength": 32}, "end_date": {"type": ["string", "null"], "minLength": 1, "maxLength": 32}}, "required": ["customer_id"], "additionalProperties": false} - B.
{"type": "object", "description": "Arguments for get_customer_records. The tool accepts any JSON object: pass the customer and the period in whichever fields seem most natural, using any property names, and the server maps them onto its own parameters. Unrecognised fields are ignored rather than rejected, so an over-specified call is always safe, and no properties are declared so the schema never needs updating when the record store changes.", "additionalProperties": true} - C.
{"type": "object", "properties": {"customer_id": {"type": "string", "description": "The unique customer identifier (e.g. CUST-12345)"}, "start_date": {"type": "string", "format": "date", "description": "Start of the date range in YYYY-MM-DD format"}, "end_date": {"type": "string", "format": "date", "description": "End of the date range in YYYY-MM-DD format"}}, "required": ["customer_id", "start_date", "end_date"]} - D.
{"type": "object", "properties": {"query": {"type": "string", "description": "A free-text request naming the customer and the period, for example 'records for CUST-12345 between 1 March and 31 March', which the tool parses on receipt"}}, "required": ["query"]}
Correct answer: C
An effective tool schema names each parameter explicitly, includes descriptions that tell the model what each parameter means and what format is expected, specifies format hints where relevant (e.g., "format": "date" for ISO 8601 dates), and declares all required fields. Option C does all of this. The descriptions and format hints are what allow Claude to populate parameters correctly from natural-language user requests. Without them, Claude must infer format and meaning from the parameter name alone.
Why A is wrong: This schema has the correct parameters but no descriptions and marks the date fields as optional. A date range tool without required start and end dates is inconsistently defined. The fields are conceptually mandatory for the query to make sense. Absent descriptions, Claude must guess the expected format for each field.
Why B is wrong: A schema that declares no properties provides no usable guidance: the description invites Claude to invent field names, and the tool cannot reliably parse whatever it invents.
Why D is wrong: Collapsing all input into a single query string removes the structure the tool needs. Claude cannot reliably produce a correctly formatted customer ID and date range from a single untyped string parameter, and the downstream system cannot parse structured data from freeform text.
When an enrolled user starts a practice session, questions are drawn from the full 400-question bank using a Fisher-Yates shuffle, so every session presents a different order. Without an account, Quick Sprint and the first five questions of a Focused Session draw from a fixed 55-question sample of the bank. You can choose from five practice modes:
- Quick Sprint — 10 random questions in 20 minutes; free without an account, drawn from the 55-question sample
- Focused Session — 20 random questions in 40 minutes; the first five need no account and come from the 55-question sample
- Deep Practice — 30 questions from the full 400-question bank across all domains, in 60 minutes
- Domain Drill — 20 questions from a single exam domain in 40 minutes; 109 questions in Agentic Architecture, 80 in Claude Code Configuration, 79 in Prompt Engineering, 72 in Tool Design & MCP, 60 in Context Management
- Full Exam — 60 questions from the full 400-question bank in 120 minutes, drawn at the published exam guide's domain weighting: 16 Agentic, 12 Claude Code, 12 Prompt Engineering, 11 Tool Design, 9 Context Management
What Makes These CCAR-F (CCA-F) Questions Exam-Realistic
Scenario-Based Design
Every question places you in a realistic situation — you are the architect making a decision, not someone recalling a definition. This approach aligned with the exam format and builds transferable skills.
Detailed Explanations
Every question includes a written explanation of the correct answer, and many also walk through why the other options fall short.
Domain-Weighted Scoring
Your results are scored with the same domain weights as the published CCA exam guide, so you see exactly where you stand in each area and where to focus additional study.
Multiple-Choice and Multiple-Response
Multiple-choice and multiple-response questions, matching the mixed format described in the official exam guide. Multiple-response items tell you upfront how many responses to select.
Want the full experience? Try a complete CCA Foundations exam simulation.
For a comprehensive overview of what the exam covers, read our CCA exam guide.
Frequently Asked Questions
How many practice questions are included?
400 questions across the five CCAR-F exam domains, weighted the way Section 4 of the official exam guide weights them. Every question has a written explanation of why the right answer is right.
Is there a full-length practice exam?
Yes. The Full Certification Exam draws 60 questions from the 400-question bank in 120 minutes, the same number of items and time limit Section 3 of the exam guide lists for the CCAR-F.
Can I try it before paying?
Yes. The 10-question Quick Sprint is free and draws from a fixed 55-question sample of the same bank, and the free diagnostic shows where you stand in each domain.
How much does it cost?
$49, one time, with no subscription. Every purchase is covered by a 10-day money-back guarantee.
Is this the official exam?
No. We are an independent prep site, not affiliated with Anthropic. The official CCAR-F exam is taken through Anthropic Partner Academy and Pearson VUE.
Start Practicing Today
Jump into 400 scenario-based questions and see where you stand across all five CCAR-F domains.
Unlock all 400 questions: $4910-day money-back guarantee · or try 10 free questions