Module 27 of 30
Cert
Exam Prep

The Claude Certified Architect — Foundations exam tests judgment under realistic constraints, not API recall. Six concepts: domain coverage map, anti-pattern reference, validation-retry, provenance, scenario walkthroughs, and mock exam strategy. Pass at 720/1000.

Track 9: Cert Prep ⏱ ~18 min read 27 / 30
Concept 1 of 6

The 5 domains, weighted

Anthropic's official Claude Certified Architect — Foundations blueprint splits the exam into 5 domains. Each domain owns a set of "task statements" (28 total), and each task statement maps to one or more course modules. If your practice score is weak in a domain, jump to that row instead of re-reading the whole course.

Weights are not equal. D1 Agentic Architecture is the heaviest at 27%. D5 Context & Reliability is the lightest at 15% but punches above its weight on judgment questions. Budget your study time to the weights, not your comfort zones.

Concept 1 of 6

The blueprint is a syllabus

BEFORE: You're prepping for a final and your instinct is to re-read the whole textbook front-to-back. Equal time on every chapter, every page. It feels thorough — you're "covering everything."

PAIN: But the professor publishes a syllabus showing chapter weights, and chapter 3 is worth 27% of the final while chapter 9 is worth 5%. Reading them equally means you under-prepare for the heavy chapter and over-prepare for the light one. Same hours in, worse score out.

MAPPING: The cert blueprint is your syllabus. The 5 domains and their weights tell you exactly where points come from. Study to the weights: D1 (27%) gets the most hours, D5 (15%) gets the least — unless your practice scores reveal a weak spot, in which case the weak domain wins regardless of weight.

Concept 1 of 6

From blueprint to study plan

  1. Read the official blueprint firstAnthropic publishes a Foundations exam guide listing all 5 domains and their 28 task statements. That's the source of truth for what's tested. Anything not on it is out of scope.
  2. Map every task statement to a moduleEach task statement points to a "primary" module (taught from scratch) plus "cert tip" callouts in related modules. The map below shows them all.
  3. Diagnose with practice scoresTake one full mock early. The per-domain breakdown reveals which row to drill, regardless of weight.
  4. Target the row, not the whole moduleYou don't re-read M14. You re-read the cert tip in M14 plus the primary module that owns that exact task statement.
  5. Skip the out-of-scope listFine-tuning, OAuth, billing, embedding internals, vector DB internals — not tested. Don't waste hours on them.
Concept 1 of 6

5 domains at a glance

DomTopicWtModules
D1Agentic Architecture & Orchestration
loops, subagents, hooks, sessions
27%M12 M13 M14 M26
D2Tool Design & MCP Integration
structured errors, tool budgets
18%M05 M06 M07 M25
D3Claude Code Configuration
CLAUDE.md, skills, plan mode, CI
20%M25
D4Prompt Engineering & Structured Output
tool_use, validation, batch API
20%M03 M04 M18 M22
D5Context Management & Reliability
case-facts, escalation, provenance
15%M11 M17 M27B

Out of scope: fine-tuning, OAuth, billing, MCP server hosting, embedding/vector DB internals, computer use, vision, streaming, rate limits, prompt-caching internals, token-counting algos.

Concept 1 of 6

Misconceptions

"All 5 domains weigh the same — study evenly."
No. D1 is 27%, D5 is 15% — almost double. Equal time means under-prepping the heavy domain. Hours in should track points available out, modulated by your weakest area on practice mocks.
"I should learn fine-tuning, vector DB internals, and OAuth too — just to be safe."
Anthropic publishes an explicit out-of-scope list. Studying it has zero exam payoff and steals time from in-scope D1/D3/D4. If it isn't on the blueprint, it isn't on the exam.

The blueprint is the syllabus. 5 domains, 28 task statements, weights ~15–27%. Map each statement to a primary module + cert tip, drill weak rows, ignore out-of-scope topics.

