CCA-F · Exam Intro

CCA-F

Claude Certified Architect — Foundations.What the exam is, what it covers, and how we prepare for it.

exam prep · august 2026

Part 01

The Exam

It's a scenario exam,
not a trivia exam.

Every question is a business situation with constraints. You pick the response that fits those constraints.

Format

What you sit down to

Delivery

Pearson VUE test center, or OnVue online proctoring. Everyone who tried both recommends the center — fewer connection and environment risks.

Scoring

Scale up to 1000 points. Answers can earnpartial credit — 80%, 67%, or 50% — so a "close" answer is not a zero.

Questions

Scenario-based. On the real exam 3+ options look "good enough" — the constraint in the question decides which one is right.

source: pass reports from recent test-takers, jul–aug 2026

Part 02

The Syllabus — five domains

Official structure

Five domains

  1. Agentic Architecture & Orchestration — agentic loops, multi-agent systems, subagents, hooks, sessions
  2. Tool Design & MCP Integration — tool interfaces, structured errors, tool choice, MCP servers, built-in tools
  3. Claude Code Configuration & Workflows — CLAUDE.md, skills & commands, plan mode, CI/CD
  4. Prompt Engineering & Structured Output — system prompts, few-shot, JSON via tool use, validation loops, batch
  5. Context Management & Reliability — context window, escalation, error propagation, provenance

Domain 1 of 5

Agentic Architecture & Orchestration

  1. How an agent actually runs: the loop — reason → act → observe → continue, driven by structured signals, not by the model "deciding it's done"
  2. When one agent isn't enough: multi-agent systems, subagents, and what context you pass them (they inherit nothing)
  3. Keeping it under control: hooks, workflow enforcement, iteration caps, and sessions (resume vs fork)

Exam flavor: "design or debug a multi-agent research system."

Domain 2 of 5

Tool Design & MCP Integration

  1. Giving Claude hands: designing tool interfaces — names, descriptions, and schemas the model can actually choose between
  2. When tools fail: structured error responses — category, retryable or not, enough info to self-correct
  3. Connecting to the world: MCP servers, tool distribution across agents, and Claude Code's built-in tools (Grep, Glob, Read, Edit, Bash)

Exam flavor: "the model keeps picking the wrong tool — what do you fix?"

Domain 3 of 5

Claude Code Configuration & Workflows

  1. Persistent behavior: CLAUDE.md hierarchy and scoping, imports, path-specific rules — configuration instead of re-prompting
  2. Reusable capabilities: slash commands and skills
  3. Execution modes: plan mode vs direct execution, iterative refinement, and headless CI/CD integration

Exam flavor: "a team wants consistent Claude behavior across repos and pipelines."

Domain 4 of 5

Prompt Engineering & Structured Output

  1. Getting reliable answers: system prompts with explicit criteriaand few-shot examples
  2. Getting reliable data: JSON via tool use, andvalidation-retry loops when it doesn't conform
  3. Doing it at scale: batch processing and multi-instance, multi-pass review

Exam flavor: "an extraction pipeline returns bad JSON — what's the next step?"

Domain 5 of 5

Context Management & Reliability

  1. The context window is finite: managing it, compaction, and what survives summarization
  2. Knowing when to stop: escalation to humans, ambiguity resolution, confidence calibration
  3. Trustworthy output over long runs: error propagation between agents, context degradation, information provenance

Exam flavor: "a long-running agent starts forgetting or making things up — which pattern fixes it?"

Mental model

Think of them as layers

Agenticthe loop
Toolthe hands
Workflowclaude code
Promptthe ask
Contextthe memory

Learn them one layer at a time. Today is the map — not the territory.

Part 03

But the exam has six scenario blocks

Why people report "different topics"

Syllabus ≠ exam structure

How you study

5 domains, each with numbered units. Clean, one concept at a time.

How you're tested

6 scenario blocks — business cases that each mix units from 2–3 domains at once.

That's why one test-taker reports "CI/CD, multi-agent, data extraction, MCP" and another "structured output, Agent SDK…" — they remember the story, not the domain number.

Six blocks per sitting — themes seen in pass reports

Scenario themes → domains

1 · CI/CD pipeline

PR reviews, headless mode, budget vs quality trade-offs → D3 + D4

2 · Multi-agent research

Orchestrator + subagents, context passing, failures → D1 + D5

3 · Data extraction

Structured JSON output, validation-retry, review passes → D4 + D2

4 · Claude Code + MCP

CLAUDE.md, skills, MCP server integration → D3 + D2

5 · Agent SDK

Sessions, hooks, permissions, subagent definitions → D1 + D3

6 · Wildcard

Blocks rotate per sitting — expect the remaining domains: context management, escalation, reliability → D5

reported hardest: ci/cd and data extraction — "nothing like the mock exams"

