# Claude Code v2.1.178: system prompt

> 3 of 25 tool descriptions changed. Compared against v2.1.177.

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

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

## What moved

### Tool: Agent, reached 17 of 27 arms (+1/-7 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 1 @@
 Launch a new agent to handle complex, multi-step tasks. Each agent type has specific capabilities and tools available to it.
 
-Available agent types and the tools they have access to:
-- claude: Catch-all for any task that doesn't fit a more specific agent. FleetView's default when no agent name is typed. (Tools: *)
-- Explore: Fast read-only search agent for locating code. Use it to find files by pattern (eg. "src/components/**/*.tsx"), grep for symbols or keywords (eg. "API endpoints"), or answer "where is X defined / which files reference Y." Do NOT use it for code review, design-doc auditing, cross-file consistency checks, or open-ended analysis — it reads excerpts rather than whole files and will miss content past its read window. When calling, specify search breadth: "quick" for a single targeted lookup, "medium" for moderate exploration, or "very thorough" to search across multiple locations and naming conventions. (Tools: All tools except Agent, ExitPlanMode, Edit, Write, NotebookEdit)
-- general-purpose: General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. (Tools: *)
-- Plan: Software architect agent for designing implementation plans. Use this when you need to plan the implementation strategy for a task. Returns step-by-step plans, identifies critical files, and considers architectural trade-offs. (Tools: All tools except Agent, ExitPlanMode, Edit, Write, NotebookEdit)
-- statusline-setup: Use this agent to configure the user's Claude Code status line setting. (Tools: Read, Edit)
+Available agent types are listed in <system-reminder> messages in the conversation.
 
 When using the Agent tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used.
 
```

```diff
@@ from line 11 @@
 ## Usage notes
 
 - Always include a short description summarizing what the agent will do
-- When you launch multiple agents for independent work, send them in a single message with multiple tool uses so they run concurrently
 - 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.
 - 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.
 - You can optionally run agents in the background using the run_in_background parameter. 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.
```

### Tool: Agent, reached 10 of 27 arms (+1/-7 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 1 @@
 Launch a new agent to handle complex, multi-step tasks. Each agent type has specific capabilities and tools available to it.
 
-Available agent types and the tools they have access to:
-- claude: Catch-all for any task that doesn't fit a more specific agent. FleetView's default when no agent name is typed. (Tools: *)
-- Explore: Read-only search agent for broad fan-out searches — when answering means sweeping many files, directories, or naming conventions and you only need the conclusion, not the file dumps. It reads excerpts rather than whole files, so it locates code; it doesn't review or audit it. Specify search breadth: "medium" for moderate exploration, "very thorough" for multiple locations and naming conventions. (Tools: All tools except Agent, ExitPlanMode, Edit, Write, NotebookEdit)
-- general-purpose: General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. (Tools: *)
-- Plan: Software architect agent for designing implementation plans. Use this when you need to plan the implementation strategy for a task. Returns step-by-step plans, identifies critical files, and considers architectural trade-offs. (Tools: All tools except Agent, ExitPlanMode, Edit, Write, NotebookEdit)
-- statusline-setup: Use this agent to configure the user's Claude Code status line setting. (Tools: Read, Edit)
+Available agent types are listed in <system-reminder> messages in the conversation.
 
 When using the Agent tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used.
 
```

```diff
@@ from line 12 @@
 - 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.
 - `isolation: "worktree"` gives the agent its own git worktree (auto-cleaned if unchanged).
 - `run_in_background: true` runs the agent asynchronously; you'll be notified when it completes.
-- When you launch multiple agents for independent work, send them in a single message with multiple tool uses so they run concurrently
```

### Tool: Skill (+1/-0 lines)

This edit reached all 27 arms.

```diff
@@ from line 7 @@
 How to invoke:
 - Set `skill` to the exact name of an available skill (no leading slash). For plugin-namespaced skills use the fully qualified `plugin:skill` form.
 - Set `args` to pass optional arguments.
+- Some skills are scoped to a directory: their name is prefixed with the directory (e.g. `apps/web:deploy`) and their description says which directory they apply to. When a skill name has both a scoped and an unscoped variant, pick by the files you are working on: if the files are under a variant's directory, invoke that variant (most specific directory wins); otherwise invoke the unscoped one.
 
 Important:
 - Available skills are listed in system-reminder messages in the conversation
```

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

