How the CCA-F exam thinks
The exam rarely asks for a definition. It gives you a production failure and asks which mechanism owns the fix. This page teaches that reasoning layer. The five domain pages then teach each task statement in full, with mechanisms, worked examples, traps, and build exercises.
| If the question says | Think about |
|---|---|
| must always / every time / guarantee | Deterministic enforcement. A hook, a prerequisite gate, or a schema constraint. Prompting raises the odds; it does not remove the failure rate. |
| sometimes / occasionally / inconsistent | Behavioural guidance. Clearer criteria, examples, or a sharper system prompt. The model understands the task and drifts on variance. |
| after tool execution / after each tool call | A PostToolUse hook or normalization step in application code, so the model never has to reinterpret heterogeneous formats. |
| before the action happens / must never run | A PreToolUse hook. Post-execution logic can flag, but it cannot prevent. |
| shared with every developer / same repository | Project-scoped configuration committed to the repo, not user-scoped configuration in a home directory that never travels with a clone. |
| the information is absent | Not retryable. A retry cannot invent data that was never present. Ask, escalate, or return an explicit gap. |
| the information is present but in the wrong field | Retryable with targeted feedback. Return the document, the failed output, and the specific validation error. |
| structurally valid but semantically wrong | Syntax validation passed. You need a semantic layer. Valid JSON is not correct business data. |
| independent review / second opinion | A separate session or agent. Same-session self-review inherits the reasoning that produced the output and is less likely to challenge it. |
| overnight / weekly / results consumed later | Batch processing for the cost saving. Anything blocking a person or a merge stays synchronous. |
| human approval required / high stakes | A policy gate that surfaces the operation for approval. A self-reported confidence number is not a policy. |
| the model must use a tool but may choose which | Forcing any tool differs from forcing one named tool. Read which one the stem needs. |
| steps are independent | Parallel tool calls or parallel subagents. A producer-consumer dependency has to stay sequential. |
| one agent has more than ten tools | Selection complexity. Consolidate near-duplicates, scope by role, or split agents. Better wording alone may not rescue it. |
| the same long prefix on every request | Prompt caching. The cached prefix must be byte-identical and everything dynamic has to come after the breakpoint. |
| 97 percent overall accuracy | An aggregate is not permission to automate. Segment by document type and field before reducing review. |
| the enum keeps growing | A resilient schema with an other value plus a free-text detail field, not an endless enum. |
| the stated total does not match the line items | Cross-field validation in the schema, with human review only on mismatch. |
| resumed after several hours and the files changed | Old tool results are stale. Start clean with an injected summary and re-read only what changed. |
| the agent now describes typical patterns | Context degradation. Externalize findings to a scratchpad and isolate verbose exploration in subagents. |
- 1Find the actual requirementThe binding constraint usually sits in the last sentence: cost, latency, reliability, safety, or maintainability. Note whether the stem uses an absolute or a frequency word.
- 2Decide guidance or enforcementWords like sometimes and inconsistent point at clearer instruction and examples. Words like must always and guarantee point at a hook, gate, or schema constraint. Confusing these is the single most common error.
- 3Identify the owning layerAPI parameter, system prompt, tool schema, application code, project configuration, or infrastructure. A correct idea placed in the wrong layer is still a wrong answer.
- 4Classify the failureTransient failures justify a bounded retry. Validation failures need corrected input. Permission and business failures need a different path. A valid empty result is an answer, not a failure.
- 5Find the disqualifying detail in each alternativeEvery distractor violates one stated constraint: wrong scope, wrong primitive, unverifiable criteria, self-review, an uncalibrated signal, or an overloaded toolkit.
- 6Choose the least machinery that still guarantees the outcomeThe exam rewards the simplest sufficient design, not the most elaborate one.
Reread the final sentence of the stem. The correct option answers the stated constraint directly; the runner-up answers a secondary concern. Then check strength of language: an option promising a guarantee is mismatched to a stem describing occasional drift, and an option offering better guidance is mismatched to a stem demanding a guarantee.
Agentic architecture carries the largest share, and its concepts reappear inside the other domains: enforcement, delegation, decomposition, and session state all resurface in tool design, Claude Code, and reliability questions. Time spent there pays twice.
Claude Code and prompt engineering are next, and they are the most mechanically precise. Configuration precedence, memory scoping, command flags, schema behaviour, and validation loops either match the documented behaviour or they do not. These are the cheapest marks to secure with careful reading.
Tool design and context reliability reward diagnosis. The scenarios describe a failure and ask for the root cause, so the value is in distinguishing a wording problem from a structural one, and a transient failure from a permanent one.
- Building effective agents
- How we built our multi-agent research system
- Effective context engineering for AI agents
- Writing tools for agents
- Claude Code best practices
- Messages API reference
- Tool use overview
- Agent SDK overview
- Model Context Protocol
- Prompt engineering overview
- Structured outputs
- Prompt caching
- Context windows
- Message Batches
- Claude Code memory
- Claude Code hooks