Domain 3
20%

Glossary: Claude Code Configuration & Workflows

Quick-lookup definitions for the 20% exam domain. Each entry includes a concise definition and exam context. Follow the lesson links to dive deeper.

CLAUDE.md

A markdown file that provides persistent instructions to Claude Code. It acts as a project-level system prompt, loaded automatically when Claude Code starts in a directory. CLAUDE.md files can exist at multiple levels (project root, subdirectories, user home) and are merged together, with more specific files taking priority.

Exam context: This is heavily tested. Know the three scopes (project, directory, user), how they merge, and the difference between CLAUDE.md (checked into the repo) and .claude/CLAUDE.md (local, not committed).

See also: 3.2 CLAUDE.md Files


Hooks

Custom scripts that run at specific points during Claude Code's execution lifecycle. Hooks can trigger before or after tool calls, on notification events, or when a session starts. They are defined in the settings.json configuration and run as shell commands on your local machine.

Exam context: Know the available hook types (PreToolUse, PostToolUse, Notification, etc.), how to configure them, and how exit codes affect Claude Code's behaviour. A non-zero exit code from a PreToolUse hook blocks the tool call.

See also: 3.3 Hooks & Automation


Permissions

The security system that controls which tools and operations Claude Code can execute. Permissions operate on an allowlist/denylist model — you can explicitly permit or deny specific tools, file paths, and commands. The default mode requires user confirmation for potentially destructive operations.

Exam context: Know the three permission modes (default, allowlist, denylist) and how they interact. Understand which operations require confirmation by default and how to configure auto-approval for trusted operations.

See also: 3.4 Permissions & Security


Slash Commands

Custom reusable commands defined as markdown files in the .claude/commands/ directory. When a user types / in Claude Code, available slash commands appear as options. Each command file contains a prompt template that can include $ARGUMENTS placeholders for dynamic input.

Exam context: Know where slash command files live (.claude/commands/ for project-level, ~/.claude/commands/ for user-level), the file naming convention, and how $ARGUMENTS substitution works.

See also: 3.5 Slash Commands & MCP


CI/CD Integration

Running Claude Code in non-interactive mode within continuous integration and deployment pipelines. This uses the claude -p flag for single-prompt mode or piped input. CI/CD mode requires the ANTHROPIC_API_KEY environment variable and typically runs with --allowedTools to restrict available operations.

Exam context: The exam tests how to configure Claude Code for headless environments. Know the required flags (-p, --output-format json), environment variables, and how to restrict tool access in automated pipelines.

See also: 3.6 CI/CD Integration


Configuration Scope

The hierarchy of settings that controls Claude Code's behaviour. Settings can be defined at the project level (.claude/settings.json), user level (~/.claude/settings.json), or enterprise level. More specific scopes override broader ones, with enterprise settings taking the highest priority.

Exam context: Understand the three-level hierarchy and how settings merge. The exam may present scenarios where project and user settings conflict — know which one wins.

See also: 3.1 Configuration & Settings


Allowlist/Denylist

Permission configuration patterns for controlling tool access. An allowlist specifies exactly which tools are permitted (everything else is denied). A denylist specifies which tools are blocked (everything else is permitted). These are configured in settings.json under the permissions key.

Exam context: Know when to use an allowlist versus a denylist. Allowlists are more secure (deny by default), while denylists are more permissive. The exam favours allowlists for production and CI/CD environments.

See also: 3.4 Permissions & Security


settings.json

The JSON configuration file that controls Claude Code's behaviour, including permissions, hooks, MCP servers, and model preferences. It can exist at the project level (.claude/settings.json) or user level (~/.claude/settings.json). Project-level settings are typically committed to the repository.

Exam context: Know the key configuration sections (permissions, hooks, mcpServers) and the file's location at different scopes. Understand that project-level settings apply to all team members who clone the repo.

See also: 3.1 Configuration & Settings


.claude Directory

A directory at the project root that stores Claude Code's project-level configuration. It contains settings.json (committed to the repo for shared team settings), settings.local.json (git-ignored for personal settings), and the commands/ subdirectory for slash commands.

Exam context: Know what goes in .claude/ versus what stays in the project root. Understand which files are committed (settings.json, commands/) and which are local-only (settings.local.json).

See also: 3.1 Configuration & Settings


Subagents

Separate Claude Code instances spawned by the main agent using the Task tool to handle specific, scoped pieces of work. Each subagent runs in its own context with its own tool access, preventing context pollution in the main conversation. The main agent coordinates subagents and aggregates their results.

Exam context: Know when to use subagents versus handling everything in the main conversation. Subagents are useful for parallel tasks, large codebases, or when you want to isolate a task's context. Understand that subagents do not share memory with the parent.

See also: 3.5 Slash Commands & MCP