# Claude Code v2.1.288: system prompt

> 2 of 27 tool descriptions changed. 1 of 25 tool schemas changed. The appended system-reminder blocks moved: 1 line added, 1 line removed. Compared against v2.1.287.

[Web version](https://changelogs.core-directive.com/prompts/2.1.288?arm=cli)

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

## What moved

### Tool: Bash, reached 15 of 27 arms (+1/-1 lines)

This edit reached 15 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, sonnet[1m].

```diff
@@ from line 15 @@
  - Always quote file paths that contain spaces with double quotes in your command (e.g., cd "path with spaces/file.txt")
  - Try to maintain your current working directory throughout the session by using absolute paths and avoiding usage of `cd`. You may use `cd` if the User explicitly requests it. In particular, never prepend `cd <current-directory>` to a `git` command — `git` already operates on the current working tree, and the compound triggers a permission prompt.
  - You may specify an optional timeout in milliseconds (up to 600000ms / 10 minutes for a foreground command). By default, your command will timeout after 120000ms (2 minutes).
- - You can use the `run_in_background` parameter to run the command in the background. Only use this if you don't need the result immediately and are OK being notified when the command completes later. You do not need to check the output right away - you'll be notified when it finishes. You do not need to use '&' at the end of the command when using this parameter. With `run_in_background` the timeout is instead how long the command may run in the background (default 1800000ms / 30 minutes, max 7200000ms / 2 hours); at that limit it is stopped and you are notified.
+ - You can use the `run_in_background` parameter to run the command in the background. Only use this if you don't need the result immediately and are OK being notified when the command completes later. You do not need to check the output right away - you'll be notified when it finishes. You do not need to use '&' at the end of the command when using this parameter.
  - For git commands:
   - Prefer to create a new commit rather than amending an existing commit.
   - Before running destructive operations (e.g., git reset --hard, git push --force, git checkout --), consider whether there is a safer alternative that achieves the same goal. Only use destructive operations when they are truly the best approach.
```

### Tool: Bash, reached 12 of 27 arms (+1/-1 lines)

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

The same edit landed in one other copy of this prompt, which differs from this one only in text interpolated per model.

```diff
@@ from line 4 @@
 - IMPORTANT: Avoid using this tool to run `cat`, `head`, `tail`, `sed`, `awk`, or `echo` commands, unless explicitly instructed or after you have verified that a dedicated tool cannot accomplish your task. Instead, use the appropriate dedicated tool as this will provide a much better experience for the user.
 - Command output is displayed to you, not reliably to the user.
 - `timeout` is in milliseconds: default 120000, max 600000 for a foreground command.
-- `run_in_background` runs the command detached: it keeps running across turns and re-invokes you when it exits. With it, `timeout` is how long the command may run in the background (default 1800000, max 7200000); at that limit it is stopped and you are re-invoked. No `&` needed.
+- `run_in_background` runs the command detached: it keeps running across turns and re-invokes you when it exits. No `&` needed.
 
 # Git
 - Interactive flags (`-i`, e.g. `git rebase -i`, `git add -i`) are not supported in this environment.
```

### Tool: Read, Opus (+0/-1 lines)

This edit reached 1 of 27 arms: claude-3-opus.

```diff
@@ from line 7 @@
 - When you already know which part of the file you need, only read that part. This can be important for larger files.
 - Results are returned using cat -n format, with line numbers starting at 1
 - This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.
-- This tool can read PDF files (.pdf). For large PDFs (more than 10 pages), you MUST provide the pages parameter to read specific page ranges (e.g., pages: "1-5"). Reading a large PDF without the pages parameter will fail. Maximum 20 pages per request.
 - This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.
 - This tool can only read files, not directories. To list files in a directory, use the registered shell tool.
 - You will regularly be asked to read screenshots. If the user provides a path to a screenshot, ALWAYS use this tool to view the file at the path. This tool will work with all temporary file paths.
```

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

## Full text
- [system prompt](https://changelogs.core-directive.com/prompts/2.1.288/system.txt?arm=cli)