D1 is the heaviest at 27%. Spend study hours proportional to weights, with extra time on whichever domain your mocks reveal as weakest.

Concept 2 of 6

Wrong answers ARE the anti-patterns

Every cert question has the same shape: 1 correct pattern + 3 plausible-wrong distractors. The distractors are not random nonsense — they're real anti-patterns developers actually ship. If you can recognize the wrong answers as named anti-patterns, half the question is already eliminated.

The cert tests roughly 18 anti-patterns across all 5 domains. They cluster around five themes: parsing natural language to control flow, using prompts where hooks belong, trusting self-reported model output, letting one agent hold too many tools, and aggregating metrics that hide failures.

Concept 2 of 6

Medical board impostors

BEFORE: You're studying for medical boards. You know the textbook diagnoses cold — heart attack, pneumonia, appendicitis. The right answers are crisp.

PAIN: The boards don't ask "what's the textbook diagnosis." They show you a patient with chest pain and offer four options: heart attack, acid reflux, pulled muscle, panic attack. Three are plausible impostors. If you only memorized the right answer, you can't tell which option is the real impostor and which is correct.

MAPPING: The cert is the same test. Anti-patterns are the impostors — "use the system prompt for refund limits," "trust Claude's confidence score," "give one agent 18 tools." Each is plausible if you've never been told it's wrong. Memorizing the anti-pattern catalog is how you spot the impostors instantly.

Concept 2 of 6

