Lesson 0009 · Domains 5 & 2 · Claude Certified Architect — Foundations

The last gaps: Domain 5 and MCP integration details

Context & reliability (15%, never taught here) · MCP resources, scoping and auth · a tool_choice re-drill. ~25 minutes.
Why you're here. Three converging signals. The 761/1000 pass report shows two Domain-5 objectives at 0% (context window optimization; human review routing) and a third at 50% — and D5 is the one domain with no lesson in this workspace. Your own certsafari run missed the single D5 item you met (stratified sampling), plus two MCP details (#12 resource mentions, #30 simultaneous tool availability). And three questions you got right but flagged land here too: #10 "what is a manifest or scratchpad?", #14 headersHelper, #37 tool_choice: "any". This lesson answers all of them.
Part A

1 · The persistence toolkit — scratchpads, manifests, /compact

This answers your flagged #10 directly. Long sessions degrade: the model starts giving inconsistent answers and referencing "typical patterns" instead of the specific classes it discovered earlier. The guide's fix is to move knowledge out of the conversation.

ToolWhat it isSolves
Scratchpad fileA file the agent writes key findings into as it explores, and re-reads for later questions.Context degradation across a long session — findings survive past the context boundary.
ManifestA structured state export to a known location. On resume the coordinator loads the manifest and injects it into agent prompts.Crash recovery. Work already completed isn't repeated.
Subagent delegationVerbose exploration happens in an isolated context; only the summary returns.Keeping the main agent's context clean while it coordinates.
/compactReduces context usage mid-session.Context filling with verbose discovery output.
Phase summariesSummarize phase N's findings before spawning phase N+1's subagents; inject as initial context.Carrying knowledge across phases without carrying the transcript.

So, #10 answered: before spawning a subagent to investigate the caching layer, check the scratchpad / manifest records from earlier phases — that's where prior findings were persisted. It isn't jargon from nowhere; it's guide 5.4's named mechanism.

Exam tell: "the agent contradicts what it found earlier" or "references typical patterns rather than the actual code" → persist findings outside the conversation. Not a bigger context window, not re-reading everything.

2 · Trimming, the case-facts block, and lost-in-the-middle

Three distinct failures — don't blur them

Exam tell: if the scenario names a lost number — a refund amount, a date, a percentage — the answer is the structured facts block, not "summarize more carefully."

3 · Escalation triggers (5.2)

EscalateDon't escalate
The customer explicitly asks for a human — immediately, without investigating firstMerely complex cases
Policy gap or ambiguity — policy is silent on this requestNegative sentiment / frustration alone
Cannot make meaningful progressLow self-reported confidence

The two unreliable proxies: sentiment-based escalation and self-reported confidence scores are explicitly named as poor stand-ins for actual case complexity. Frustration alone → acknowledge it and offer resolution if it's within capability; escalate only if the customer reiterates.

Multiple matches from a tool → ask for additional identifiers. Never pick heuristically.

4 · Error propagation across agents (5.3)

A subagent failure should reach the coordinator as structured error context: failure type · what was attempted · partial results · alternative approaches.

Two anti-patterns, both named: silently suppressing errors (returning empty results as success) and terminating the whole workflow on a single failure.

The distinction that gets tested: an access failure (timeout — needs a retry decision) is not the same as a valid empty result (the query succeeded, nothing matched). Collapsing both into "search unavailable" hides what the coordinator needs.

Subagents should attempt local recovery for transient failures and propagate only what they cannot resolve — with what was attempted and any partial results.

5 · Human review & confidence calibration (5.5)

This is your #49 miss and a 0% objective on the 761 report.

Why your answer lost: you chose reviewing whatever reviewers happen to flag during ad-hoc spot checks. That's a convenience sample — it only finds failures someone already suspected, which is exactly the opposite of detecting novel modes. "Ongoing monitoring for unknown failures" → stratified random sampling, every time.

6 · Provenance and conflicting sources (5.6)

ProblemThe guide's answer
Attribution lost during summarizationStructured claim-source mappings (source URL, document name, excerpt) that downstream agents must preserve and merge
Two credible sources give different statisticsAnnotate the conflict with attribution — keep both values. Never arbitrarily select one.
Figures that look contradictory but aren'tRequire publication / collection dates in structured output, so temporal differences aren't misread as contradictions
Reporting mixed contentRender by type — financial data as tables, news as prose, technical findings as lists — not everything into one uniform format

