Official exam guide · Version 0.1 · Feb 2025 · 720/1000 to pass
stop_reason → execute tools → return results for
next iteration"tool_use" means continue; "end_turn" means terminate"tool_use", terminate on "end_turn"
Task tool is the mechanism for spawning subagents; allowedTools must
include "Task"AgentDefinition config: descriptions, system prompts, tool restrictions per subagent
typeTask calls in a single coordinator
responseprocess_refund until get_customer returns a verified ID)PostToolUse hooks intercept tool results for transformation before the model processes
themPostToolUse hooks to normalize heterogeneous data formats (Unix timestamps →
ISO 8601, numeric status codes → strings)--resume <session-name> to continue a specific
prior conversationfork_session for creating independent branches from a shared analysis baseline to
explore divergent approaches--resume with session names to continue named investigation sessions across work
sessionsfork_session to create parallel exploration branches (comparing testing strategies,
refactoring approaches)analyze_content vs
analyze_document with near-identical descriptions)analyze_content to extract_web_results with a web-specific description)isError flag pattern for communicating tool failures back to the agenterrorCategory (transient/validation/permission),
isRetryable boolean, human-readable descriptionsretriable: false flags and customer-friendly explanations for business rule
violations so the agent can communicate appropriatelytool_choice options: "auto", "any" (must call a tool), forced
{"type": "tool", "name": "..."}fetch_url with
load_document that validates document URLs)verify_fact tool for
the synthesis agent) while routing complex cases through coordinatortool_choice: "any" to guarantee the model calls a tool rather than returning
conversational textextract_metadata before enrichment tools).mcp.json) for shared team tooling vs user-level
(~/.claude.json) for personal/experimental.mcp.json (e.g., ${GITHUB_TOKEN}) for
credential management without committing secrets.mcp.json with environment variable
expansion for authentication tokens~/.claude.json**/*.test.tsx)~/.claude/CLAUDE.md), project-level
(.claude/CLAUDE.md or root CLAUDE.md), directory-level (subdirectory
CLAUDE.md files)@import syntax for referencing external files to keep CLAUDE.md modular.claude/rules/ directory for topic-specific rule files as an alternative to a
monolithic CLAUDE.md@import to selectively include relevant standards files in each package's CLAUDE.md
.claude/rules/ (e.g.,
testing.md, api-conventions.md, deployment.md)/memory command to verify which memory files are loaded and diagnose inconsistent
behavior across sessions.claude/commands/ (version-controlled, team-wide) vs
user-scoped in ~/.claude/commands/ (personal).claude/skills/ with SKILL.md files; frontmatter options:
context: fork, allowed-tools, argument-hintcontext: fork runs the skill in an isolated sub-agent context, preventing output from
polluting the main conversation~/.claude/skills/ with
different names to avoid affecting teammates.claude/commands/ for team-wide availability
via version controlcontext: fork to isolate skills that produce verbose output (e.g., codebase
analysis, brainstorming alternatives) from the main sessionallowed-tools in skill frontmatter to restrict tool access during execution
(e.g., limiting to file write operations)argument-hint frontmatter to prompt developers for required parameters when
invoking the skill without arguments.claude/rules/ files with YAML frontmatter paths fields containing glob
patterns for conditional rule activation.claude/rules/ files with YAML frontmatter path scoping (e.g.,
paths: ["terraform/**/*"]) so rules load only when editing matching files**/*.test.tsx for all test files)-p (or --print) flag for running Claude Code in non-interactive mode
in automated pipelines--output-format json and --json-schema CLI flags for enforcing structured
output in CI contexts-p flag to prevent interactive input hangs--output-format json with --json-schema to produce machine-parseable
structured findings for automated posting as inline PR commentstool_use with JSON schemas: most reliable approach for guaranteed schema-compliant
structured output, eliminating JSON syntax errorstool_choice: "auto" (model may return text), "any" (model
must call a tool but can choose which), forced (model must call a specific named tool)"other" + detail string
patterns for extensible categoriestool_use responsetool_choice: "any" to guarantee structured output when multiple extraction schemas
exist and the document type is unknowntool_choice: {"type": "tool", "name": "extract_metadata"} to
ensure a particular extraction runs before enrichment steps"unclear" for ambiguous cases and "other" + detail
fields for extensible categorizationdetected_pattern fields to enable systematic analysis of
dismissal patternsdetected_pattern fields to structured findings to enable analysis of false positive
patterns when developers dismiss findingscalculated_total alongside
stated_total to flag discrepancies; add conflict_detected booleans for
inconsistent source datacustom_id fields for correlating batch request/response pairscustom_id) with
appropriate modifications (e.g., chunking oversized documents)/compact to reduce context usage during extended exploration sessions when context
fills with verbose discovery outputstop_reason, tool result handling,
loop terminationPostToolUse, tool call interception), subagent
spawning via Task tool, allowedTools configuration.mcp.json vs
~/.claude.json), environment variable expansion, multi-server simultaneous accesstool_choice configuration: "auto", "any", forced tool selection
@import patterns,
.claude/rules/ with glob patternscontext: fork,
allowed-tools, argument-hint frontmatter-p flag for non-interactive mode, --output-format json,
--json-schema for structured CI output--resume, fork_session, named sessions, session context
isolationtool_choice configuration, nullable fields
to prevent hallucinationcustom_id/compact for reducing context usage during extended exploration sessions.claude/rules/, build custom skills
with frontmatter options (context: fork, allowed-tools), and integrate at least
one MCP server.
tool_use with JSON schemas, implement validation-retry loops, design schemas with
optional/nullable fields, and practice batch processing with the Message Batches API.