CCAR-F Study Guide

CCAR-F questions and answers — Domain 3: Claude Code

12 practice questions on Claude Code Configuration & Workflows, the domain weighted at 20% of the CCAR-F exam. Every answer explains why the distractors fail — that is the part that transfers to questions you have not seen before.

Question 1

A monorepo has a Python service and a TypeScript frontend with different conventions. What is the right memory layout?

  1. One root CLAUDE.md containing both sets of conventions
  2. A root CLAUDE.md for shared conventions plus a CLAUDE.md in each package directory
  3. A CLAUDE.local.md per developer describing the package they work on
  4. Put everything in ~/.claude/CLAUDE.md

Answer: B. Subdirectory CLAUDE.md files load on demand when Claude reads files in those directories, so each session pays only for the conventions it actually needs — and contradictory rules never meet. A single root file loads everything every session and invites arbitrary conflict resolution. Personal and user-scope files are the wrong scope for team conventions.

Question 2

Which statement about CLAUDE.md loading is correct?

  1. The nearest file overrides files in parent directories
  2. All discovered files are concatenated, ordered from the filesystem root down to the working directory
  3. Only the file in the working directory is loaded
  4. Files load in alphabetical order by path

Answer: B. They are concatenated, not overridden — root-down, so instructions closest to where you launched are read last. Within a directory, CLAUDE.local.md is appended after CLAUDE.md. This is why contradictory instructions across levels are a real hazard rather than a resolved precedence.

Question 3

Your organisation must guarantee that Claude Code never reads .env files, on every developer machine. Where does this belong?

  1. A line in the managed policy CLAUDE.md
  2. permissions.deny with Read(**/.env) in managed settings
  3. .claude/settings.json in each repository
  4. A PostToolUse hook that logs when a .env file is read

Answer: B. Settings rules are enforced by the client regardless of what Claude decides; managed settings cannot be overridden by user or project files. A managed CLAUDE.md is behavioural guidance, not enforcement. Project settings can be edited by anyone with commit access. A PostToolUse hook fires after the read has already happened.

Question 4

Rank these settings sources from highest precedence to lowest.

  1. User → shared project → project local → command line → managed
  2. Managed → command line → project local → shared project → user
  3. Command line → managed → user → shared project → project local
  4. Shared project → project local → user → command line → managed

Answer: B. Managed settings win, then command line, then project local, then shared project, then user. List keys such as permissions.allow merge across scopes rather than replacing each other, and deny/ask rules apply before a folder is trusted while allow rules wait for trust.

Question 5

Before a refactor touching 40 files across a codebase you do not know well, which permission mode should the session start in?

  1. acceptEdits, to avoid interruption
  2. plan, to explore read-only and produce a reviewable plan first
  3. bypassPermissions, since the change is large
  4. dontAsk, to deny anything unexpected

Answer: B. Plan mode reads files and runs read-only commands but will not edit source, so you get an approved plan before anything changes. Skipping it on a large cross-cutting refactor is a named anti-pattern — you discover the design problem halfway through, with the tree half-migrated.

Question 6

Which Bash permission rule allows ls -la but not lsof?

  1. Bash(ls*)
  2. Bash(ls *)
  3. Bash(ls)
  4. Bash(ls -*)

Answer: B. The space before the wildcard is load-bearing. Bash(ls *) matches ls and ls -la but not lsof; Bash(ls*) matches lsof too. Bash(ls) is exact-match only. This kind of detail is exactly what the exam tests in permission questions.

Question 7

A PreToolUse hook script exits with code 2 and writes a message to stderr. What happens?

  1. The tool runs and the message is logged
  2. The action is blocked and stderr becomes the reason Claude sees
  3. The session terminates
  4. Nothing — only JSON output is honoured

Answer: B. Exit code 2 blocks the action and cannot be overridden by JSON output; stderr becomes the reason. Exit 0 means success and any JSON on stdout is parsed for a decision. Any other code is a non-blocking error — the action proceeds and the first line of stderr is logged.

Question 8

You want a /deploy skill that Claude can never trigger on its own. Which frontmatter?

  1. user-invocable: false
  2. disable-model-invocation: true
  3. context: fork
  4. allowed-tools: []

Answer: B. disable-model-invocation: true keeps the skill out of the model-visible index — only a human typing /deploy runs it. user-invocable: false is the opposite: hidden from the menu, invocable only by Claude. context: fork controls isolation, and an empty tool list would not stop invocation.

Question 9

A CI job runs claude -p and produces different results on different runners. What is the most likely cause and fix?

  1. Model non-determinism; set temperature to 0
  2. The runs pick up host-specific hooks, plugins, MCP servers and CLAUDE.md; add --bare
  3. The runners have different CPU counts; pin the container
  4. Session resumption is leaking state; add --continue

Answer: B. Without --bare, a -p session loads the same context an interactive session would, including anything in the working directory or ~/.claude on that machine. --bare skips auto-discovery of hooks, skills, commands, agents, plugins, MCP servers, auto memory and CLAUDE.md, which is why it is the recommended mode for CI.

Question 10

An automated PR reviewer produces too many low-value security findings. What is the correct remedy?

  1. Remove the security review step from the pipeline
  2. Add project-specific exceptions to the configuration and few-shot examples showing both a finding worth raising and one to suppress
  3. Instruct the reviewer to 'be less strict'
  4. Switch the reviewer to a smaller model to reduce verbosity

Answer: B. Narrow the rule and show the standard. Removing the check trades false positives for false negatives. 'Be less strict' is unmeasurable and shifts unpredictably. Model size is unrelated to calibration of what counts as a finding — and showing the negative case in examples is what actually moves false-positive rates.

Question 11

In a nightly unattended job, which flag combination prevents the run from waiting on a permission prompt?

  1. --permission-mode acceptEdits alone
  2. --permission-mode auto --permission-prompts none
  3. --allowedTools "*"
  4. --output-format json

Answer: B. --permission-prompts none means nothing consults or waits on a permission host: anything that would prompt is denied, and Claude is told not to retry it. Pairing it with auto keeps the classifier reviewing actions. acceptEdits only covers edits and common filesystem commands; other shell commands still need allow rules.

Question 12

Which instruction should NOT live in CLAUDE.md?

  1. The project's build and test commands
  2. 'Run the compliance scanner before every commit, without exception'
  3. Directory conventions for where handlers live
  4. Naming conventions that differ from the language default

Answer: B. 'Without exception' is an enforcement requirement, and CLAUDE.md is context delivered as a message — it shapes behaviour but guarantees nothing, and conversation-only detail is lost to compaction. Make it a hook. The other three are exactly what CLAUDE.md is for: durable facts Claude should hold every session.

← Previous: Questions & answers — Domain 2  |  Next: Questions & answers — Domain 4 →

Architect CCAR-F Real Exam Questions

Ready to Pass Your CCAR-F Certification?

Practice with authentic exam questions, verified explanations, and timed test simulation to guarantee your success.

Starting from $49.00
Take Practice Exam →