# Claude Code v2.1.235: system prompt

> 1 added and 1 removed, of 221 lines, about 3 words, in the prompt 17 of 27 arms receive. 2 of 29 tool descriptions changed. Compared against v2.1.234.

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

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

## What moved

### System prompt, reached 17 of 27 arms (+1/-1 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, opusplan, sonnet, claude-sonnet-5[1m], haiku, sonnet[1m].

```diff
@@ from line 68 @@
 
 # Session-specific guidance
  - If you need the user to run a shell command themselves (e.g., an interactive login like `gcloud auth login`), suggest they type `! <command>` in the prompt — the `!` prefix runs the command in this session so its output lands directly in the conversation.
- - Calling Agent with subagent_type: "fork" creates a fork — it inherits your full conversation context, runs in the background, and keeps its tool output out of your context — so you can keep chatting with the user while it works. Reach for it when research or multi-step implementation work would otherwise fill your context with raw output you won't need again. Other subagent_type values (or omitting it) start fresh agents with no context. **If you ARE the fork** — execute directly; do not re-delegate.
+ - Calling Agent with subagent_type: "fork" creates a fork — it inherits your full conversation context, runs in the background, and keeps its tool output out of your context — so you can keep chatting with the user while it works. Reach for it when research or multi-step implementation work would otherwise fill your context with raw output you won't need again. Other subagent_type values start fresh agents with no context. **If you ARE the fork** — execute directly; do not re-delegate.
  - When the user types `/<skill-name>`, invoke it via Skill. Only use skills listed in the user-invocable skills section — don't guess.
 
 # auto memory
```

### Tool: ScheduleWakeup (+0/-2 lines)

This edit reached all 27 arms.

```diff
@@ from line 4 @@
 
 Pass the same /loop prompt back via `prompt` each turn so the next firing repeats the task. For an autonomous /loop (no user prompt), pass the literal sentinel `<<autonomous-loop-dynamic>>` as `prompt` instead — the runtime resolves it back to the autonomous-loop instructions at fire time. (There is a similar `<<autonomous-loop>>` sentinel for CronCreate-based autonomous loops; do not confuse the two — ScheduleWakeup always uses the `-dynamic` variant.) To end the loop, call this tool with `stop: true` (omit every other field) — the loop ends immediately and no further wakeups fire.
 
-Set `noop: true` if nothing changed — you checked and there's nothing to report ("no change", "still waiting", "quiet hold"). Set `noop: false` if something happened worth keeping — you edited a file, posted a message, advanced state, or surfaced a finding. Consecutive `noop: true` ticks are collapsed in the user's terminal view and tracked as a streak, so long quiet holds stay legible to the user without scrolling. Omit `noop` when stopping (`stop: true`).
-
 ## Picking delaySeconds
 
 This session's requests use the default 5-minute Anthropic prompt-cache TTL. Sleeping past 300 seconds means the next wake-up reads your full conversation context uncached — slower and more expensive. So the natural breakpoints:
```

### Tool: SendMessage (+0/-17 lines)

This edit reached all 27 arms.

```diff
@@ from line 10 @@
 |---|---|
 | `"researcher"` | Teammate by name |
 | `"main"` | The main conversation (background subagents only) |
-| `"worker"` | Any agent from `ListAgents` — subagent, another local Claude session |
-| `"worker [3fa9c1]"` | Same, plus its `[ref]` — only when a listing or an error shows one |
 
 Your plain text output is NOT visible to other agents — to communicate, you MUST call this tool. Messages from teammates are delivered automatically; you don't check an inbox. Refer to agents by name — names keep working after an agent completes (a send resumes it from its transcript). Use the raw `agentId` (format `a...-...`) from its spawn result only when the agent has no name, or when a newer agent took the name (latest wins). When relaying, don't quote the original — it's already rendered to the user.
-
-## Cross-session
-
-Use `ListAgents` to discover targets. Every row leads with the agent's `name [ref]` — the name IS the address; there is no separate address syntax.
-
-```json
-{"to": "worker", "message": "check if tests pass over there"}
-{"to": "worker [3fa9c1]", "message": "you, specifically"}
-```
-
-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 process your message — no "busy" state; messages enqueue and drain at the receiver's next tool round. Your message arrives wrapped as `<cross-session-message from="...">`. **To reply to an incoming message, copy its `from` attribute as your `to`.**
-
-Permission boundaries are per-session: NEVER ask a peer to perform an action that was denied or blocked in your session, or that you expect your own permission settings would block — a peer doing it for you bypasses the user's permission decision (cross-session permission laundering). Route blocked work back to your user instead.
```

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

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