Recurring shape: in Domain 5 the answer is almost always preserve and annotate, never resolve and simplify.

Part B — MCP integration details

7 · Resources vs tools, and the @ mention

Tools are for actions. Resources are for content. The guide frames resources as exposing content catalogs — issue summaries, documentation hierarchies, database schemas — so the agent can see what data exists without burning exploratory tool calls.

The syntax — your flagged #12, "what is the prescribed form?"

@server:protocol://resource/path

Real examples from the docs — the certsafari item used the second one verbatim:

Can you analyze @github:issue://123 and suggest a fix? Please review the API documentation at @docs:file://api/authentication Compare @postgres:schema://users with @docs:file://database/user-model

Typing @ lists available resources from all connected servers, alongside files, with fuzzy search.

Exam tell: "reference that specific document inline, the way you'd reference a local file" → the @ mention. "Ask in plain language and trust it infers which resource" is the distractor — that's exploratory guessing, the thing resources exist to eliminate.

8 · All connected servers are available at once

Verbatim from the guide (2.4): "tools from all configured MCP servers are discovered at connection time and available simultaneously to the agent."

Your #30 miss. With Postgres, Sentry and Slack servers all connected, a single request can call across all three in the same turn. There is no sequencing gate, no "finish one server's calls before another's tools become selectable."

Careful — the real constraint is elsewhere. Guide 2.3 warns that giving an agent too many tools (18 instead of 4–5) degrades selection reliability. That's a design concern about crowding, not a runtime availability rule. Don't let one become the answer to the other.

9 · Scoping and authentication

NeedWhere
Shared team tooling, version-controlled.mcp.json — project scope
Personal / experimental servers~/.claude.json — user scope
Credentials without committing secretsEnv var expansion: ${GITHUB_TOKEN} inside .mcp.json
Beyond the guide, but it appeared on certsafari — your flagged #14. When a server authenticates with something that is not OAuth and needs a freshly minted token per connection — Kerberos, short-lived tokens, internal SSO — the mechanism is headersHelper: a command Claude Code runs at connection time whose stdout (header JSON) is merged into the connection headers. It runs fresh on every connection and the result is not cached.
{ "mcpServers": { "internal": { "type": "http", "url": "https://mcp.internal/mcp", "headersHelper": "/opt/bin/get-mcp-auth-headers.sh" } } }
A Kerberos-derived token is simply a credential issued by a corporate Kerberos/SSO system; the only exam-relevant property is that it must be regenerated per connection, which rules out a static headers value and rules out the oauth block entirely. Docs-verified, not in the exam guide — treat as bonus.
Part C — re-drill

10 · tool_choice — your flagged #37

Lesson 0002 taught this in June; you flagged it as hard to recall. One table:

SettingGuaranteeUse when
"auto"Model may return text instead of calling a toolConversation where a tool call is optional
"any"Must call a tool, model chooses whichStructured output is required and several schemas exist — the model picks the matching one
{"type":"tool","name":"…"}Must call that toolA specific extraction must run first (e.g. extract_metadata before enrichment)

The #37 insight worth keeping: "any" is what makes several small, purpose-specific tools better than one oversized combined schema. Three tools (extract_invoice / extract_receipt / extract_purchase_order) plus "any" lets Claude select the schema matching the actual document. One giant schema covering all three forces the model to reason about irrelevant fields on every call — the same splitting-over-consolidating principle as guide 2.1.

Practice — 16 drills across everything above

Primary source

Exam guide v1.0 (guides/) — Domain 5 in full (5.1 context, 5.2 escalation, 5.3 error propagation, 5.4 codebase exploration / scratchpads / manifests / /compact, 5.5 human review & calibration, 5.6 provenance) and 2.3–2.4 (tool distribution, MCP scoping, resources vs tools). Read 2026-08-24.

Docs-verified the same day: the @server:protocol://resource/path mention form and headersHelper (MCP reference). headersHelper is not in the exam guide — included because certsafari tested it.

Evidence: feedbacks-from-other/2026-08-24-761*.png (0% on 5.1 and 5.5) · tries/2026-08-24-wrong-answers.md (#9, #12, #30, #49) · tries/2026-08-24-marked-questions.md (#10, #14, #37).