Skip to content
CCDV-F Español

Developer – Foundations

CCDV-F · detailed plan built from the official v1.0 guide and the living documentation

This is the only one of the four exams whose guide publishes the weight of each skill, not just of each domain. With 53 items and the official weights you can work out how many questions fall on each topic, and that completely changes where it is worth spending your time. The rest of this page follows from that calculation.

The facts

CodeCCDV-FItems53
Time120 minutes (≈2 min 15 s per item)Pass mark720 on a 100-1,000 scale
FormatMultiple choice and multiple response; each item states how many to select
Fee$125Validity12 months

Criterion-referenced: you compete against a fixed standard, not against other candidates. The report gives you the total scaled score and the % correct per domain, but passing depends on the total alone.

Skill map: how many items each topic is worth

The 25 skills in the blueprint, ordered by weight, converted into expected items out of 53. The priority column is mine, not the guide's: it crosses the weight with what you already know from your day job.

SkillDomainWeightItemsPriority
Claude Application Design28.6%4.6Top
Software Engineering Foundations27.4%3.9Quick review
Claude API Mechanics26.8%3.6Top
Technical Fundamentals56.1%3.2Quick review
Agent Construction with Claude15.3%2.8High
LLM Fundamentals55.2%2.8High
Agent Patterns and Frameworks14.9%2.6High
Prompt Engineering64.6%2.4Medium
Agent Architecture14.5%2.4Medium
Tool Implementation84.4%2.3Medium
Configuration Management24.1%2.2Medium
Agentic Customization84.1%2.2Medium
Context Engineering63.8%2.0Medium
Understanding Requirements23.4%1.8Low
AI Application Security73.2%1.7Medium
Claude Code Operation33.1%1.6Skip
Systems Life Cycle22.8%1.5Low
Cost and Token Management52.8%1.5Medium
Model Selection and Tradeoffs52.7%1.4Low
Output Handling62.6%1.4Low
Debugging and Error Handling42.6%1.4Low
Guardrails and Safe Deployment72.3%1.2Low
MCP Server Development82.1%1.1Low
Identity, Secrets, Key Management71.6%0.8Low
Claude Hooks71.0%0.5Skip
The three conclusions that change the plan 1. The first six skills are 39.4% of the exam — almost 21 of 53 items. Master those six, answer the rest at random, and you land close to the pass mark.
2. Claude Code is worth 3.1% and Claude Hooks 1.0%: two items between them. That is exactly what you use most day to day and what pays least to study. Resist the temptation.
3. Software Engineering Foundations + Technical Fundamentals = 13.5%, seven items, and it is generic software engineering: REST, JSON, asynchrony, version control, code review, refactoring, websockets, SDKs that wrap REST APIs. Near-free points for you.
Pass arithmeticThe pass mark is 720/1000 and the conversion is not linear, but as a working rule aim for 40 out of 53 with margin. The six big skills (21 items) plus the two generic engineering ones already make 28. The remaining 12-13 come from spreading your time well across the mid-weight skills: you do not need to master all 25 topics.

1 · Claude Application Design — 8.6%, the heaviest skill

The objective literally speaks of "how Claude interprets instructions across interfaces, content boundaries, schema design, session hygiene and plugin management". There is no official page with that title: it is the examiner's synthesis of five separate areas. Here are the five.

