Applications and Integration·Task 2.5·Bloom: understand·Difficulty 2/5·8 min read·Updated 2026-07-12

How Claude Interprets Instructions Across Interfaces for the Developer Exam

Claude Application Design (8.6%): Design considerations for building Claude applications, including how Claude interprets instructions across interfaces (Claude Code, Desktop, claude.ai, API, SDKs), content boundaries, schema design, session hygiene, and plugin management.

SUBy Solomon UdohReviewed by Solomon UdohAI-assisted · human-reviewed
In short
Claude Code, Desktop, claude.ai, the API, and client SDKs each expose different configuration surfaces for instructions, such as system prompts, CLAUDE.md, and settings. The same instruction can land differently depending on where it is placed and which interface actually reads it, so sound application design chooses the interface whose instruction model matches the use case and places behavior-critical instructions where that interface consumes them.

Different interfaces, different instruction surfaces

You interact with Claude through several distinct interfaces, Claude Code, the Claude Desktop app, claude.ai in the browser, the raw API, and the client SDKs, and a defining fact for the Claude Certified Developer - Foundations (CCDV-F) exam is that they do not all read instructions from the same place. Each interface exposes its own configuration surfaces: the API and SDKs take a system prompt and messages in the request; Claude Code reads project context from a CLAUDE.md file and honours a settings file; the desktop and web apps have their own settings and conversation context. An instruction only takes effect if it is placed on a surface the interface you are using actually consumes.

This sits on top of the Messages API request-response cycle. The API is stateless and acts only on what the request contains, so for an API integration the request is the entire universe of instruction. Other interfaces add file- and settings-based surfaces on top, but those conveniences belong to the interface, not to the model in general. Designing a Claude application well starts with knowing which surfaces your chosen interface reads and putting your instructions there.

Instructions across interfaces
The principle that Claude Code, Desktop, claude.ai, the API, and SDKs each expose different configuration surfaces (system prompts, CLAUDE.md, settings), so the same instruction lands differently depending on where it is placed and which interface reads it. Application design chooses the interface whose instruction model matches the use case.

The same instruction lands differently

Because the surfaces differ, an identical instruction can behave differently depending on where you put it and which interface is running. Written into a Claude Code CLAUDE.md, a coding convention shapes how Claude Code works in that project because Claude Code reads that file. The very same text pasted nowhere the interface reads, or sent to an interface that has no notion of that file, does nothing at all. Likewise, an instruction placed in the API system prompt is in force for every request that carries it, while the same instruction buried in a single user message applies only to that turn.

The lesson is that placement is not cosmetic; it determines whether an instruction is consumed. This is why content boundaries and schema design matter alongside this knowledge point: deciding where each instruction lives, and being deliberate that the chosen interface reads that location, is part of designing the application, not an afterthought. An instruction that is behavior-critical has to sit on a surface the interface actually consumes, or it is just inert text.

many surfaces
system prompt, CLAUDE.md, settings differ per interface
placement matters
the same instruction lands differently by location
match the model
pick the interface whose instruction model fits

The two traps the exam sets

The first trap is assuming a CLAUDE.md convention applies to a raw API integration that never reads it. CLAUDE.md is a Claude Code feature: it supplies project context to Claude Code specifically. A raw API or SDK integration does not read CLAUDE.md at all, so a team that documents "the model will follow the rules in our CLAUDE.md" and then builds directly on the API has written instructions the integration will never see. The behavior they expect simply will not happen, because the surface they used belongs to a different interface. If those rules are behavior-critical, they must be sent in the API request, typically in the system prompt.

The second trap is placing behavior-critical instructions where the chosen interface does not consume them. This is the general form of the first trap: any time an instruction that must take effect is put on a surface the running interface does not read, it is dead weight. It could be a settings file the interface ignores, a file convention from another tool, or context added in the wrong part of a request. The symptom is always the same, an instruction that "should" apply but demonstrably does not, and the cause is a mismatch between where the instruction lives and where the interface looks.

Misconception

We wrote our behavioral rules in a CLAUDE.md file, so our Claude API integration will follow them automatically.

What's actually true

CLAUDE.md is a Claude Code convention that only Claude Code reads. A raw API or SDK integration never loads it, so those rules have no effect on API calls. Behavior-critical instructions for an API integration must be sent in the request itself, most often in the system prompt.

Misconception

As long as I write an instruction down somewhere in the project, Claude will honour it regardless of interface.

What's actually true