How to use the catalog

  1. Read each anti-pattern in BOTH directionsThe wrong move ("parse 'I'm done' to stop the loop") AND the correct move ("check stop_reason"). Two-sided memory.
  2. Tag each anti-pattern with its domainD1 anti-patterns show up in agent-loop questions; D2 in tool questions; D5 in metrics questions. Tags speed elimination.
  3. Practice naming the anti-pattern out loudWhen you see option D in a question, you should be able to say "AP #2: iteration cap as control" before you even read option C.
  4. Watch for combosSome questions stack two anti-patterns: a system-prompt rule (AP #3) inside a same-session review (AP #12). Catching one isn't enough.
Concept 2 of 6

10 anti-patterns to know cold

D1.1
Parse "I'm done" to detect loop end
Check stop_reason: tool_use = continue, end_turn = done.
D1.1
Use iteration caps as primary stop control
Let stop_reason terminate; maxTurns is a safety net only.
D1.3
Enforce business rules in the system prompt
Use programmatic hooks. Hooks can't be bypassed by prompt injection.
D1.4
Escalate based on customer sentiment / anger
Escalate on policy gaps, capability limits, explicit asks — not tone.
D1.4
Trust self-reported confidence scores
Use structured criteria. Model confidence is poorly calibrated.
D2.2
Return generic "Operation failed" errors
Return {isError, errorCategory, isRetryable, context}.
D2.3
Return {results: []} for access failures
Distinguish "nothing found" from "couldn't check" with isError.
D2.4
One agent with 18+ tools
Cap at 4–5 tools/agent; distribute across specialized subagents.
D5.1
Progressive summarization for critical IDs/amounts
Pin "case facts" at the START of context; never summarize them.
D5.6
Report aggregate "95% accuracy" only
Stratify per category — invoices at 70% can hide behind receipts at 99%.

10 of ~18. Desktop has the full set with flip cards.

Concept 2 of 6

Misconceptions

"Anti-patterns are obvious once I see them."
In a quiet study session, yes. Under exam pressure with a 90-second timer, {results: []} for an auth failure looks deceptively reasonable. Practice spotting them under timed conditions, not just untimed.
"Memorizing the anti-patterns is enough."
You also need the right answer. The cert often offers two anti-patterns AND two reasonable-looking options. Knowing which is wrong eliminates two; you still need to pick the better of the remaining two using positive pattern knowledge.

Anti-patterns are the language of the exam's wrong answers. Learn each one in BOTH directions — the wrong move and its correct replacement — and tag it with its domain so elimination becomes reflex.

The most-tested theme: use deterministic mechanisms (hooks, schemas, structured errors) for anything that matters. Prompts are advisory, not enforcement.

Concept 3 of 6

Specific feedback fixes specific bugs

The validation-retry loop is the cert's most-tested Domain 4 pattern. Claude returns structurally valid JSON via tool_use — the schema guarantees that. But the values inside may still be wrong. A CPT code field might contain "knee surgery" instead of "27447". Schemas guarantee shape, not meaning.

The trick: when validation fails, do not say "try again." Append specific field-level errors to the conversation — which field, what was expected, what was actually returned. Self-correction accuracy jumps from ~30–40% (generic retry) to 80%+ (specific feedback). Cap at 3 retries per field; after that, flag for human review.

Concept 3 of 6

The teacher who writes feedback

BEFORE: A student turns in an essay. The teacher hands it back marked "WRONG, redo." The student rereads it, can't tell what's wrong, and produces a similar essay with similar mistakes.

PAIN: Generic feedback fails because the student doesn't know which sentence to fix. They retry blindly. Multiple cycles burn time and produce only marginal improvement — or no improvement at all.

MAPPING: Generic "try again" is the same useless feedback for Claude. Replace it with surgical comments: "Paragraph 3, sentence 2: cite a source for this claim." That's "Field 'cpt_code': expected 5-digit numeric, got 'knee surgery'." Claude self-corrects the next round because it knows exactly what to fix.

Concept 3 of 6

The 4-step loop

  1. Extract with tool_useForce the specific extraction tool with tool_choice: {type: "tool", name: "..."} on the first attempt. Schema guarantees structure.
  2. Validate against business rulesRun domain checks: regex on CPT codes, format on ICD-10, positivity on units. Schema = structure; validator = meaning.
  3. On failure: append SPECIFIC errorsEach error names the field, the expected format, and the actual value. Add as a tool_result with is_error: true.
  4. Cap retries per field at 3If the same field fails three times, the source document probably doesn't contain the data — flag for human review instead of looping forever.
Concept 3 of 6

Pseudocode

# Validate-retry with per-field failure caps
FUNCTION extract_with_retry(document, max_retries=3):
  field_failures = {}
  messages = [{"role": "user", "content": document}]

  FOR attempt IN 0..max_retries:
    response = CALL Claude(
      tools=[extract_tool],
      tool_choice=force_tool IF attempt==0 ELSE auto,
      messages=messages
    )
    extracted = response.tool_use.input
    errors = validate(extracted)         # business rules

    IF errors is empty:
      RETURN {success: true, data: extracted}

    # Stuck-field check: same field, 3rd failure = data issue
    FOR err IN errors:
      field_failures[err.field] += 1
      IF field_failures[err.field] >= 3:
        RETURN flag_for_human(err.field)

    # THE KEY: append SPECIFIC errors, not "try again"
    detail = JOIN("field 'X': expected Y, got Z" FOR err)
    messages.append(tool_result(detail, is_error=true))

  RETURN {success: false, reason: "max retries"}

Generic "try again": ~35% self-correction. Specific errors: ~80%+. The wording of the feedback is the entire pattern.

Concept 3 of 6

Misconceptions

"tool_use JSON is valid, so the values are correct."
Schema guarantees structure (correct types, required fields present). It does NOT guarantee semantic correctness. {"cpt_code": "knee surgery"} is valid JSON and a complete schema match — and still wrong. Always validate after extracting.
"Just retry forever until Claude gets it right."
Some failures aren't self-correctable: if the source document never mentions a CPT code, no number of retries produces one. The 3-strikes-per-field cap catches data-quality issues and routes them to humans instead of looping forever.

Schema = structure. Validator = meaning. Claude returns valid JSON; your validator catches the values that are wrong.

Specific field-level feedback beats generic "try again" by 2–3x. Cap at 3 retries per field, then escalate. This is the cert's signature Domain 4 pattern.

Concept 4 of 6

Every claim carries its source

In multi-agent systems, three subagents can return three different answers to the same question. Provenance is the metadata that lets the coordinator decide which to trust — without delegating the decision to Claude. Every claim travels with: source, confidence, timestamp, and agent ID.

This is the cert's signature Domain 5 pattern (task statement 5.6). The exam tests it as Scenario 3 (Multi-Agent Research). Conflict resolution follows a fixed priority chain: trust official sources over aggregators; if reliability ties, trust fresher data; if still tied, flag as "contested" and route to human review.

Concept 4 of 6

The journalist's source notes

BEFORE: A reporter writes "sources say the company is bankrupt" without attribution. Maybe it was the CEO; maybe a disgruntled intern; maybe Twitter rumor. The reader can't tell.

PAIN: When two reporters publish opposite claims about the same company, the editor has no basis for deciding which to print. Without source notes, the newsroom is just guessing — and reputations get destroyed by the wrong guess.

MAPPING: Subagent reports without provenance are unsourced reporting. Subagent A says "Acme has a lien" (state filing DB). Subagent B says "no liens" (third-party aggregator). The coordinator is the editor — and provenance is the source notes that let the editor decide official-DB beats aggregator, every time.

Concept 4 of 6

Four metadata fields, one priority chain

  1. SourceWhich agent/tool/API produced the claim. Direct DB query? Third-party scraper? Critical for reliability ranking.
  2. ConfidenceReliability tier of the source. Official state DB = high. Aggregator = medium. User-submitted = low. Hardcoded, not Claude-judged.
  3. TimestampWhen was the data retrieved? UCC filings can update daily. Stale "high confidence" data may already be wrong.
  4. Agent IDWhich subagent in the pipeline produced the claim. Required for audit-trace when something goes wrong.
  5. Resolution chainHighest confidence wins. If tied, freshest wins. If still tied, flag "contested" and emit BOTH sources for human review.
Concept 4 of 6

Pseudocode

# Every claim carries provenance metadata
STRUCT Claim:
  text          # the actual claim
  source        # e.g., "ny_state_filing_db"
  confidence    # "high" | "medium" | "low"
  timestamp     # ISO-8601 retrieval time
  agent_id      # which subagent produced it

# Coordinator resolves conflicts deterministically
FUNCTION resolve(claims_for_same_question):
  IF claims.length == 1:
    RETURN {status: "single-source", claim: claims[0]}

  # Step 1: highest source-confidence wins
  ranked = sort_by(claims, key=confidence_rank, desc=true)
  top = ranked[0]
  rivals = [c FOR c IN ranked IF c.confidence == top.confidence]

  # Step 2: tie-break by freshness
  IF rivals.length > 1:
    rivals = sort_by(rivals, key=timestamp, desc=true)

  # Step 3: still disagreeing? mark contested, send to human
  IF rivals[0].text != rivals[-1].text:
    RETURN {status: "contested", sources: rivals, escalate: true}

  RETURN {status: "well-established", claim: rivals[0]}

Reliability ranking is hardcoded. Never delegate "which source is more trustworthy" to Claude — that turns a deterministic decision into a non-deterministic guess.

Concept 4 of 6

Misconceptions

"Provenance is just logging."
Logs are after-the-fact records. Provenance is consumed at decision time — the coordinator reads it to choose which conflicting claim to trust. Logs help you debug; provenance helps the agent decide.
"Let Claude judge which source is more reliable."
This is explicitly penalized on the cert. Source reliability is a deterministic, hardcoded ordering (official DB > aggregator > user-submitted). Never delegate it to a non-deterministic model. Claude orchestrates; rules decide trust.

Every multi-agent claim carries 4 metadata fields: source, confidence, timestamp, agent_id. Without them, conflict resolution is guessing.

Resolution priority: highest confidence → freshest tiebreaker → "contested" + human escalation. Hardcoded; never Claude-judged.

Concept 5 of 6

Six recurring scenarios power the exam

The cert reuses six scenario backdrops across the entire exam. Each scenario is a 2–3 sentence setup describing a real production system; each gets 3–4 questions hung off it, testing different domain concepts. Recognize the scenario, recall its canonical architecture, and you've already framed the answer.

The scenarios: S1 Customer Support (refunds, escalation), S2 Code Generation (Claude Code, plan mode), S3 Multi-Agent Research (provenance, conflict), S4 Developer Productivity (Agent SDK + MCP), S5 CI/CD (non-interactive, session isolation), S6 Data Extraction (validation-retry, schemas).

Concept 5 of 6

Case studies in business school

BEFORE: An MBA student walks into a strategy exam expecting random questions about supply chains, marketing, and finance.

PAIN: Instead, the professor spends the first 5 minutes describing one company — "Acme Corp, $500M revenue, struggling with X" — and then asks four questions all set in that same company. If you didn't recognize it as the case from week 6, you waste minutes re-deriving the situation for each question.

MAPPING: Cert scenarios work identically. "Customer support agent processing refund requests..." — that's S1, and the next three questions will all be about S1 too. Recognize the scenario in the first sentence, recall its canonical architecture, and the question is half-answered before you read the options.

Concept 5 of 6

Each scenario's signature decision

  1. S1 Customer SupportHook-based refund limits + escalate on policy gaps (NOT sentiment). Watch for prompt-based enforcement distractors.
  2. S2 Code GenerationPlan mode for complex tasks + directory-level CLAUDE.md + iterative TDD. Watch for "skip planning" distractors.
  3. S3 Multi-Agent ResearchProvenance tracking + context isolation + fork_session. Watch for "average the answers" distractors.
  4. S4 Developer ProductivityAgent SDK + built-in tools (Read/Write/Bash/Grep/Glob) + MCP for external data. Watch for "give one agent everything" distractors.
  5. S5 CI/CDNon-interactive -p + --output-format json + separate sessions for generate vs review. Watch for same-session reuse distractors.
  6. S6 Data ExtractionSchema design + tool_choice forced + validation-retry with specific errors. Watch for "increase max_tokens" distractors.
Concept 5 of 6

Parsing an exam question

# Read every question through this filter
FUNCTION parse_question(q):
  # Step 1: identify the scenario
  scenario = match(q.context, [S1..S6])
  IF scenario found:
    canonical_arch = recall_architecture(scenario)
    # now you know what GOOD looks like

  # Step 2: identify the domain being tested
  domain = classify(q.stem) # D1..D5
  expected_patterns = patterns_for(domain)
  expected_anti_patterns = anti_patterns_for(domain)

  # Step 3: scan the 4 options against the catalogs
  FOR option IN q.options:
    IF matches(option, expected_anti_patterns):
      eliminate(option)
    ELIF matches(option, canonical_arch):
      mark_likely(option)

  # Step 4: between remaining options, pick most specific
  RETURN most_specific(remaining)

Scenario → domain → anti-pattern scan → pick. Four passes, ~60 seconds total. Practice until it's reflex.

Concept 5 of 6

Misconceptions

"Each question stands alone — I should treat them independently."
No. Multiple questions share a scenario backdrop. Once you recognize "Customer Support agent...refunds..." as S1, the next three questions are also S1. Recall the canonical architecture once, reuse it three times. That's a 3x speedup.
"The scenario is just background — the real question is in the stem."
The scenario IS the question half the time. Distractors look correct in the abstract but wrong in this specific scenario. fork_session is great for exploration but wrong for CI/CD review — the scenario tells you which.

Six scenarios, each with one canonical architecture and a typical anti-pattern set. Recognize the scenario in the first sentence; the question becomes a 60-second pattern match.

Read the four options through the anti-pattern filter first. Eliminate the named impostors before you start reasoning — you'll be left with two plausible options instead of four.

Concept 6 of 6

Mocks reveal the gap, not just the score

A mock exam isn't a verdict; it's a diagnostic. The single most valuable output is the per-domain breakdown — not the overall score. A 78% overall that's actually D1 92% / D5 60% means D5 is your study target, regardless of weight.

Aim for 800+ on full mocks (passing is 720/1000, so 800 is a comfortable margin). Run at least 2 full-length timed mocks in the final week, under exam conditions: 90-minute timer, 90 seconds per question, no notes. Review every wrong answer to identify which anti-pattern fooled you.

Concept 6 of 6

Marathon training, not race day

BEFORE: You're training for a marathon. Your instinct is to run a full 26.2 every weekend to "prove you can do it."

PAIN: Running max distance every week burns you out. You arrive at race day exhausted, with no headroom for the unexpected. The full distance reveals your weak spots, but only if you run it sparingly and rest in between.

MAPPING: Full mock exams are like full marathons. Run 2 in the final week, max. Use the per-domain breakdown the way a runner uses heart-rate data — to find weak spots and rest before race day. The exam morning rewards a rested brain, not a fried one.

Concept 6 of 6

The 4-week prep arc

  1. Week 1: domain coverageWalk all 5 domains. Map task statements to modules. Skim the cert tip in each module. No mocks yet.
  2. Week 2: scenario libraryBuild the 6 scenario architectures + 18 anti-patterns into recall. One short timed quiz at week-end — diagnostic only.
  3. Week 3: drilling weak rowsFocus on whichever domain scored lowest. Re-read primary module + cert tip. One full mock; review every wrong answer with anti-pattern names.
  4. Week 4: full mocks + sleepTwo full-length timed mocks. Light review only. Sleep more than you study. Walk in calm.
Concept 6 of 6

The 90-second loop

# For every question, run this loop
FUNCTION answer_question(q):
  start_timer(seconds=90)
  scenario = identify_scenario(q.context) # S1..S6
  domain = classify(q.stem)               # D1..D5

  # Pass 1: kill the obvious anti-pattern (always 1 exists)
  options = q.options
  options.remove(match_first(options, anti_patterns_for(domain)))

  # Pass 2: check remaining 3 against canonical_arch[scenario]
  best = match_best(options, canonical_arch[scenario])

  IF timer.elapsed > 90:
    flag(q)                # come back later
    pick_best_guess(options) # NEVER leave blank
    CONTINUE
  RETURN best

# Save 10 min at end for flagged questions; review fresh
# Eliminate-first odds: 50-66% (vs 25% pure guessing)

Pacing: ~60 questions in 90 minutes → 90 seconds each, with 10 min reserve. Never leave a question blank — eliminate-first guesses are positive expected value.

Concept 6 of 6

Misconceptions

"I should aim for 100% on mocks."
No. Passing is 720/1000. Target 800+ on mocks for a comfortable margin without burnout. Chasing 100% steals sleep that you need on exam morning. A rested 850 beats an exhausted 950.
"Multiple choice means I should guess if I'm unsure."
Pure guessing is 25%. Eliminate-first guessing is 50–66%, because every question has at least one obviously-wrong anti-pattern. Eliminate, then choose between remaining options. Never leave a question blank.

Mocks diagnose; they don't grade. Read the per-domain breakdown, not just the overall score. The weakest domain is your week-3 drill target.

Exam day is a 90-second loop: identify scenario, classify domain, eliminate anti-patterns, pick best, flag if stuck, never leave blank. Save 10 minutes for flagged questions. Sleep more than you study the night before.

One question per concept

Tap a card to reveal the answer.

Open the full module on desktop

The desktop version walks through the official blueprint, all 18 anti-pattern flip cards, the validation-retry and provenance code in Python and Node.js, all 6 scenario architectures, and an 8-question mock exam with per-domain scoring — plus exam-day logistics.

Open M27 on Desktop → 5 domains · 18 anti-patterns · 6 scenarios · 8-question mock · ~90 min

Module 27 of 30 · Track 9: Cert Prep