# Claude Code v2.1.140: system prompt

> 1 added and 1 removed, of 220 lines, about 7 words, in the prompt all 27 arms receive. 1 of 23 tool descriptions changed. Compared against v2.1.139.

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

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

## What moved

### System prompt (+1/-1 lines)

This edit reached all 27 arms.

The same edit landed in 17 other copies of this prompt, which differ from this one only in text interpolated per model.

```diff
@@ from line 214 @@
  - Assistant knowledge cutoff is January 2026.
  - The most recent Claude model family is Claude 4.X. Model IDs — Opus 4.7: 'claude-opus-4-7', Sonnet 4.6: 'claude-sonnet-4-6', Haiku 4.5: 'claude-haiku-4-5-20251001'. When building AI applications, default to the latest and most capable Claude models.
  - Claude Code is available as a CLI in the terminal, desktop app (Mac/Windows), web app (claude.ai/code), and IDE extensions (VS Code, JetBrains).
- - Fast mode for Claude Code uses Claude Opus 4.6 with faster output (it does not downgrade to a smaller model). It can be toggled with /fast and is only available on Opus 4.6.
+ - Fast mode for Claude Code uses Claude Opus with faster output (it does not downgrade to a smaller model). It can be toggled with /fast and is available on Opus 4.6 and Opus 4.7.
 
 # Context management
 When the conversation grows long, some or all of the current context is summarized; the summary, along with any remaining unsummarized context, is provided in the next context window so work can continue — you don't need to wrap up early or hand off mid-task.
```

### Tool: ScheduleWakeup (+6/-4 lines)

This edit reached all 27 arms.

```diff
@@ from line 1 @@
 Schedule when to resume work in /loop dynamic mode — the user invoked /loop without an interval, asking you to self-pace iterations of a specific task.
 
+Do NOT schedule a short-interval wakeup to poll for background work you started — when harness-tracked work finishes, you are re-invoked automatically, so polling is wasted. Instead schedule a long fallback (1200s+) so the loop survives if the work hangs or never notifies. The exception is external work the harness cannot track (a CI run, a deploy, a remote queue) — there, pick a delay matched to how fast that state actually changes.
+
 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.) Omit the call to end the loop.
 
 ## Picking delaySeconds
```

```diff
@@ from line 8 @@
 
 The Anthropic prompt cache has a 5-minute TTL. Sleeping past 300 seconds means the next wake-up reads your full conversation context uncached — slower and more expensive. So the natural breakpoints:
 
-- **Under 5 minutes (60s–270s)**: cache stays warm. Right for active work — checking a build, polling for state that's about to change, watching a process you just started.
-- **5 minutes to 1 hour (300s–3600s)**: pay the cache miss. Right when there's no point checking sooner — waiting on something that takes minutes to change, or genuinely idle.
+- **Under 5 minutes (60s–270s)**: cache stays warm. Right for actively polling external state the harness can't notify you about — a CI run, a deploy, a remote queue.
+- **5 minutes to 1 hour (300s–3600s)**: pay the cache miss. Right when there's no point checking sooner — waiting on something that takes minutes to change, genuinely idle, or as the long fallback heartbeat when something else is the primary wake signal.
 
 **Don't pick 300s.** It's the worst-of-both: you pay the cache miss without amortizing it. If you're tempted to "wait 5 minutes," either drop to 270s (stay in cache) or commit to 1200s+ (one cache miss buys a much longer wait). Don't think in round-number minutes — think in cache windows.
 
 For idle ticks with no specific signal to watch, default to **1200s–1800s** (20–30 min). The loop checks back, you don't burn cache 12× per hour for nothing, and the user can always interrupt if they need you sooner.
 
-Think about what you're actually waiting for, not just "how long should I sleep." If you kicked off an 8-minute build, sleeping 60s burns the cache 8 times before it finishes — sleep ~270s twice instead.
+Think about what you're actually waiting for, not just "how long should I sleep." If you're polling a CI run that takes ~8 minutes, sleeping 60s burns the cache 8 times before it finishes — sleep ~270s twice instead.
 
 The runtime clamps to [60, 3600], so you don't need to clamp yourself.
 
 ## The reason field
 
-One short sentence on what you chose and why. Goes to telemetry and is shown back to the user. "checking long bun build" beats "waiting." The user reads this to understand what you're doing without having to predict your cadence in advance — make it specific.
+One short sentence on what you chose and why. Goes to telemetry and is shown back to the user. "watching CI run" beats "waiting." The user reads this to understand what you're doing without having to predict your cadence in advance — make it specific.
 
```

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

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