What this domain covers
This is the largest-weighted material you will face in this area of the Claude Certified Architect exam. Expect scenario-based questions that test whether you can apply these concepts, not just recall them.
- CLAUDE.md memory hierarchy (user, project, directory) and imports
- settings.json, permission modes, and allow/ask/deny rules
- Hooks: events, matchers, exit codes, and blocking behavior
- Built-in and custom slash commands
- Subagents in .claude/agents with YAML frontmatter
- MCP server config and scopes (local, project, user)
- Headless mode and GitHub Actions / CI/CD integration
Free practice questions: Claude Code Configuration & Workflows
8 original, exam-style questions from this domain. Reveal each answer for the full explanation.
Which of the following belongs in a settings file rather than in CLAUDE.md?
- AThe command sequence for building and testing the project
- BThe team's naming conventions for API handler files
- CA permission rule that denies Claude the ability to run a specific shell command
- DA summary of the repository's architecture and directory layout
▸Show answer & explanation
Answer: C. A permission rule that denies Claude the ability to run a specific shell command
Permission rules like permissions.deny are technical enforcement applied by the Claude Code client regardless of what the model decides, so they belong in settings files. CLAUDE.md content is context that guides behavior but is not guaranteed to be obeyed. Build commands, naming conventions, and architecture overviews are exactly the kind of natural-language guidance CLAUDE.md is designed to carry.
Read the docs →What does the /memory slash command do in an interactive Claude Code session?
- ALists all CLAUDE.md, CLAUDE.local.md, and rules files loaded in the session and lets you open them in your editor, plus toggle auto memory
- BClears the current context window while preserving the conversation transcript
- CPrints a token-by-token breakdown of how much context each tool call consumed
- DSaves the current conversation into the project CLAUDE.md automatically
▸Show answer & explanation
Answer: A. Lists all CLAUDE.md, CLAUDE.local.md, and rules files loaded in the session and lets you open them in your editor, plus toggle auto memory
The /memory command is the inspection and editing entry point for memory: it shows every memory file loaded in the current session, opens any of them in your editor, and includes the auto memory toggle. Clearing context is handled by /clear or /compact, not /memory. It does not produce token usage reports, and it never writes the conversation itself into CLAUDE.md.
Read the docs →What is the intended purpose of a CLAUDE.local.md file at the root of a project?
- AOverriding and disabling the committed project CLAUDE.md for the current machine
- BProviding instructions that only load when Claude Code is started with a --local flag
- CHolding personal, project-specific instructions (like sandbox URLs or preferred test data) that are added to .gitignore rather than committed
- DDistributing organization-wide policies that individual developers cannot exclude
▸Show answer & explanation
Answer: C. Holding personal, project-specific instructions (like sandbox URLs or preferred test data) that are added to .gitignore rather than committed
CLAUDE.local.md is for individual, per-project preferences: it loads alongside the project CLAUDE.md and should be gitignored so it stays private to you. It does not override or disable the shared CLAUDE.md; both files are combined into context. There is no --local launch flag gating it, and organization-wide policy belongs in the managed policy CLAUDE.md location, not in a per-developer local file.
Read the docs →Which YAML frontmatter fields must be present in a Claude Code subagent definition file?
- Aname, description, and tools
- Bname and description
- Cname, description, tools, and model
- Dname only; all other fields including description are optional
▸Show answer & explanation
Answer: B. name and description
Only name and description are required in subagent frontmatter; the Markdown body then becomes the subagent's system prompt. Fields like tools, model, and permissionMode are optional: omitting tools inherits all tools from the main conversation, and omitting model falls back to the session's model. The description is required because Claude uses it to decide when to delegate.
Read the docs →A developer joins a project that has no CLAUDE.md and runs the /init command in Claude Code. What does /init do?
- AAnalyzes the codebase and generates a starting CLAUDE.md with discovered build commands, test instructions, and conventions; if one already exists it suggests improvements instead of overwriting it
- BCreates a default .claude/settings.json with recommended permission rules but no memory files
- CDeletes any existing CLAUDE.md and regenerates it from scratch on every run
- DRegisters the project with the Anthropic Console so usage can be tracked per repository
▸Show answer & explanation
Answer: A. Analyzes the codebase and generates a starting CLAUDE.md with discovered build commands, test instructions, and conventions; if one already exists it suggests improvements instead of overwriting it
/init bootstraps project memory by exploring the codebase and writing a CLAUDE.md that captures build commands, test instructions, and project conventions, and when a CLAUDE.md already exists it proposes improvements rather than overwriting. It is a memory-generation command, not a settings or permissions generator. It never destroys an existing file, and it has nothing to do with Console registration.
Read the docs →Which syntax does a CLAUDE.md file use to import the contents of another file into Claude Code's context at launch?
- AA templating directive, for example {{import: docs/git-instructions.md}}
- BA C-style include, for example #include "docs/git-instructions.md"
- CA markdown link with an import label, for example [import](docs/git-instructions.md)
- DAn @ prefix followed by the path, for example @docs/git-instructions.md
▸Show answer & explanation
Answer: D. An @ prefix followed by the path, for example @docs/git-instructions.md
CLAUDE.md supports @path/to/import syntax, so writing @docs/git-instructions.md anywhere in the file expands that file into context at launch. Both relative and absolute paths are allowed. The templating, #include, and markdown-link forms are plausible-looking inventions that Claude Code does not recognize as imports.
Read the docs →In Claude Code's default permission mode, which category of tool actions runs without ever triggering an approval prompt?
- ABash commands that were already run earlier in the session
- BRead-only operations such as file reads and Grep searches
- CFile edits inside the current working directory
- DWeb fetches to domains that were fetched before in the session
▸Show answer & explanation
Answer: B. Read-only operations such as file reads and Grep searches
Claude Code uses a tiered permission system in which read-only tools like file reads and Grep never require approval. Bash commands and file modifications both require approval in default mode: Bash approvals persist per project directory and command only when you choose the don't-ask-again option, and file edit approvals last until the session ends. There is no automatic session-wide trust for previously used commands or domains.
Read the docs →According to Anthropic's guidance, which situation is the strongest signal that an instruction should be added to a project's CLAUDE.md?
- AThe instruction is a long multi-step procedure that only matters for one subdirectory of the codebase
- BThe instruction is a secret API key that Claude needs for integration tests
- CThe developer notices they are typing the same correction into chat that they typed in a previous session
- DThe instruction must be technically enforced no matter what the model decides to do
▸Show answer & explanation
Answer: C. The developer notices they are typing the same correction into chat that they typed in a previous session
The docs frame CLAUDE.md as the place to write down what you would otherwise re-explain: repeated corrections, repeated mistakes, and context a new teammate would need. Long multi-step procedures or narrowly scoped guidance belong in skills or path-scoped rules instead, keeping CLAUDE.md concise. Secrets should never go in a memory file, and anything requiring guaranteed enforcement belongs in settings (permissions or hooks), not in context.
Read the docs →Drill this domain in Claude Prep
The app has dozens more questions in this domain alone, plus a Domain Drill mode that focuses your practice exactly here, and full mock exams that weight it at 20%.