Skip to content
CCAF Preparation

Domain 3 · 20% of exam

Claude Code Configuration & Workflows glossary

49 terms drawn from this domain’s 6 lessons and the sources they cite. A term that matters in more than one domain appears on each of their pages.

The full glossary is searchable across all five domains, and the domain curriculum explains where each term is used.

--allowedTools
The CLI flag listing tools, in permission-rule syntax, that run without a permission prompt. It pre-approves rather than restricts — to restrict which tools exist at all, use `--tools`. code.claude.com › cli-reference
--bare
Minimal mode: it skips auto-discovery of hooks, skills, plugins, MCP servers, auto memory, and CLAUDE.md so scripted runs start fast and reproduce across machines. It is the recommended mode for scripted and SDK calls and is slated to become the `-p` default — at the cost of the CLAUDE.md context CI reviews otherwise rely on. code.claude.com › headless
--continue
The flag (`-c`) that resumes the most recent session in the current directory without any ID tracking. Use `--resume` instead when a script juggles multiple conversations and must target a specific one. code.claude.com › headless
--disallowedTools
The CLI flag with two behaviours: a bare tool name such as `"Edit"` (or `"*"`) removes the tool from Claude's context entirely, while a scoped rule such as `Bash(rm *)` leaves the tool available and denies only matching calls. code.claude.com › permissions
--fork-session
The CLI flag combined with `--continue` or `--resume` to create a new session ID instead of reusing the original, so two divergent fixes can be compared without losing the baseline conversation. `/branch` does the same in-session. code.claude.com › sessions
--json-schema
The print-mode-only flag that validates the agent's final output against a JSON Schema. With `--output-format json` the conforming data lands in the envelope's `structured_output` field — extract it with `jq -r '.structured_output'`, not from the top level. An invalid schema now exits with an explicit error rather than silently falling back to text. code.claude.com › headless
--output-format
The flag choosing the shape of a print-mode run's output: `text` (default), `json` (a machine-parseable envelope with result text, session ID, usage, `total_cost_usd` and a per-model cost breakdown), or `stream-json` (NDJSON in real time, whose last line is always a `result` message). code.claude.com › headless
--resume
The flag that continues a specific existing session by ID or name, restoring the full conversation history, model, agent, permission mode, goals, and unexpired scheduled tasks — except `plan` and `bypassPermissions`, which are never restored. It never creates a session, and lookup is scoped to the current project directory and its git worktrees. Running it from a different directory than the session was created in is the most common cause of getting a fresh session instead. code.claude.com › sessions
-p (--print)
The flag that switches Claude Code to non-interactive print mode: it processes the prompt, writes the result to stdout, and exits. Without it a CI job hangs forever waiting for keyboard input. It is the single most directly tested fact in Domain 3. code.claude.com › headless
.claude/rules/
The directory of topic-specific rule files, discovered recursively so subdirectories are included. A rule file with no `paths` frontmatter loads at launch with the same priority as `.claude/CLAUDE.md`; personal rules in `~/.claude/rules/` apply to every project and load before project rules, giving project rules higher priority on conflict. code.claude.com › memory
@ path import
The directive that inlines another file into a CLAUDE.md — a bare `@` immediately before a path on its own line, such as `@./standards/naming.md`. There is no `@import` keyword in current docs. Imports recurse to a maximum depth of four hops, and paths inside code spans or fenced code blocks are never parsed as imports. code.claude.com › memory
/compact
The command that replaces conversation history with a summary. `/compact <instructions>` focuses that summary — for example `/compact Focus on the API changes` — so what survives is the part still relevant to the current iteration rather than a generic recap. code.claude.com › best-practices
/init
The command that generates a starting CLAUDE.md by analysing the codebase, capturing build commands, test instructions, and discovered conventions. If a CLAUDE.md already exists it suggests improvements rather than overwriting. code.claude.com › memory
/memory
The diagnostic command that shows which memory files are loaded in the current session. It reveals loading, it never triggers it — use it to work out why behaviour differs between sessions or teammates.
/rewind
The command (also Esc-Esc on an empty prompt) that opens the rewind menu, offering to restore code, conversation, or both from the automatic per-prompt checkpoints. It is local undo that complements rather than replaces git, and it cannot revert changes made by Bash commands. code.claude.com › checkpointing
$ARGUMENTS
The placeholder expanding to all arguments passed when a skill or command is invoked. If it appears nowhere in the body, Claude Code appends the arguments automatically as `ARGUMENTS: <value>` so they are never silently dropped. Positional access uses `$N` (shorthand for `$ARGUMENTS[N]`) with 0-based indexing, so `$0` is the first argument. code.claude.com › skills
allowed-tools
The skill frontmatter field the exam guide describes as restricting tool access during skill execution. Current docs define it as pre-approving the listed tools for the invoking turn so they run without a permission prompt — every other tool stays available and the grant clears on your next message. code.claude.com › skills
Batch vs sequential feedback
Deliver interacting fixes in a single message so the model sees all the constraints at once; deliver independent fixes one at a time, since batching unrelated issues confuses which feedback applies where.
Batch vs synchronous
Blocking workflows — pre-merge CI checks, real-time review feedback, anything a developer waits on — stay on the synchronous API. Latency-tolerant workflows — overnight technical debt reports, weekly audits, nightly test generation — move to the Batch API for the 50% saving. Moving everything to batch for the savings is the exam's classic wrong answer.
Checkpointing
The separate mechanism that snapshots and reverts file changes, creating one checkpoint per user prompt. Its blind spot is that it tracks only edits made through Claude's own file-editing tools, not changes made via Bash commands. code.claude.com › checkpointing
CLAUDE.local.md
A personal memory file sitting next to `CLAUDE.md` at any level, loaded after it so it has the last word at that level. It is gitignored by convention and scoped to a single working-tree checkout, so sharing preferences across git worktrees means importing a file from your home directory instead. code.claude.com › memory
CLAUDE.md
The memory file Claude Code loads automatically each session, at three authored levels: user (`~/.claude/CLAUDE.md`, personal, never shared via git), project (`.claude/CLAUDE.md` or a root `CLAUDE.md`, version-controlled and shared), and directory (a subdirectory `CLAUDE.md` that loads on demand when Claude reads files there). Docs recommend keeping each file under 200 lines. code.claude.com › memory
CLAUDE.md load order
All discovered CLAUDE.md files are concatenated into context rather than overriding each other, ordered broadest scope first so instructions closest to the launch directory are read last, with `CLAUDE.local.md` appended after `CLAUDE.md` at the same level. It is not a precedence chain: if two rules contradict, Claude may pick one arbitrarily. code.claude.com › memory
context: fork
The skill frontmatter setting that runs the skill in an isolated subagent context, with the skill content becoming the subagent's prompt and no access to the parent conversation. It keeps verbose output out of the main context. The companion `agent` field picks the subagent type — `Explore`, `Plan`, `general-purpose` (the default), or a custom one from `.claude/agents/`. code.claude.com › skills
disallowed-tools
The real access boundary for a skill in current docs: a bare tool name removes the tool from Claude's context entirely, as do `deny` rules in permission settings. code.claude.com › skills
Dynamic context injection
The `` !`<command>` `` syntax in a skill or command body, which runs a shell command before the content is sent and substitutes the output for the placeholder — so Claude receives actual data such as a git diff rather than the command text. code.claude.com › skills
Explore → Plan → Implement → Commit
The recommended four-phase Claude Code workflow, and the scaffold iterative refinement hangs off: exploration and planning precede the first draft, so refinement happens during Implement against a plan that already accounted for constraints. Skip the planning phase when you could describe the diff in one sentence. code.claude.com › best-practices
Explore subagent
A built-in, fast, read-only agent optimised for searching and analysing codebases, with Write and Edit explicitly denied. It is invoked with a thoroughness level — quick, medium, or very thorough — and, uniquely alongside the Plan subagent, skips CLAUDE.md files and the parent session's git status; every other subagent loads both. code.claude.com › sub-agents
fork_session
The boolean option (`forkSession` in TypeScript, default false) used with `resume` to fork to a new session ID instead of continuing the original. The fork starts from a copy of the history up to that point; the original's ID and history are unchanged, leaving two independently resumable sessions. code.claude.com › sessions
GitHub Actions integration
Claude Code in CI triggered by an `@claude` mention in a PR or issue (the default `trigger_phrase`), built on the Claude Agent SDK. The GitHub App needs read and write on Contents, Issues, and Pull requests, and `--max-turns` defaults to 10 inside `claude_args`. code.claude.com › github-actions
Headless operational limits
Piped stdin into `claude -p` is capped at 10MB; exceeding it errors with a non-zero exit. SIGTERM on a `-p` run aborts the in-progress turn, terminates any running Bash process tree, runs `SessionEnd` hooks, and exits with code 143. code.claude.com › headless
Incremental review context
Feeding prior review findings into an automated CI review and instructing Claude to report only new or still-unaddressed issues. Without it, every push re-derives the same comments — including ones the developer deliberately chose not to act on — and duplicate comments erode trust in the review.
Independent review instance
A separate Claude invocation with no access to the generating session's reasoning, so it judges the output on what it sees alone. A reviewer in a fresh context sees only the diff and the criteria, never the justification that produced the change — the strongest form goes further and tries to refute the result rather than re-confirm it. code.claude.com › best-practices
Managed policy CLAUDE.md
The fourth CLAUDE.md scope: an organisation-deployed file at an OS-specific system path (for example `/etc/claude-code/CLAUDE.md`). It applies to every session on the machine and cannot be excluded by any individual setting. code.claude.com › memory
MCP prompt slash command
A prompt exposed by a connected MCP server becomes a slash command in the form `/mcp__servername__promptname`, taking space-separated arguments; its result is injected directly into the conversation. code.claude.com › mcp
paths frontmatter
The YAML array of glob patterns on a rule file that makes it conditional: the rule loads only when Claude works on matching files. It accepts standard globs such as `**/*.ts` plus brace expansion such as `src/**/*.{ts,tsx}`, which is what lets one file cover a file type scattered across many directories at a fraction of root CLAUDE.md's token cost. code.claude.com › memory
Permission modes
The escalating set of modes governing what runs without asking: `default` (reads only), `acceptEdits` (reads, edits, common filesystem commands), `plan`, `auto` (everything with safety checks), `dontAsk` (only pre-approved tools — the recommendation for locked-down CI), and `bypassPermissions` (everything, no prompts). code.claude.com › permission-modes
Plan mode
The mode in which Claude researches and proposes changes without making them — reads and read-only exploration only, with edits blocked until the plan is approved. Enter it with Shift+Tab, a `/plan` prefix, or `claude --permission-mode plan`; `permissions.defaultMode: "plan"` in `.claude/settings.json` makes it the project default. Shift+Tab again leaves without approving, and Ctrl+G opens the plan in your editor. code.claude.com › permission-modes
plugin_errors / mcp_server_errors
Fields on the `stream-json` format's `system/init` event whose keys are omitted entirely when there are no errors, so a CI gate can simply fail the job when either is non-empty. code.claude.com › headless
Refinement technique hierarchy
The order to reach for when steering Claude Code: concrete input/output examples (2-3 pairs) when prose is interpreted differently each run; test-driven iteration, sharing test failures, for complex transformations with many edge cases; and the interview pattern — asking Claude to question you first — for unfamiliar domains where you might miss considerations.
Session
The conversation history the SDK accumulates while an agent works — the prompt, every tool call, every tool result, and every response — written to disk as JSONL under `~/.claude/projects/<encoded-cwd>/*.jsonl`, where the encoded directory is the working directory with every non-alphanumeric character replaced by `-`. Sessions persist the conversation, not the filesystem. code.claude.com › sessions
session_id
The identifier a headless run reports in its JSON result, captured in scripts with `claude -p "..." --output-format json | jq -r '.session_id'` so a later step can pass it to `--resume`. code.claude.com › headless
settings.json
The configuration file the client enforces regardless of what Claude decides, unlike CLAUDE.md. It resolves through a strict precedence chain — managed (enterprise, always wins) > CLI arguments > local > project > user — with locations at `~/.claude/settings.json`, `.claude/settings.json` (shared), `.claude/settings.local.json` (personal), and an OS-specific enterprise `managed-settings.json` path. code.claude.com › settings
Skill invocation control
Two frontmatter switches: `disable-model-invocation: true` makes a skill user-only and keeps its description out of context, while `user-invocable: false` makes it Claude-only and hides it from the `/` menu. code.claude.com › skills
SKILL.md frontmatter
The optional YAML block at the top of a skill. All fields are optional but `description` is recommended, since it drives model-invoked triggering. Fields include `name`, `description`, `argument-hint` (autocomplete hint for expected arguments), `allowed-tools`, `model`, `context`, and `agent`. code.claude.com › skills
Skills system
The unified system behind custom `/commands`. A skill is a directory containing `SKILL.md` (`.claude/skills/<name>/SKILL.md`, the canonical location); a command is a flat Markdown file (`.claude/commands/<name>.md`, kept for backward compatibility). Both produce the same command, a skill wins over a same-named command, and locations resolve enterprise > personal (`~/.claude/skills/`) > project > bundled, with nested clashes qualified as `apps/web:deploy`. code.claude.com › skills
Skills vs CLAUDE.md
Skills are on-demand, task-specific workflows whose bodies load only on invocation; CLAUDE.md is always-loaded universal standards applied to every session with no invocation step. Do not put task-specific procedures in CLAUDE.md, or always-on reference material in skills.
System prompt flags
Four flags with an append-versus-replace distinction: `--system-prompt` and `--system-prompt-file` replace the entire default prompt, while `--append-system-prompt` and `--append-system-prompt-file` add to it. Append to keep the default tool guidance and safety instructions; replace only when the agent's identity differs from Claude Code's.
Writer/Reviewer pattern
Session A implements, a second independent session reviews, and Session A then addresses the feedback. The same split works for tests, with one Claude writing tests and another writing code to pass them. Its documented basis: a fresh context improves code review since Claude will not be biased toward code it just wrote. code.claude.com › best-practices