Read the constraints.
Don't pick the best practice in general.

Don't add requirements the question never stated. The scenario's explicit constraint is the answer key.

Part 04

How we prepare

Two tracks

Study the layers, drill the scenarios

Track 1 · Syllabus

Structured study + hands-on practice, layer by layer. Build the concepts on a real project, not flashcards alone.

Track 2 · Scenario drills

Mock exams under time pressure. Train the skill the exam actually grades:constraint spotting and trade-off analysis.

Track 1 without Track 2 is the most common failure pattern.

Resources · Track 1

Where to learn the syllabus

  1. claudecertificationguide.com/learn — the whole syllabus, domain by domain, unit by unit
  2. Official prep courses — anthropic-partners.skilljar.com, the CCA-F prep collection + Exam Guide
  3. Official docs — docs.claude.com: Claude Code, Agent SDK, MCP, prompt engineering

Pick one as your spine, use the others as reference.

Resources · Track 2

Where to drill

  1. Official Exam Guide (Skilljar) — sample questions, section 9
  2. certsafari.com — mock exam farm, domain mode
  3. ccaf-mock-exams.onrender.com — community-built mocks, tuned to the real difficulty (harder end)
  4. claudecertificationguide.com — theory + diagnostic test

rule of thumb from those who passed: if you pass the hard community mocks, you're ready

Part 05

One small project, all five domains

A bank-onboarding chat agent: React web app → Hono API → agent loop.live demo

Domain 1 · Agentic — the loop

packages/agent/src/loop.ts
// The docs write this as: while (stop_reason === 'tool_use') — unbounded.
// A capped for is the same loop, worst case exactly MAX_ITERATIONS paid calls.
for (let i = 0; i < MAX_ITERATIONS; i++) {
  const response = await createMessage(params);

  // structured signal decides the flow — never the reply text
  if (response.stop_reason !== 'tool_use') {
    return { reply, applicant, step: advanceStep(input.step, applicant) };
  }
  // ...execute the requested tools, push results, go around again
}
throw new Error(`Agent exceeded maximum iterations (${MAX_ITERATIONS})`);

stop_reason is the control signal; the cap makes a confused model abounded cost, then a loud developer-facing failure.

Domain 2 · Tools — structured errors

packages/agent/src/tool-errors.ts
export function toolError(category: ErrorCategory, message: string) {
  return {
    category, // transient | validation | business | permission
    // "calling again can ever succeed" — derived, never passed in
    isRetryable: category === 'transient' || category === 'validation',
    message,
  };
}

// a dissolved company is policy, not a bug — business, not retryable:
toolError('business',
  `${profile.company_name} is dissolved. Only active companies are eligible.
   Tell the applicant and ask if they have another company.`);

Four categories, isRetryable derived from the category — the model reads the payload and knows whether retrying can ever help.

Domain 3 · Claude Code — config over prompting

packages/agent/src/anthropic.ts · .claude/rules/
AGENT_CACHE=replay   # default — committed fixtures only, never the network
AGENT_CACHE=record   # call the real API once, write the fixture
AGENT_CACHE=off      # live calls, write nothing

# .claude/rules/api-conventions.md:
#   "Never construct an Anthropic client and never call
#    client.messages.create anywhere else."

Record/replay cache: a fresh clone runs offline, free, deterministic — the same property CI needs from claude -p. Rules live in config, not in every prompt.

Domain 4 · Structured output — schema + retry

packages/agent/src/loop.ts
// One Zod schema, two jobs — they can never drift:
{
  name: t.name,
  description: t.description,
  input_schema: toToolInputSchema(t.schema), // 1. the JSON Schema the model sees
}

const parsed = saveNameSchema.safeParse(block.input); // 2. validates what it sent
if (!parsed.success)
  return {
    content: JSON.stringify(zodFailureToToolError(parsed.error)),
    isError: true, // the model reads the error and corrects itself — retry loop
  };

JSON via tool use, validated on arrival; a failed parse becomes anis_error tool result — the validation-retry loop with no extra code.

Domain 5 · Context — what enters the transcript

packages/agent/src/loop.ts
// The server holds nothing between HTTP calls — anything that must
// survive to the next turn lives in the transcript itself.
const messages = [...input.messages];

// Trim before it enters the transcript: the registry returns every field
// it has, the model needs four — and this JSON rides along on every
// later call this turn. Verbosity compounds.
const trimmed = result.items.map((item) => ({
  title: item.title,
  company_number: item.company_number,
  company_status: item.company_status,
  address_snippet: item.address_snippet,
}));

Stateless server, transcript as the only memory, tool resultstrimmed at the boundary — context is a budget you spend on purpose.

Learn the layers.
Drill the scenarios.
Build one small thing.

navigate: ← → · space · f for fullscreen