# Claude Code v2.1.274: system prompt

> 1 of 27 tool descriptions changed. The appended system-reminder blocks moved: 2 lines added, 2 lines removed. Compared against v2.1.273.

Web version: https://changelogs.core-directive.com/prompts/2.1.274?arm=sdk-cli&config=flags-account

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

## What moved

### Tool: SendMessage (+1/-1 lines)

This edit reached all 27 arms.

```diff
@@ from line 26 @@
 
 Send the bare name — a name that exactly matches one live agent or session (on this machine, on another machine, or in the cloud) delivers directly. Append the ` [ref]` only when the bare name is not enough — `ListAgents` shows two rows with it, or an error asks you to disambiguate (you typed only a prefix, or a session list could not be checked). A ref you did not just read from a listing or an error will not resolve, and if the same name also names an in-process agent, the bare name always wins — use the in-process one.
 
-A listed peer is alive and will receive your message; messages enqueue and drain at the receiver's next tool round (its `ListAgents` row says whether it is busy or idle right now). A successful send means the message reached that session, not that its Claude read it: a session running in a different permission mode than yours holds cross-session messages for its user's approval (and may let them expire), and a session can refuse them outright — for a session on this machine a `[Cross-session delivery notice]` tells you when that happens (the tool result says when this session has no inbox for one to reach); for a Remote Control, cloud or Claude Desktop session nothing reports back, so never treat silence as agreement. Your message arrives wrapped as `<cross-session-message from="...">`. **To reply to an incoming message, copy its `from` attribute as your `to`.** Cross-session messages travel between SESSIONS: if you are a subagent, your send goes out under your parent session's address, and any reply is delivered to the parent session's conversation, not to you.
+A listed peer is alive and will receive your message; messages enqueue and drain at the receiver's next tool round (its `ListAgents` row says whether it is busy or idle right now). A successful send means the message reached that session, not that its Claude read it: a session running in a different permission mode than yours holds cross-session messages for its user's approval (and may let them expire), and a session can refuse them outright — for a session on this machine a `[Cross-session delivery notice]` tells you when that happens (the tool result says when this session has no inbox for one to reach); for a Remote Control, cloud or Claude Desktop session nothing reports back, so never treat silence as agreement. Your message arrives wrapped as `<cross-session-message from="...">`. **To reply to an incoming message, copy its `from` attribute as your `to`.** Cross-session messages travel between SESSIONS: if you are a subagent, your send goes out under your parent session's address, and any reply is delivered to the parent session's conversation, not to you. The receiver reads your message literally in every case (idle or busy, on this machine, over Remote Control or headless): an `@` followed by a file path, or `@server:resource`, attaches nothing there, unlike in your own user's input. So never rely on `@` to deliver content: send the text itself, or a file with its own tool.
 
 To hear when a session ON THIS MACHINE finishes what it is doing, pass `notify_when_idle: true` (from the main conversation only) — one-shot and opt-in: exactly one `[Cross-session idle notice]` arrives when it next goes idle (or exits) — shown to you, or only to your user when this session holds peer messages for approval (the tool result says which); if it never signals within the subscription's lifetime (it may still be busy, may refuse inbound requests, or may have ended abruptly) the notice says the subscription expired instead. Omit `message` for a pure subscription that costs that session nothing; include one to deliver it now AND subscribe. Never poll `ListAgents` in a loop or send "are you done?" messages instead.
 
```

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

## Full text
- system prompt: https://changelogs.core-directive.com/prompts/2.1.274/system.txt?arm=sdk-cli&config=flags-account
