CCAR-F curriculum
30 lessons across the five domains in the published Architect (Foundations) blueprint. Each carries worked examples, the exam traps for that topic, and a quick check. Domains below are ordered by weight, heaviest first — Agentic Architecture & Orchestration alone is over a quarter of the paper.
All five domain weights are from Anthropic's CCAR-F exam guide v1.0, effective July 2026. Prompt Engineering & Structured Output (20%) and Context Management & Reliability (15%) were corrected from earlier estimates on 2026-10-27 — see the changelog.
Agentic Architecture & Orchestration
- 1.1 Agentic loops and termination conditions
Drive the loop by stop_reason: continue on "tool_use", stop on "end_turn". Let the model pick the path; an iteration cap is a safety net, not the steering wheel.
- 1.2 Coordinator-subagent orchestration
The coordinator owns decomposition, delegation, routing, and synthesis. Scope broadly, pick subagents per query, and loop on gaps until coverage is sufficient.
- 1.3 Subagent invocation and context passing
Subagents are spawned with the Task tool and inherit nothing. Pass complete, structured findings in the prompt, fan out in one response, and give goals, not scripts.
- 1.4 Workflow enforcement and handoff design
When an ordering rule must hold every time, enforce it in code with a prerequisite gate. When escalating, give the human a structured summary, not a transcript.
- 1.5 Agent SDK hooks for interception and normalization
Hooks are deterministic: PostToolUse reshapes tool results before the model sees them; call interception blocks policy violations and reroutes. Prompts persuade.
- 1.6 Task decomposition strategies
Match decomposition to the workflow: fixed prompt chains for predictable multi-aspect reviews, adaptive plans for open-ended work that grow from what's found.
- 1.7 Session state, resumption, and forking
Resume a named session while its context holds, fork_session to explore alternatives from one baseline, and start fresh with a summary when tool results are stale.
Claude Code Configuration & Workflows
- 3.1 CLAUDE.md hierarchy and modular configuration
Put team instructions at project level, not in ~/.claude/CLAUDE.md. Keep CLAUDE.md modular with @import and .claude/rules/, and check what loaded with /memory.
- 3.2 Custom slash commands and skills
Team commands and skills live in .claude/, personal variants in ~/.claude/. Use context: fork to isolate output, allowed-tools to restrict, argument-hint to prompt.
- 3.3 Path-specific rules for conditional loading
A .claude/rules/ file with a paths: glob loads only when Claude edits matching files. Use it for file-type conventions, not copies in directory CLAUDE.md files.
- 3.4 Plan mode vs direct execution
Plan when a change is architectural, multi-file, or has several valid approaches; execute directly when scope is clear. Use the Explore subagent for discovery.
- 3.5 Iterative refinement techniques
If prose is read inconsistently, give 2-3 input/output examples. Write tests first and share failures, interview before unfamiliar work, batch interacting fixes.
- 3.6 Claude Code in CI/CD pipelines
In CI, use -p so runs can't hang, --output-format json with --json-schema for findings, CLAUDE.md for context, and an independent instance for review.
Prompt Engineering & Structured Output
- 4.1 Explicit criteria for precision
Precision comes from categorical criteria that say what to report and what to skip, not from telling the model to "be conservative" or report only sure findings.
- 4.2 Few-shot prompting for consistency
When detailed instructions still give inconsistent output, 2–4 targeted examples showing the format and the reasoning on ambiguous cases are the most effective fix.
- 4.3 Structured output and schema enforcement
Tool use with a JSON schema is the reliable route to schema-compliant output. Choose tool_choice deliberately; make absent data nullable so it never gets invented.
- 4.4 Validation, retry, and feedback loops
Retry with specific validation errors fixes format and structure mistakes, not missing information. Add fields that let output check itself and explain dismissals.
- 4.5 Batch processing strategies
The Message Batches API halves cost but can take up to 24 hours with no latency SLA. Use it for work nobody is waiting on, and correlate and resubmit by custom_id.
- 4.6 Multi-instance and multi-pass review
A model reviewing its own work in the same session inherits its own reasoning. Use a fresh instance, and split big reviews into per-file and cross-file passes.
Tool Design & MCP Integration
- 2.1 Tool descriptions and boundaries
The model picks tools from their descriptions. Fix confusion by renaming and rewriting both overlapping tools, splitting generic ones, and checking the prompt.
- 2.2 Structured error responses for MCP tools
Return failures with isError, a category, a retryable flag, and a clear message. Keep empty results apart from failed access, and retry transient errors locally.
- 2.3 Tool distribution and tool_choice
Give each agent only the tools its role needs, add narrow cross-role tools for frequent needs, and use tool_choice to require a tool call or a specific first tool.
- 2.4 Integrating MCP servers
Shared servers go in .mcp.json with ${VAR} secrets, personal ones in ~/.claude.json. Describe MCP tools well, expose catalogs as resources, use community servers.
- 2.5 Choosing built-in tools
Grep searches contents, Glob matches paths, Edit needs a unique anchor, and Read + Write is the fallback. Explore from Grep entry points, not by reading everything.
Context Management & Reliability
- 5.1 Preserving critical context in long interactions
Summaries blur the exact numbers a case depends on. Keep transactional facts in a persistent case-facts block, trim tool output, and put key findings first.
- 5.2 Escalation and ambiguity resolution
Escalate on explicit triggers (a request for a human, a policy gap, no progress), not sentiment or self-rated confidence. With multiple matches, ask.
- 5.3 Error propagation in multi-agent systems
Subagents retry transient failures locally and propagate the rest with structured context. Never report a failure as an empty success or abort on one failure.
- 5.4 Context management in large codebase exploration
Long exploration sessions drift into vague "typical pattern" answers. Delegate discovery to subagents, persist findings in scratchpads, and compact.
- 5.5 Human review workflows and confidence calibration
A 97% aggregate can hide a failing document type. Validate by segment, calibrate field-level confidence on labeled data, and keep sampling automated output.
- 5.6 Information provenance and uncertainty in synthesis
Attribution dies in summarization unless claim-source mappings travel with findings. Annotate conflicts with sources instead of picking one; keep dates.