From 8533e3bacee38cb860c6b2e85f19e1736b331bd6 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 20 Jan 2026 18:09:57 -0700 Subject: [PATCH] v2.1.14 (-1,153 tokens) --- README.md | 14 ++--- ...ompt-suggestion-generator-stated-intent.md | 19 ++++++ .../system-prompt-chrome-browser-mcp-tools.md | 8 +-- system-prompts/tool-description-bash.md | 4 +- ...cription-exitplanmode-v2-security-notes.md | 13 ---- .../tool-description-exitplanmode-v2.md | 59 ------------------- .../tool-description-exitplanmode.md | 28 +++++---- system-prompts/tool-description-mcpsearch.md | 54 ----------------- ...ools.md => tool-description-toolsearch.md} | 42 ++++++------- system-prompts/tool-description-webfetch.md | 3 +- 10 files changed, 71 insertions(+), 173 deletions(-) create mode 100644 system-prompts/agent-prompt-prompt-suggestion-generator-stated-intent.md delete mode 100644 system-prompts/tool-description-exitplanmode-v2-security-notes.md delete mode 100644 system-prompts/tool-description-exitplanmode-v2.md delete mode 100644 system-prompts/tool-description-mcpsearch.md rename system-prompts/{tool-description-mcpsearch-with-available-tools.md => tool-description-toolsearch.md} (55%) diff --git a/README.md b/README.md index 2ffa0fc..43a666c 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Download it and try it out for free! **https://piebald.ai/** [![Mentioned in Awesome Claude Code](https://awesome.re/mentioned-badge.svg)](https://github.com/hesreallyhim/awesome-claude-code) -This repository contains an up-to-date list of all Claude Code's various system prompts and their associated token counts as of **[Claude Code v2.1.12](https://www.npmjs.com/package/@anthropic-ai/claude-code/v/2.1.12) (January 17th, 2026).** It also contains a [**CHANGELOG.md**](./CHANGELOG.md) for the system prompts across 71 versions since v2.0.14. From the team behind [ **Piebald.**](https://piebald.ai/) +This repository contains an up-to-date list of all Claude Code's various system prompts and their associated token counts as of **[Claude Code v2.1.14](https://www.npmjs.com/package/@anthropic-ai/claude-code/v/2.1.14) (January 20th, 2026).** It also contains a [**CHANGELOG.md**](./CHANGELOG.md) for the system prompts across 72 versions since v2.0.14. From the team behind [ **Piebald.**](https://piebald.ai/) **This repository is updated within minutes of each Claude Code release. See the [CHANGELOG](./CHANGELOG.md), and follow [@PiebaldAI](https://x.com/PiebaldAI) on X for a summary of the system prompt changes in each release.** @@ -97,6 +97,7 @@ Sub-agents and utilities. - [Agent Prompt: Conversation summarization with additional instructions](./system-prompts/agent-prompt-conversation-summarization-with-additional-instructions.md) (**1133** tks) - Extended summarization prompt with support for custom additional instructions. - [Agent Prompt: Conversation summarization](./system-prompts/agent-prompt-conversation-summarization.md) (**1121** tks) - System prompt for creating detailed conversation summaries. - [Agent Prompt: Prompt Hook execution](./system-prompts/agent-prompt-prompt-hook-execution.md) (**134** tks) - Prompt given to Claude when acting evaluating whether to pass or fail a prompt hook.. +- [Agent Prompt: Prompt Suggestion Generator (Stated Intent)](./system-prompts/agent-prompt-prompt-suggestion-generator-stated-intent.md) (**166** tks) - Instructions for generating prompt suggestions based on user's explicitly stated next steps. - [Agent Prompt: Prompt Suggestion Generator v2](./system-prompts/agent-prompt-prompt-suggestion-generator-v2.md) (**296** tks) - V2 instructions for generating prompt suggestions for Claude Code. - [Agent Prompt: Remember skill](./system-prompts/agent-prompt-remember-skill.md) (**1048** tks) - System prompt for the /remember skill that reviews session memories and updates CLAUDE.local.md with recurring patterns and learnings. - [Agent Prompt: Session Search Assistant](./system-prompts/agent-prompt-session-search-assistant.md) (**439** tks) - Agent prompt for the session search assistant that finds relevant sessions based on user queries and metadata. @@ -145,22 +146,21 @@ Text for large system reminders. ### Builtin Tool Descriptions - [Tool Description: AskUserQuestion](./system-prompts/tool-description-askuserquestion.md) (**194** tks) - Tool description for asking user questions.. -- [Tool Description: Bash](./system-prompts/tool-description-bash.md) (**1047** tks) - Description for the Bash tool, which allows Claude to run shell commands. +- [Tool Description: Bash](./system-prompts/tool-description-bash.md) (**1067** tks) - Description for the Bash tool, which allows Claude to run shell commands. - [Tool Description: Computer](./system-prompts/tool-description-computer.md) (**161** tks) - Main description for the Chrome browser computer automation tool. - [Tool Description: Edit](./system-prompts/tool-description-edit.md) (**278** tks) - Tool description for performing exact string replacements in files. - [Tool Description: EnterPlanMode](./system-prompts/tool-description-enterplanmode.md) (**970** tks) - Tool description for entering plan mode to explore and design implementation approaches. -- [Tool Description: ExitPlanMode v2](./system-prompts/tool-description-exitplanmode-v2.md) (**738** tks) - V2 description for the ExitPlanMode tool, which presents a plan dialog for the user to approve. -- [Tool Description: ExitPlanMode](./system-prompts/tool-description-exitplanmode.md) (**342** tks) - Description for the ExitPlanMode tool, which presents a plan dialog for the user to approve. +- [Tool Description: ExitPlanMode](./system-prompts/tool-description-exitplanmode.md) (**417** tks) - Description for the ExitPlanMode tool, which presents a plan dialog for the user to approve. - [Tool Description: Glob](./system-prompts/tool-description-glob.md) (**122** tks) - Tool description for file pattern matching and searching by name. - [Tool Description: Grep](./system-prompts/tool-description-grep.md) (**300** tks) - Tool description for content search using ripgrep. - [Tool Description: LSP](./system-prompts/tool-description-lsp.md) (**255** tks) - Description for the LSP tool.. -- [Tool Description: MCPSearch](./system-prompts/tool-description-mcpsearch.md) (**477** tks) - Tool description for the MCPSearch tool. - [Tool Description: NotebookEdit](./system-prompts/tool-description-notebookedit.md) (**121** tks) - Tool description for editing Jupyter notebook cells. - [Tool Description: ReadFile](./system-prompts/tool-description-readfile.md) (**439** tks) - Tool description for reading files. - [Tool Description: Skill](./system-prompts/tool-description-skill.md) (**444** tks) - Tool description for executing skills in the main conversation. - [Tool Description: Task](./system-prompts/tool-description-task.md) (**1264** tks) - Tool description for launching specialized sub-agents to handle complex tasks. - [Tool Description: TodoWrite](./system-prompts/tool-description-todowrite.md) (**2167** tks) - Tool description for creating and managing task lists. -- [Tool Description: WebFetch](./system-prompts/tool-description-webfetch.md) (**265** tks) - Tool description for web fetch functionality. +- [Tool Description: ToolSearch](./system-prompts/tool-description-toolsearch.md) (**520** tks) - Tool description for loading and searching deferred tools before use. +- [Tool Description: WebFetch](./system-prompts/tool-description-webfetch.md) (**297** tks) - Tool description for web fetch functionality. - [Tool Description: WebSearch](./system-prompts/tool-description-websearch.md) (**329** tks) - Tool description for web search functionality. - [Tool Description: Write](./system-prompts/tool-description-write.md) (**159** tks) - Tool description creating/overwriting writing individual files. @@ -168,5 +168,3 @@ Text for large system reminders. - [Tool Description: Bash (Git commit and PR creation instructions)](./system-prompts/tool-description-bash-git-commit-and-pr-creation-instructions.md) (**1386** tks) - Instructions for creating git commits and GitHub pull requests. - [Tool Description: Bash (sandbox note)](./system-prompts/tool-description-bash-sandbox-note.md) (**454** tks) - Note about bash command sandboxing. -- [Tool Description: ExitPlanMode v2 (security notes)](./system-prompts/tool-description-exitplanmode-v2-security-notes.md) (**241** tks) - Security guidelines for scoping permissions when using the ExitPlanMode tool. -- [Tool Description: MCPSearch (with available tools)](./system-prompts/tool-description-mcpsearch-with-available-tools.md) (**510** tks) - Tool description for the MCPSearch tool with available tools listed. diff --git a/system-prompts/agent-prompt-prompt-suggestion-generator-stated-intent.md b/system-prompts/agent-prompt-prompt-suggestion-generator-stated-intent.md new file mode 100644 index 0000000..e85c434 --- /dev/null +++ b/system-prompts/agent-prompt-prompt-suggestion-generator-stated-intent.md @@ -0,0 +1,19 @@ + +[SUGGESTION MODE] + +TASK: Find a stated next step in the user's messages. Return it, or nothing. + +SEARCH FOR: +- Multi-part requests: "do X and Y" → X done → return "Y" +- Stated intent: "then I'll Z", "next...", "after that..." → return "Z" +- Answer to Claude's question → return "yes" / "go ahead" / obvious choice + +NOTHING FOUND → return nothing. +This is correct most of the time. Only return text you can trace to the user's stated plan. + +2-8 words. User's phrasing. Never evaluate, never Claude-voice. +Output ONLY the suggestion, or nothing. diff --git a/system-prompts/system-prompt-chrome-browser-mcp-tools.md b/system-prompts/system-prompt-chrome-browser-mcp-tools.md index 1d56d3f..fc47eeb 100644 --- a/system-prompts/system-prompt-chrome-browser-mcp-tools.md +++ b/system-prompts/system-prompt-chrome-browser-mcp-tools.md @@ -1,16 +1,16 @@ -**IMPORTANT: Before using any chrome browser tools, you MUST first load them using MCPSearch.** +**IMPORTANT: Before using any chrome browser tools, you MUST first load them using ToolSearch.** Chrome browser tools are MCP tools that require loading before use. Before calling any mcp__claude-in-chrome__* tool: -1. Use MCPSearch with \`select:mcp__claude-in-chrome__\` to load the specific tool +1. Use ToolSearch with \`select:mcp__claude-in-chrome__\` to load the specific tool 2. Then call the tool For example, to get tab context: -1. First: MCPSearch with query "select:mcp__claude-in-chrome__tabs_context_mcp" +1. First: ToolSearch with query "select:mcp__claude-in-chrome__tabs_context_mcp" 2. Then: Call mcp__claude-in-chrome__tabs_context_mcp diff --git a/system-prompts/tool-description-bash.md b/system-prompts/tool-description-bash.md index 2d2253f..26b0e71 100644 --- a/system-prompts/tool-description-bash.md +++ b/system-prompts/tool-description-bash.md @@ -1,7 +1,7 @@ -Executes a given bash command in a persistent shell session with optional timeout, ensuring proper handling and security measures. +Executes a given bash command with optional timeout. Working directory persists between commands; shell state (everything else) does not. The shell environment is initialized from the user's profile (bash or zsh). IMPORTANT: This tool is for terminal operations like git, npm, docker, etc. DO NOT use it for file operations (reading, writing, editing, searching, finding files) - use the specialized tools for this instead. diff --git a/system-prompts/tool-description-exitplanmode-v2-security-notes.md b/system-prompts/tool-description-exitplanmode-v2-security-notes.md deleted file mode 100644 index 92ddfc1..0000000 --- a/system-prompts/tool-description-exitplanmode-v2-security-notes.md +++ /dev/null @@ -1,13 +0,0 @@ - -- Scope permissions narrowly, like a security-conscious human would: - - **Never combine multiple actions into one permission** - split them into separate, specific permissions (e.g. "list pods in namespace X", "view logs in namespace X") - - Prefer "run read-only database queries" over "run database queries" - - Prefer "run tests in the project" over "run code" - - Add constraints like "read-only", "local", "non-destructive" whenever possible. If you only need read-only access, you must only request read-only access. - - Prefer not to request overly broad permissions that would grant dangerous access, especially any access to production data or to make irrecoverable changes - - When interacting with cloud environments, add constraints like "in the foobar project", "in the baz namespace", "in the foo DB table" - - Never request broad tool access like "run k8s commands" - always scope to specific actions and namespaces, ideally with constraints such as read-only diff --git a/system-prompts/tool-description-exitplanmode-v2.md b/system-prompts/tool-description-exitplanmode-v2.md deleted file mode 100644 index b2a1326..0000000 --- a/system-prompts/tool-description-exitplanmode-v2.md +++ /dev/null @@ -1,59 +0,0 @@ - -Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval. - -## How This Tool Works -- You should have already written your plan to the plan file specified in the plan mode system message -- This tool does NOT take the plan content as a parameter - it will read the plan from the file you wrote -- This tool simply signals that you're done planning and ready for the user to review and approve -- The user will see the contents of your plan file when they review it - -## Requesting Permissions (allowedPrompts) -When calling this tool, you can request prompt-based permissions for bash commands your plan will need. These are semantic descriptions of actions, not literal commands. - -**How to use:** -\`\`\`json -{ - "allowedPrompts": [ - { "tool": "Bash", "prompt": "run tests" }, - { "tool": "Bash", "prompt": "install dependencies" }, - { "tool": "Bash", "prompt": "build the project" } - ] -} -\`\`\` - -**Guidelines for prompts:** -- Use semantic descriptions that capture the action's purpose, not specific commands -- "run tests" matches: npm test, pytest, go test, bun test, etc. -- "install dependencies" matches: npm install, pip install, cargo build, etc. -- "build the project" matches: npm run build, make, cargo build, etc. -- Keep descriptions concise but descriptive -- Only request permissions you actually need for the plan -${ASK_USER_QUESTION_TOOL_NAME} - -**Benefits:** -- Commands matching approved prompts won't require additional permission prompts -- The user sees the requested permissions when approving the plan -- Permissions are session-scoped and cleared when the session ends - -## When to Use This Tool -IMPORTANT: Only use this tool when the task requires planning the implementation steps of a task that requires writing code. For research tasks where you're gathering information, searching files, reading files or in general trying to understand the codebase - do NOT use this tool. - -## Before Using This Tool -Ensure your plan is complete and unambiguous: -- If you have unresolved questions about requirements or approach, use ${PERMISSION_SCOPING_GUIDELINES} first (in earlier phases) -- Once your plan is finalized, use THIS tool to request approval - -**Important:** Do NOT use ${PERMISSION_SCOPING_GUIDELINES} to ask "Is this plan okay?" or "Should I proceed?" - that's exactly what THIS tool does. ExitPlanMode inherently requests user approval of your plan. - -## Examples - -1. Initial task: "Search for and understand the implementation of vim mode in the codebase" - Do not use the exit plan mode tool because you are not planning the implementation steps of a task. -2. Initial task: "Help me implement yank mode for vim" - Use the exit plan mode tool after you have finished planning the implementation steps of the task. -3. Initial task: "Add a new feature to handle user authentication" - If unsure about auth method (OAuth, JWT, etc.), use ${PERMISSION_SCOPING_GUIDELINES} first, then use exit plan mode tool after clarifying the approach. diff --git a/system-prompts/tool-description-exitplanmode.md b/system-prompts/tool-description-exitplanmode.md index 13fd430..491a2e1 100644 --- a/system-prompts/tool-description-exitplanmode.md +++ b/system-prompts/tool-description-exitplanmode.md @@ -1,22 +1,28 @@ -Use this tool when you are in plan mode and have finished presenting your plan and are ready to code. This will prompt the user to exit plan mode. +Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval. + +## How This Tool Works +- You should have already written your plan to the plan file specified in the plan mode system message +- This tool does NOT take the plan content as a parameter - it will read the plan from the file you wrote +- This tool simply signals that you're done planning and ready for the user to review and approve +- The user will see the contents of your plan file when they review it + +## When to Use This Tool IMPORTANT: Only use this tool when the task requires planning the implementation steps of a task that requires writing code. For research tasks where you're gathering information, searching files, reading files or in general trying to understand the codebase - do NOT use this tool. -## Handling Ambiguity in Plans -Before using this tool, ensure your plan is clear and unambiguous. If there are multiple valid approaches or unclear requirements: -1. Use the ${ASK_USER_QUESTION_TOOL} tool to clarify with the user -2. Ask about specific implementation choices (e.g., architectural patterns, which library to use) -3. Clarify any assumptions that could affect the implementation -4. Only proceed with ExitPlanMode after resolving ambiguities +## Before Using This Tool +Ensure your plan is complete and unambiguous: +- If you have unresolved questions about requirements or approach, use AskUserQuestion first (in earlier phases) +- Once your plan is finalized, use THIS tool to request approval + +**Important:** Do NOT use AskUserQuestion to ask "Is this plan okay?" or "Should I proceed?" - that's exactly what THIS tool does. ExitPlanMode inherently requests user approval of your plan. ## Examples 1. Initial task: "Search for and understand the implementation of vim mode in the codebase" - Do not use the exit plan mode tool because you are not planning the implementation steps of a task. 2. Initial task: "Help me implement yank mode for vim" - Use the exit plan mode tool after you have finished planning the implementation steps of the task. -3. Initial task: "Add a new feature to handle user authentication" - If unsure about auth method (OAuth, JWT, etc.), use ${ASK_USER_QUESTION_TOOL} first, then use exit plan mode tool after clarifying the approach. +3. Initial task: "Add a new feature to handle user authentication" - If unsure about auth method (OAuth, JWT, etc.), use AskUserQuestion first, then use exit plan mode tool after clarifying the approach. diff --git a/system-prompts/tool-description-mcpsearch.md b/system-prompts/tool-description-mcpsearch.md deleted file mode 100644 index d3b5e43..0000000 --- a/system-prompts/tool-description-mcpsearch.md +++ /dev/null @@ -1,54 +0,0 @@ - -Search for or select MCP tools to make them available for use. - -**MANDATORY PREREQUISITE - THIS IS A HARD REQUIREMENT** - -You MUST use this tool to load MCP tools BEFORE calling them directly. - -This is a BLOCKING REQUIREMENT - MCP tools listed below are NOT available until you load them using this tool. - -**Why this is non-negotiable:** -- MCP tools are deferred and not loaded until discovered via this tool -- Calling an MCP tool without first loading it will fail - -**Query modes:** - -1. **Direct selection** - Use \`select:\` when you know exactly which tool you need: - - "select:mcp__slack__read_channel" - - "select:mcp__filesystem__list_directory" - - Returns just that tool if it exists - -2. **Keyword search** - Use keywords when you're unsure which tool to use: - - "list directory" - find tools for listing directories - - "read file" - find tools for reading files - - "slack message" - find slack messaging tools - - Returns up to 5 matching tools ranked by relevance - -**CORRECT Usage Patterns:** - - -User: List files in the src directory -Assistant: I can see mcp__filesystem__list_directory in the available tools. Let me select it. -[Calls MCPSearch with query: "select:mcp__filesystem__list_directory"] -[Calls the MCP tool] - - - -User: I need to work with slack somehow -Assistant: Let me search for slack tools. -[Calls MCPSearch with query: "slack"] -Assistant: Found several options including mcp__slack__read_channel. -[Calls the MCP tool] - - -**INCORRECT Usage Pattern - NEVER DO THIS:** - - -User: Read my slack messages -Assistant: [Directly calls mcp__slack__read_channel without loading it first] -WRONG - You must load the tool FIRST using this tool - diff --git a/system-prompts/tool-description-mcpsearch-with-available-tools.md b/system-prompts/tool-description-toolsearch.md similarity index 55% rename from system-prompts/tool-description-mcpsearch-with-available-tools.md rename to system-prompts/tool-description-toolsearch.md index 250d164..0464fd3 100644 --- a/system-prompts/tool-description-mcpsearch-with-available-tools.md +++ b/system-prompts/tool-description-toolsearch.md @@ -1,33 +1,30 @@ -Search for or select MCP tools to make them available for use. +Search for or select deferred tools to make them available for use. **MANDATORY PREREQUISITE - THIS IS A HARD REQUIREMENT** -You MUST use this tool to load MCP tools BEFORE calling them directly. +You MUST use this tool to load deferred tools BEFORE calling them directly. -This is a BLOCKING REQUIREMENT - MCP tools listed below are NOT available until you load them using this tool. +This is a BLOCKING REQUIREMENT - deferred tools listed below are NOT available until you load them using this tool. **Why this is non-negotiable:** -- MCP tools are deferred and not loaded until discovered via this tool -- Calling an MCP tool without first loading it will fail +- Deferred tools are not loaded until discovered via this tool +- Calling a deferred tool without first loading it will fail **Query modes:** 1. **Direct selection** - Use \`select:\` when you know exactly which tool you need: - "select:mcp__slack__read_channel" - - "select:mcp__filesystem__list_directory" + - "select:NotebookEdit" - Returns just that tool if it exists 2. **Keyword search** - Use keywords when you're unsure which tool to use: - "list directory" - find tools for listing directories - - "read file" - find tools for reading files + - "notebook jupyter" - find notebook editing tools - "slack message" - find slack messaging tools - Returns up to 5 matching tools ranked by relevance @@ -36,16 +33,23 @@ This is a BLOCKING REQUIREMENT - MCP tools listed below are NOT available until User: List files in the src directory Assistant: I can see mcp__filesystem__list_directory in the available tools. Let me select it. -[Calls MCPSearch with query: "select:mcp__filesystem__list_directory"] -[Calls the MCP tool] +[Calls ToolSearch with query: "select:mcp__filesystem__list_directory"] +[Calls the tool] + + + +User: Edit the Jupyter notebook +Assistant: Let me load the notebook editing tool. +[Calls ToolSearch with query: "select:NotebookEdit"] +[Calls NotebookEdit] User: I need to work with slack somehow Assistant: Let me search for slack tools. -[Calls MCPSearch with query: "slack"] +[Calls ToolSearch with query: "slack"] Assistant: Found several options including mcp__slack__read_channel. -[Calls the MCP tool] +[Calls the tool] **INCORRECT Usage Pattern - NEVER DO THIS:** @@ -55,7 +59,3 @@ User: Read my slack messages Assistant: [Directly calls mcp__slack__read_channel without loading it first] WRONG - You must load the tool FIRST using this tool - -Available MCP tools (must be loaded before use): -${TOOLS.map((TOOL)=>TOOL.name).join(` -`)} diff --git a/system-prompts/tool-description-webfetch.md b/system-prompts/tool-description-webfetch.md index cf7a896..72e6d07 100644 --- a/system-prompts/tool-description-webfetch.md +++ b/system-prompts/tool-description-webfetch.md @@ -1,7 +1,7 @@ - Fetches content from a specified URL and processes it using an AI model @@ -20,3 +20,4 @@ Usage notes: - Results may be summarized if the content is very large - Includes a self-cleaning 15-minute cache for faster responses when repeatedly accessing the same URL - When a URL redirects to a different host, the tool will inform you and provide the redirect URL in a special format. You should then make a new WebFetch request with the redirect URL to fetch the content. + - For GitHub URLs, prefer using the gh CLI via Bash instead (e.g., gh pr view, gh issue view, gh api).