An instruction only takes effect if it sits on a configuration surface the running interface actually consumes. The same text can be authoritative in one interface and completely inert in another. Place behavior-critical instructions where your chosen interface reads them.
Instruction surfaces by interface
Loading diagram...
Each interface reads its own surfaces. An API integration acts on the request; CLAUDE.md belongs to Claude Code and is invisible to a raw API call.

Choose the interface whose instruction model fits

The third concept turns the first two into a design principle: application design chooses the interface whose instruction model matches the use case. Because the interfaces differ in how they take instructions and maintain context, the right choice depends on what you are building. A programmatic, high-volume service that needs precise, per-request control over behavior fits the API or an SDK, where every instruction rides in the request and you own the full context. A project-scoped coding assistant that should absorb repository conventions fits Claude Code, where CLAUDE.md and settings give exactly that file-based context. An interactive end-user experience may fit the desktop or web app.

Choosing deliberately means the instruction surfaces you rely on are ones the interface actually reads, which is precisely what avoids both traps. It also connects to CLAUDE.md and settings.json configuration: once you have picked an interface, configuration management is about maintaining the specific surfaces that interface consumes. The design question, asked early, is which interface's instruction model matches this use case, and then place every behavior-critical instruction on that interface's surfaces.

Worked example

A platform team standardises coding conventions in a CLAUDE.md, then a product team builds a customer-facing summarisation feature on the raw API and expects those conventions to apply.

The platform team's CLAUDE.md works beautifully in Claude Code: developers open the repo, Claude Code reads the file, and the conventions shape its behavior. Encouraged, they tell every team, "the model follows our CLAUDE.md, so you do not need to repeat the rules." The product team building the summarisation feature takes them at their word and ships an API integration that sends user documents and expects the CLAUDE.md tone and formatting rules to be honoured.

They are not. The raw API never reads CLAUDE.md, so none of those rules reach the model; the summaries ignore the house style entirely. Debugging is confusing at first because the rules "obviously exist" in the repo, but the API integration has no path to them. The fix is to recognise the interface mismatch: the conventions that must apply to the API feature have to be sent in the request, so the team lifts the relevant rules into the API system prompt for that integration. Now the same intent lands correctly, because the instruction sits on a surface the API actually consumes.

The deeper design lesson lands too. Had they asked up front which interface's instruction model matched a programmatic summarisation service, they would have chosen the API knowingly and placed the behavior-critical instructions in the system prompt from the start, rather than assuming a Claude Code convention would carry over.

How this is tested on the exam

Domain 2 questions on this knowledge point are design and diagnosis scenarios. The signature case gives you a team relying on a CLAUDE.md, or another interface-specific surface, from a raw API integration and asks why the expected behavior does not appear; the correct answer is that the API does not read that surface and the instructions must be sent in the request. Others describe an instruction that "should" apply but does not, and ask you to locate the mismatch between where it lives and which interface reads it.

Reason from the three concepts. Interfaces expose different instruction surfaces; the same instruction lands differently by placement and interface; and good design picks the interface whose instruction model fits and puts behavior-critical instructions where that interface consumes them. Keep those straight and you avoid the two traps, assuming CLAUDE.md reaches the API, and placing critical instructions where the interface never looks, which are exactly the errors this knowledge point is built to test.

Check your understanding

A team documents behavioral rules in a CLAUDE.md file and builds a production feature directly on the Claude API. In production the model ignores every rule. What is the correct explanation and fix?

People also ask

Does a raw Claude API call read CLAUDE.md?
No. CLAUDE.md is a Claude Code convention. A raw API or SDK integration never reads it, so instructions you need in effect must be sent in the request itself, typically in the system prompt.
Why does the same instruction behave differently in Claude Code and the API?
Because the interfaces expose different configuration surfaces. An instruction placed where one interface reads it, such as CLAUDE.md for Claude Code, is inert in another interface that does not consume that surface.
How do you choose which Claude interface to build on?
Match the interface to the use case by its instruction model: the API or SDKs for precise per-request programmatic control, Claude Code for project-scoped context from CLAUDE.md and settings, and the apps for interactive end-user experiences.

Watch and learn

Official Anthropic Academy lessons first, then hand-picked walkthroughs. Videos load only when you press play.

No videos curated for this concept yet

We are still curating the best official and community videos for this topic.

References & primary sources

Adaptive study

Master this concept with Archie

Practice it inside an adaptive study session. Archie, your Socratic AI tutor, tracks your mastery with Bayesian Knowledge Tracing and schedules the perfect next review.

Start studying