How interpretation changes with the interface

  • Raw API: there is no system prompt beyond your own, with one exception — if you send tools, the API automatically builds a system prompt containing the tool use instruction block, the JSON schemas, your system prompt and the tool configuration, in that order. It costs hundreds of tokens you did not write.
  • If you include the memory tool, the API adds its memory protocol to the system prompt on its own. There is no need to resend it.
  • claude.ai, mobile and desktop have their own system prompt (date, formatting, product behaviour) that does not apply to the API. Anthropic publishes it in full in its release notes.
  • Agent SDK: three starting points — no system prompt (minimal, tool calling only), the Claude Code preset (the CLI's full prompt), or your own.
The porting trapclaude -p uses the full prompt by default; the Agent SDK does not. When porting something from the CLI to the SDK you have to set the preset explicitly or the agent loses all its behavioural guidance and looks "stupid" for no apparent reason. And in the SDK, CLAUDE.md does not go into the system prompt: it is injected as conversation context and whether it loads depends on the setting sources.

Content boundaries

Separate instructions, context, examples and variable input into their own XML tags, with consistent names. In long contexts (20k+ tokens): documents at the top, the question at the end — up to a 30% improvement in Anthropic's tests. And the hard rule you already know: third-party content goes only in tool_result blocks, never in the system prompt or in user text.

Schema design: the limits that get asked

LimitValue
Tools with strict: true per request20
Optional parameters, request total24
Parameters with union types (anyOf)16
Grammar compilation timeout180 s

Supported: basic types, scalar enum, const, anyOf, internal $ref, default, required, string formats. Not supported (400 if you use it): recursive schemas, external $ref, numeric constraints such as minimum/maximum, minLength/maxLength, and lookahead in pattern.

To reduce complexity, the official order is: mark only the critical tools strict → turn optionals into required (each optional almost doubles part of the state space) → flatten nesting → split across several requests or subagents.

Session hygiene

Official restart heuristicIf you have corrected Claude more than twice on the same problem in one session, the context is contaminated with failed approaches: clear it and restate the problem more precisely. Do not keep pushing in the same thread.

What survives compaction and what does not: the system prompt stays intact and the root CLAUDE.md is re-injected from disk; what is lost are the rules with paths: and the nested CLAUDE.md files, until a file that activates them is read again. The bodies of invoked skills are re-injected with a per-skill and total cap, discarding the oldest first.

And a recommendation that sounds counter-intuitive: it is often better to start clean than to compact, because the model can rebuild state from the filesystem if you give it a prescriptive opening ("check progress.txt, tests.json and the git log").

Plugins

A plugin is a self-contained directory with skills, agents, hooks, MCP servers and default settings. Only the manifest goes inside .claude-plugin/; the remaining folders live at the root. Four installation scopes: user (the default), project (shared via git), local (gitignored) and managed (read-only). Versioning is the cache key for updates, and it resolves in cascade: manifest version → marketplace version → commit SHA → digest → unknown.

platform.claude.com/docs/en/build-with-claude/structured-outputs · code.claude.com/docs/en/agent-sdk/modifying-system-prompts · .../context-window · .../best-practices · .../plugins-reference

2 · Claude through third parties — inside API Mechanics, 6.8%

The objective says "invoking Claude through third-party vendors". Today there are five platforms, not three, and the distinction most likely to be asked is who processes the data.

PlatformWho operates itSDK clientAuth
Claude APIAnthropicAnthropicAPI key
Amazon BedrockAWSAnthropicBedrock / AnthropicBedrockMantleAWS credentials
Claude Platform on AWSAnthropicAnthropicAWSIAM or API key
Google Cloud / VertexGoogleAnthropicVertexGoogle credentials
Microsoft FoundryAnthropic on AzureAnthropicFoundryAzure API key or Entra ID
The decision rule published in the docsAnyone who needs FedRAMP High, IL4, IL5, HIPAA-ready, or AWS to be the only data processor, has to use Claude on Amazon Bedrock. Consequence: on Bedrock, Anthropic's ZDR programme does not apply, because Anthropic is not the processor.

What changes in the code is only the client class and the authentication: client.messages.create(...) is identical.

Differences that come up

  • Vertex: model does not go in the body (it goes in the URL) and, conversely, anthropic_version does go in the body. It is the most quotable format difference.
  • Maximum request size: Bedrock 20 MB, Vertex 30 MB.
  • Batch processing and data residency exist only in the Claude API and in Claude Platform on AWS. There are no Batches on Bedrock, Vertex or Foundry.
  • Bedrock requires inference profiles for the newer models: invoking with the base model ID returns 400. Prefixes global., us., eu.
  • Global vs regional: regional routing guarantees residency and costs 10% more.
A real contradiction in the documentationOn whether structured outputs works on Bedrock, the page for the new integration says no and the general feature table says yes. If you get an item on this, there is no clean answer: bet on the option that does not depend on that detail.
platform.claude.com/docs/en/build-with-claude/overview · .../claude-in-amazon-bedrock · .../claude-on-vertex-ai · .../claude-in-microsoft-foundry

3 · Agentic frameworks — 4.9%

The blueprint names three explicitly: Strands, LangGraph and PydanticAI. You do not need to know how to program them; you need to know what each one is chosen for.

FrameworkCore ideaChosen when
Strands (AWS)A ready-made "model-driven" agentic loop, model-agnostic, with native MCP and multi-agent patternsYou want a loop without writing one and you deploy on AWS
LangGraphLow-level orchestration by state graph: nodes do the work, edges decide what comes nextYou need durable, resumable execution, human-in-the-loop and auditable topology
PydanticAITyped loop: the Pydantic model generates the schema and validates every run; if it fails, it re-prompts the modelThe value is in the data contract and in provider portability

From LangGraph, two named concepts that lend themselves to a question: reducers (without a reducer, a node's update overwrites the state key) and the difference between checkpointer (snapshots of one thread, short-term memory, time travel) and store (key-value across threads, long-term memory). Checkpoints are saved at step boundaries, not mid-node, so on resume the node re-runs in full: nodes have to be idempotent.

Anthropic's position, which is what scoresVerbatim: "the most successful implementations were not using complex frameworks, they were building with simple, composable patterns". The recommendation: start by calling the API directly and, if you do use a framework, understand the code underneath — "incorrect assumptions about what is under the hood are a common source of error". Faced with an item offering "adopt framework X" against "start simple and measure", the exam's answer is the second.

Official product matrix

  • Client SDK (Messages API): direct access, you implement the loop. Maximum control.
  • Agent SDK: an agent without implementing the tool loop, running in your process.
  • Claude Code CLI: interactive or one-off use in the terminal.
  • Managed Agents: long, asynchronous agents without managing sandboxes or sessions. It is a separate product from the Agent SDK, with a hosted REST API.

4 · Deployment: self-hosted vs Anthropic-hosted — inside Agent Construction, 5.3%

The objective mentions "managed agent deployment models (self-hosted vs. Anthropic-hosted)". The exact distinction:

  • Self-hosting the Agent SDK: the SDK spawns one subprocess per session with a shell, a working directory and transcripts on local disk. N sessions are N subprocesses. Local state does not survive restarts, so in production you need an external session store that mirrors the transcripts.
  • Managed Agents (Anthropic-hosted): a prebuilt harness on managed infrastructure. Four concepts: Agent (model, prompt, tools), Environment (where it runs), Session (a running instance) and Events (history persisted server-side). Each session gets its own isolated sandbox.
The compliance consequenceManaged Agents is stateful by design, so it is not eligible for Zero Data Retention or for a HIPAA BAA. This is the kind of link between two separate domains (deployment and governance) that these exams reward.

There is a third, intermediate model: a self-hosted sandbox inside Managed Agents, where orchestration stays with Anthropic and only tool execution moves to your infrastructure. Mind the nuance: tool inputs and outputs still flow to Anthropic's control plane.

5 · The two "free" skills — 13.5% together

Software Engineering Foundations (7.4%) and Technical Fundamentals (6.1%) are not about Claude: they are about software engineering. REST and JSON, asynchronous programming, version control, integration into the development cycle, code review, refactoring at small and large scale, and SDKs that wrap REST APIs and websockets. That is seven items you already know how to answer; do not spend time here beyond a read-through.

Understanding Requirements (3.4%) and Systems Life Cycle (2.8%) are not Claude-technical either: functional and infrastructure requirements derived from business needs, and systems life cycle management. Answer with classic engineering judgement: requirements and acceptance criteria first, architecture second; and nothing reaches production without observability or a rollback plan.

6 · How the official module teaches it (and what that means for the items)

The module Production-grade prompting, Agents & tool use does not teach definitions: it teaches diagnosis. Every takeaway has the shape "this symptom means this technique is missing". Items are written against that mould, so the typical question will not be "what is X?" but "this is failing, what is missing?".

The diagnostic table you have to know cold

SymptomWhat is missing
The output does not have the expected shapeAn output constraint
Behaviour drifts between turnsAn under-specified system prompt
Hallucinated structureFew-shot examples
Untested inputs keep breaking the parserLeave the prompt behind: structured outputs in the API
Tool selection degrades after N turnsThe context window, not the schema
The wrong tool is picked from the first turnThe tool's description
Tool use error when retrying after a dropped streamA half-built block, not the schema
The principle that ties it together"The instinct to reword the instruction and try again almost never works, because none of those failures is a wording problem." Faced with an item whose options include "rewrite the prompt with more detail", that is usually the distractor.

New figures and rules the module adds

  • Exclusion condition: every tool description has to include a line saying when NOT to call it, written while designing the schema and not after the first failure shows up in a log. It is the sentence that resolves most wrong-tool bugs: two tools that both say "use it to search for information" are indistinguishable to Claude however different their schemas are.
  • Tool outputs in production take 3 to 5 times more room than development fixtures. A session that holds up for 50 turns in testing can hit the ceiling at turn 8 once deployed.
  • A connected MCP server spends context even if you never use its tools. The docs put a figure on it: a typical five-server setup consumes ~55,000 tokens in definitions before Claude does anything. Tool search cuts that by more than 85%.
  • Image cost: ⌈width / 28⌉ × ⌈height / 28⌉ visual tokens — Claude sees 28×28 px patches, not pixels.
  • Refactoring from in-context memory to external storage under production pressure costs an hour; taking the same decision deliberately at design time costs twenty minutes.

The image token ceiling is per tier, not per model

TierMax sideMax visual tokens
High resolution (models 4.7 and later)2576 px4784
Standard (all the rest)1568 px1568

Images that exceed either of the two limits are rescaled automatically to the largest size that preserves the aspect ratio, which caps the cost. Padding to the next multiple of 28 px is then applied. A high-resolution image can cost around three times more than the same image on a standard-tier model, so run the formula against the largest input you expect in production, not against the ones in your test set.

The mistake the module namesCalling the synchronous API in a loop and calling it "batching". The three routes are: inline base64 for single-use images, the Files API for assets reused across requests, and Message Batches for offline work at a lower cost per token in exchange for non-deterministic latency.

Streaming: where the module and the documentation disagree

On the basics they agree, and this is what to walk in knowing: a block is only closed at its content_block_stop and the message only ends at message_stop. The deltas of a tool use are partial JSON strings: do not parse them until the block closes.

A real discrepancy, and it is worth knowing both versionsThe module says: on an interrupted stream, discard the partial turn and retry.
The living documentation says otherwise: resume, do not discard — and on recent models do it by adding a user message asking it to continue, rather than putting the partial response back as an assistant message.
The point where they do agree, and probably the examinable one: tool use and thinking blocks cannot be recovered partially. You can only resume from the last text block. If an item offers you "accumulate and retry the partial tool_use", that is the distractor.

The four memory scopes, chosen by the shape of the session

ScopeCostWhen
In contextThe easiest to writeThe first to fail if real sessions are short and numerous
External storageAdds latencyState has to survive between sessions
Summarised memoryLowers the costYou lose whatever the summariser's prompt did not preserve
StatelessNoneJobs that complete and close
A distinction that lends itself to an itemCarrying state between tasks and carrying repeatable instructions are different problems. State is memory; repeatable instructions are a Skill: a markdown file Claude loads on demand when its description matches, not instructions injected into every session.

Workflow or agent, in the module's formulation

Workflow when you can write the exact steps in code. Agent when you can specify the goal and the tools but not the path between them. Getting it wrong only shows in production: agents where a workflow would have done add context cost and behaviour that lives in transcripts; workflows where an agent was needed break on the first input that leaves the path.

Human-in-the-loop ruleIf a tool can perform an irreversible action, the human checkpoint goes in before the loop is wired up, not after the first write reaches a customer's environment.

Reasoning

Turn it on only where a reasoning pass changes the answer, and calibrate the effort to the problem rather than raising it on every call. Thinking blocks go back to the API unmodified or the next request fails. Mind the module's distinction: choosing which model to run is a separate topic from whether to turn reasoning on, and it is taught in an earlier module.

platform.claude.com/docs/en/build-with-claude/vision · .../streaming · .../agents-and-tools/tool-use/define-tools · .../tool-use/tool-search-tool

10-day plan

Ordered by weight, not by syllabus. Each day closes with a batch of cards on the topic, and the last three days are nothing but mock exams and mistakes.

Day 1 · Claude Application Design, part I

Interfaces and what each one injects. Read the Agent SDK page on modifying system prompts and the system prompt release notes. Port one of your own prompts from the CLI to the SDK and watch the difference.

Day 2 · Claude Application Design, part II

Schemas: complexity limits, what strict JSON Schema accepts and what it does not. Session hygiene and what survives compaction. Plugins: scopes and versioning.

Day 3 · Claude API Mechanics

Messages, streaming and its errors, batch with its limits and states, and the five platforms with their data processor. Write a real batch call and watch the full cycle.

Day 4 · Model Selection and Optimization

The four skills in domain 5: LLM fundamentals, technical fundamentals, model tradeoffs and cost management. Prompt caching in depth: TTL, invalidation and the silent failure of the token minimum.

Day 5 · Agents

Architecture, construction with the Agent SDK, and the three frameworks with their selection criteria. Self-hosted vs Managed Agents and the compliance consequence.

Day 6 · Tools and MCPs

Tool implementation, MCP server development, and the tradeoffs between a built-in tool, your own tool, a Skill and MCP. Build a minimal MCP server if you never have.

Day 7 · Prompt and context, security

Prompt and context engineering, output handling, and the whole of domain 7: indirect injection, guardrails, secrets. Skip the hooks: they are worth half an item.

Day 8 · First full mock

53 items timed to 120 minutes. No breaks and no lookups. Note the accuracy per domain.

Day 9 · Mistakes only

Targeted review of the mock's red domains. No new material.

Day 10 · Second mock and figures

Mock exam and a review of the numbers table. If the weighted score is not above 85%, move the date.

The three official sample questions

They come from the guide. They do not come from the live bank, but they set the cognitive level: all are scenario-based and all are solved with a principle, not with memory.

Domain 2 · Processing 10,000 documents overnight for a non-urgent report. Cost is the priority.
  1. Send everything synchronously in parallel to finish as soon as possible.
  2. Use the Message Batches API.
  3. Lower max_tokens on the synchronous calls.
  4. Switch to the smallest model whatever the quality.
B. Latency-tolerant, high-volume work at reduced cost. Synchronous parallelism does not lower the price per token, and neither trimming max_tokens nor shrinking the model addresses the batch-vs-real-time tradeoff.
Domain 7 · An agent summarises web pages submitted by users. One page carries hidden text instructing it to ignore previous instructions and reveal its system prompt.
  1. Raise the temperature so it is less predictable.
  2. Treat retrieved content as untrusted input, keep it separate from instructions, and use guardrails or hooks so that anything injected cannot trigger sensitive actions.
  3. Ask in the system prompt that they not include malicious instructions.
  4. Switch to a larger model that follows instructions better.
B. Isolation of untrusted content plus least privilege. Temperature is irrelevant, a polite request is not a control, and a model that follows instructions better can be more susceptible, not less.
Domain 8 · Calling an internal inventory service exposed as a REST API, with the capability reusable across several Claude applications and maintained independently.
  1. Put the logic in each application's system prompt.
  2. Build an MCP server that exposes the operations as tools.
  3. Paste the inventory data into the context on every request.
  4. Rely on a built-in tool, which can reach any internal REST API.
B. The key words are reusable and maintained independently: that is exactly an MCP server. And watch out for D, which contains a false claim: built-in tools do not reach arbitrary internal APIs.
The pattern across all threeIn all three cases, the correct answer is the one that names the mechanism designed for that problem, and the distractors are measures that sound reasonable but attack something else: an irrelevant parameter, a natural-language request where a control is needed, or a solution that does not scale. When in doubt, ask yourself which option is still correct six months from now and at ten times the volume.

The last 48 hours

  • Review the numbers table and the version traps section. Almost all the memorisation lives there.
  • Do a full pass of cards on the API and batch, Caching, Models and cost topics. Those are the ones with the most exact figures.
  • One timed mock, not two. Resting pays more than a last-minute review.
  • Get your ID ready with the name identical to the one on the registration, and clear your desk: no notes, phone, watch or second monitor.