This edit reached all 27 arms.

```diff
@@ from line 43 @@
 The `meta` object must be a PURE LITERAL — no variables, function calls, spreads, or template interpolation. Required fields: `name`, `description`. Optional: `whenToUse` (shown in the workflow list), `phases`. Use the SAME phase titles in meta.phases as in phase() calls — titles are matched exactly; a phase() call with no matching meta entry just gets its own progress group. Add `model` to a phase entry when that phase uses a specific model override.
 
 Script body hooks:
-- agent(prompt: string, opts?: {label?: string, phase?: string, schema?: object, model?: string, isolation?: 'worktree', agentType?: string}): Promise<any> — spawn a subagent. Without schema, returns its final text as a string. With schema (a JSON Schema), the subagent is forced to call a StructuredOutput tool and agent() returns the validated object — no parsing needed. Returns null if the user skips the agent mid-run or the subagent dies on a terminal API error after retries (filter with .filter(Boolean)). opts.label overrides the display label. opts.phase explicitly assigns this agent to a progress group (use this inside pipeline()/parallel() stages to avoid races on the global phase() state — same phase string → same group box). opts.model overrides the model for this agent call. Default to omitting it — the agent inherits the main-loop model (the resolved session model), which is almost always correct. Only set it when you're highly confident a different tier fits the task; when unsure, omit. opts.isolation: 'worktree' runs the agent in a fresh git worktree — EXPENSIVE (~200-500ms setup + disk per agent), use ONLY when agents mutate files in parallel and would otherwise conflict; the worktree is auto-removed if unchanged. opts.agentType uses a custom subagent type (e.g. 'Explore', 'code-reviewer') instead of the default workflow subagent — resolved from the same registry as the Agent tool; composes with schema (the custom agent's system prompt gets a StructuredOutput instruction appended).
+- agent(prompt: string, opts?: {label?: string, phase?: string, schema?: object, model?: string, effort?: string, isolation?: 'worktree', agentType?: string}): Promise<any> — spawn a subagent. Without schema, returns its final text as a string. With schema (a JSON Schema), the subagent is forced to call a StructuredOutput tool and agent() returns the validated object — no parsing needed. Returns null if the user skips the agent mid-run or the subagent dies on a terminal API error after retries (filter with .filter(Boolean)). opts.label overrides the display label. opts.phase explicitly assigns this agent to a progress group (use this inside pipeline()/parallel() stages to avoid races on the global phase() state — same phase string → same group box). opts.model overrides the model for this agent call. Default to omitting it — the agent inherits the main-loop model (the resolved session model), which is almost always correct. Only set it when you're highly confident a different tier fits the task; when unsure, omit. opts.effort overrides the reasoning effort for this agent call ('low' | 'medium' | 'high' | 'xhigh' | 'max') — omit to inherit the session effort; use 'low' for cheap mechanical stages and higher tiers only for the hardest verify/judge stages. opts.isolation: 'worktree' runs the agent in a fresh git worktree — EXPENSIVE (~200-500ms setup + disk per agent), use ONLY when agents mutate files in parallel and would otherwise conflict; the worktree is auto-removed if unchanged. opts.agentType uses a custom subagent type (e.g. 'Explore', 'code-reviewer') instead of the default workflow subagent — resolved from the same registry as the Agent tool; composes with schema (the custom agent's system prompt gets a StructuredOutput instruction appended).
 - pipeline(items, stage1, stage2, ...): Promise<any[]> — run each item through all stages independently, NO barrier between stages. Item A can be in stage 3 while item B is still in stage 1. This is the DEFAULT for multi-stage work. Wall-clock = slowest single-item chain, not sum-of-slowest-per-stage. Every stage callback receives (prevResult, originalItem, index) — use originalItem/index in later stages to label work without threading context through stage 1's return value. A stage that throws drops that item to `null` and skips its remaining stages.
 - parallel(thunks: Array<() => Promise<any>>): Promise<any[]> — run tasks concurrently. This is a BARRIER: awaits all thunks before returning. A thunk that throws (or whose agent errors) resolves to `null` in the result array — the call itself never rejects, so `.filter(Boolean)` before using the results. Use ONLY when you genuinely need all results together.
 - log(message: string): void — emit a progress message to the user (shown as a narrator line above the progress tree)
```

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

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