# Claude Code v2.1.211: system prompt

> 1 of 24 tool descriptions changed. Compared against v2.1.210.

Web version: https://changelogs.core-directive.com/prompts/2.1.211?arm=sdk-cli

## What this version holds
- model strings captured: 27
- tool descriptions: 24
- compared against: v2.1.210
- system prompt edits: 0
- widest system prompt edit: +0/-0 lines
- tool descriptions changed: 1

## What moved

### Tool: Agent, reached 17 of 27 arms (+14/-2 lines)

This edit reached 17 of 27 arms: claude-3-5-haiku, claude-3-5-sonnet, claude-3-7-sonnet, claude-3-opus, claude-haiku-4-5, claude-opus-4-5, claude-opus-4-6, claude-opus-4-7, claude-sonnet-4-0, claude-sonnet-4-5, claude-sonnet-4-6, claude-sonnet-5, claude-sonnet-5[1m], haiku, opusplan, sonnet, sonnet[1m].

```diff
@@ from line 11 @@
 ## Usage notes
 
 - Always include a short description summarizing what the agent will do
-- When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
+- When the agent is done, its final report is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
 - Trust but verify: an agent's summary describes what it intended to do, not necessarily what it did. When an agent writes or edits code, check the actual changes before reporting the work as done.
 - Agents run in the background by default. When an agent runs in the background, you will be automatically notified when it completes — do NOT sleep, poll, or proactively check on its progress. Continue with other work or respond to the user instead.
 - **Foreground vs background**: Pass `run_in_background: false` to run an agent in the foreground when you need its results before you can proceed — e.g., research agents whose findings inform your next steps. Otherwise let it run in the background (the default) so you can keep working in parallel.
+- **Don't race**: after launching a background agent, you know nothing about its results. Never fabricate or predict them in any format — not as prose, summary, or structured output. The completion notification arrives in a later turn; it is never something you write yourself. If the user asks before it lands, say the agent is still running — give status, not a guess.
 - To continue a previously spawned agent, use SendMessage with the agent's ID or name as the `to` field — that resumes it with full context. A new Agent call starts a fresh agent with no memory of prior runs, so the prompt must be self-contained.
 - Each agent type's model, reasoning effort, and tool access are set in its definition (`.claude/agents/*.md` frontmatter, or the SDK `agents` option); the `model` parameter here overrides the definition for this one call.
 - Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since a fresh agent is not aware of the user's intent
```

```diff
@@ from line 45 @@
   description: "Branch ship-readiness audit",
   prompt: "Audit what's left before this branch can ship. Check: uncommitted changes, commits ahead of main, whether tests exist, whether the GrowthBook gate is wired up, whether CI-relevant files changed. Report a punch list — done vs. missing. Under 200 words."
 })
+assistant: Ship-readiness audit running in the background.
 <commentary>
-The prompt is self-contained: it states the goal, lists what to check, and caps the response length. The agent's report comes back as the tool result; relay the findings to the user.
+The prompt is self-contained: it states the goal, lists what to check, and caps the response length. The agent runs in the background (the default), so the turn ends here — nothing about its findings is known yet. The report arrives in a SEPARATE turn, as a completion notification from outside; it is never something you write yourself.
 </commentary>
+[later turn — notification arrives as user message]
+assistant: Audit's back. Three blockers: no tests for the new prompt path, GrowthBook gate wired but not in build_flags.yaml, and one uncommitted file.
+</example>
+
+<example>
+user: "so is the gate wired up or not"
+<commentary>
+User asks mid-wait. The audit was launched to answer exactly this, and it hasn't returned. Give status, not a fabricated result.
+</commentary>
+assistant: Still waiting on the audit — that's one of the things it's checking. Should land shortly.
 </example>
 
 <example>
```

### Tool: Agent, reached 10 of 27 arms (+2/-2 lines)

This edit reached 10 of 27 arms: (unset), claude-fable-5, claude-mythos-5, claude-opus-4-0, claude-opus-4-1, claude-opus-4-8, claude-opus-5, claude-opus-5[1m], default, opus.

```diff
@@ from line 8 @@
 
 Reach for this when the task matches an available agent type, when you have independent work to run in parallel, or when answering would mean reading across several files — delegate it and you keep the conclusion, not the file dumps. For a single-fact lookup where you already know the file, symbol, or value, search directly. Once you've delegated a search, don't also run it yourself — wait for the result.
 
-- The agent's final message is returned to you as the tool result; it is not shown to the user — relay what matters.
+- The agent's final report is not shown to the user — relay what matters.
 - Use SendMessage with the agent's ID or name to continue a previously spawned agent with its context intact; a new Agent call starts fresh.
 - Each agent type's model, reasoning effort, and tools come from its definition (`.claude/agents/*.md` frontmatter or SDK `agents`).
 - `isolation: "worktree"` gives the agent its own git worktree (auto-cleaned if unchanged).
-- Subagents run in the background by default; you'll be notified when one completes. Pass `run_in_background: false` for a synchronous run when you need the result before continuing.
+- Subagents run in the background by default; you'll be notified when one completes. Pass `run_in_background: false` for a synchronous run when you need the result before continuing. Never fabricate or predict a pending agent's results — the notification is never something you write yourself; if the user asks before it arrives, say it's still running.
```

## Tool descriptions
- Agent (changed in this version): https://changelogs.core-directive.com/prompts/2.1.211/tools/Agent.txt?arm=sdk-cli
- Bash: https://changelogs.core-directive.com/prompts/2.1.211/tools/Bash.txt?arm=sdk-cli
- CronCreate: https://changelogs.core-directive.com/prompts/2.1.211/tools/CronCreate.txt?arm=sdk-cli
- CronDelete: https://changelogs.core-directive.com/prompts/2.1.211/tools/CronDelete.txt?arm=sdk-cli
- CronList: https://changelogs.core-directive.com/prompts/2.1.211/tools/CronList.txt?arm=sdk-cli
- Edit: https://changelogs.core-directive.com/prompts/2.1.211/tools/Edit.txt?arm=sdk-cli
- EnterWorktree: https://changelogs.core-directive.com/prompts/2.1.211/tools/EnterWorktree.txt?arm=sdk-cli
- ExitWorktree: https://changelogs.core-directive.com/prompts/2.1.211/tools/ExitWorktree.txt?arm=sdk-cli
- NotebookEdit: https://changelogs.core-directive.com/prompts/2.1.211/tools/NotebookEdit.txt?arm=sdk-cli
- Read: https://changelogs.core-directive.com/prompts/2.1.211/tools/Read.txt?arm=sdk-cli
- ReportFindings: https://changelogs.core-directive.com/prompts/2.1.211/tools/ReportFindings.txt?arm=sdk-cli
- ScheduleWakeup: https://changelogs.core-directive.com/prompts/2.1.211/tools/ScheduleWakeup.txt?arm=sdk-cli
- SendMessage: https://changelogs.core-directive.com/prompts/2.1.211/tools/SendMessage.txt?arm=sdk-cli
- Skill: https://changelogs.core-directive.com/prompts/2.1.211/tools/Skill.txt?arm=sdk-cli
- TaskCreate: https://changelogs.core-directive.com/prompts/2.1.211/tools/TaskCreate.txt?arm=sdk-cli
- TaskGet: https://changelogs.core-directive.com/prompts/2.1.211/tools/TaskGet.txt?arm=sdk-cli
- TaskList: https://changelogs.core-directive.com/prompts/2.1.211/tools/TaskList.txt?arm=sdk-cli
- TaskOutput: https://changelogs.core-directive.com/prompts/2.1.211/tools/TaskOutput.txt?arm=sdk-cli
- TaskStop: https://changelogs.core-directive.com/prompts/2.1.211/tools/TaskStop.txt?arm=sdk-cli
- TaskUpdate: https://changelogs.core-directive.com/prompts/2.1.211/tools/TaskUpdate.txt?arm=sdk-cli
- WebFetch: https://changelogs.core-directive.com/prompts/2.1.211/tools/WebFetch.txt?arm=sdk-cli
- WebSearch: https://changelogs.core-directive.com/prompts/2.1.211/tools/WebSearch.txt?arm=sdk-cli
- Workflow: https://changelogs.core-directive.com/prompts/2.1.211/tools/Workflow.txt?arm=sdk-cli
- Write: https://changelogs.core-directive.com/prompts/2.1.211/tools/Write.txt?arm=sdk-cli

## Full text
- system prompt: https://changelogs.core-directive.com/prompts/2.1.211/system.txt?arm=sdk-cli
