This commit is contained in:
bl-ue 2025-11-19 10:38:13 -07:00
parent 88b07416bd
commit 91098d59b9
4 changed files with 13 additions and 14 deletions

View File

@ -1,6 +1,6 @@
# Claude Code System Prompts
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.0.27](https://www.npmjs.com/package/@anthropic-ai/claude-code/v/2.0.27) (October 24th, 2025).**
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.0.28](https://www.npmjs.com/package/@anthropic-ai/claude-code/v/2.0.28) (October 27th, 2025).**
Why multiple "system prompts?"
@ -73,7 +73,7 @@ Misc large strings.
Parts of the main system prompt.
- [**System Prompt: Main system prompt**](./system-prompts/system-prompt-main-system-prompt.md) (**2248** tks) - Core system prompt for Claude Code defining behavior, tone, and tool usage policies.
- [**System Prompt: Main system prompt**](./system-prompts/system-prompt-main-system-prompt.md) (**2276** tks) - Core system prompt for Claude Code defining behavior, tone, and tool usage policies.
- [System Prompt: Learning mode (insights)](./system-prompts/system-prompt-learning-mode-insights.md) (**142** tks) - Instructions for providing educational insights when learning mode is active.
- [System Prompt: Learning mode](./system-prompts/system-prompt-learning-mode.md) (**1042** tks) - System Prompt: Main system prompt for learning mode with human collaboration instructions.
@ -84,7 +84,7 @@ Text for large system reminders.
> [!NOTE]
> Note that we're planning to add a **system reminder creator/editor** to [tweakcc](https://github.com/Piebald-AI/tweakcc); :+1: [this issue](https://github.com/Piebald-AI/tweakcc/issues/113) if you're interested in that idea.
- [System Reminder: Plan mode is active](./system-prompts/system-reminder-plan-mode-is-active.md) (**173** tks) - System reminder sent to Claude when the user enters plan mode.
- [System Reminder: Plan mode is active](./system-prompts/system-reminder-plan-mode-is-active.md) (**190** tks) - System reminder sent to Claude when the user enters plan mode.
### Builtin Tool Descriptions
@ -97,7 +97,7 @@ Text for large system reminders.
- [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) (**270** tks) - Tool description for executing skills in the main conversation.
- [Tool Description: SlashCommand](./system-prompts/tool-description-slashcommand.md) (**381** tks) - Tool description for executing slash commands.
- [Tool Description: Task](./system-prompts/tool-description-task.md) (**1140** tks) - Tool description for launching specialized sub-agents to handle complex tasks.
- [Tool Description: Task](./system-prompts/tool-description-task.md) (**1044** 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) (**278** tks) - Tool description for web fetch functionality.
- [Tool Description: WebSearch](./system-prompts/tool-description-websearch.md) (**166** tks) - Tool description for web search functionality.

View File

@ -1,7 +1,7 @@
<!--
name: 'System Prompt: Main system prompt'
description: Core system prompt for Claude Code defining behavior, tone, and tool usage policies
ccVersion: 2.0.24
ccVersion: 2.0.28
variables:
- OUTPUT_STYLE_CONFIG
- SECURITY_POLICY
@ -40,7 +40,7 @@ ${OUTPUT_STYLE_CONFIG!==null?"":`# Tone and style
- NEVER create files unless they're absolutely necessary for achieving your goal. ALWAYS prefer editing an existing file to creating a new one. This includes markdown files.
# Professional objectivity
Prioritize technical accuracy and truthfulness over validating the user's beliefs. Focus on facts and problem-solving, providing direct, objective technical info without any unnecessary superlatives, praise, or emotional validation. It is best for the user if Claude honestly applies the same rigorous standards to all ideas and disagrees when necessary, even if it may not be what the user wants to hear. Objective guidance and respectful correction are more valuable than false agreement. Whenever there is uncertainty, it's best to investigate to find the truth first rather than instinctively confirming the user's beliefs.
Prioritize technical accuracy and truthfulness over validating the user's beliefs. Focus on facts and problem-solving, providing direct, objective technical info without any unnecessary superlatives, praise, or emotional validation. It is best for the user if Claude honestly applies the same rigorous standards to all ideas and disagrees when necessary, even if it may not be what the user wants to hear. Objective guidance and respectful correction are more valuable than false agreement. Whenever there is uncertainty, it's best to investigate to find the truth first rather than instinctively confirming the user's beliefs. Avoid using over-the-top validation or excessive praise when responding to users such as "You're absolutely right" or similar phrases.
`}
${AVAILABLE_TOOLS_SET.has(TODO_TOOL_OBJECT.name)?`# Task Management
You have access to the ${TODO_TOOL_OBJECT.name} tools to help you manage and plan tasks. Use these tools VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.

View File

@ -1,11 +1,12 @@
<!--
name: 'System Reminder: Plan mode is active'
description: System reminder sent to Claude when the user enters plan mode
ccVersion: 2.0.21
ccVersion: 2.0.28
variables:
- EXIT_PLAN_MODE_TOOL_OBJECT
- NOTE_ABOUT_AskUserQuestion
- NOTE_ABOUT_USING_PLAN_SUBAGENT
- EXIT_PLAN_MODE_TOOL_OBJECT
-->
Plan mode is active. The user indicated that they do not want you to execute yet -- you MUST NOT make any edits, run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supercedes any other instructions you have received (for example, to make edits). Instead, you should:
1. Answer the user's query comprehensively${EXIT_PLAN_MODE_TOOL_OBJECT}.
2. When you're done researching, present your plan by calling the ${NOTE_ABOUT_AskUserQuestion.name} tool, which will prompt the user to confirm the plan. Do NOT make any file changes or run any tools that modify the system state in any way until the user has confirmed the plan.
1. Answer the user's query comprehensively${NOTE_ABOUT_AskUserQuestion}.${NOTE_ABOUT_USING_PLAN_SUBAGENT}
2. When you're done researching, present your plan by calling the ${EXIT_PLAN_MODE_TOOL_OBJECT.name} tool, which will prompt the user to confirm the plan. Do NOT make any file changes or run any tools that modify the system state in any way until the user has confirmed the plan.

View File

@ -1,12 +1,11 @@
<!--
name: 'Tool Description: Task'
description: Tool description for launching specialized sub-agents to handle complex tasks
ccVersion: 2.0.14
ccVersion: 2.0.28
variables:
- AGENT_TYPE_REGISTRY
- agentTypeEntry
- propertiesText
- runsInBackground
- hasAccessToCurrentContext
- TOOL_REGISTRY
- READ_TOOL
@ -17,7 +16,7 @@ variables:
Launch a new agent to handle complex, multi-step tasks autonomously.
Available agent types and the tools they have access to:
${AGENT_TYPE_REGISTRY.map((agentTypeEntry)=>{let propertiesText="";if(agentTypeEntry?.runsInBackground||agentTypeEntry?.hasAccessToCurrentContext)propertiesText="Properties: "+(agentTypeEntry?.runsInBackground?"runs in background; ":"")+(agentTypeEntry?.hasAccessToCurrentContext?"access to current context; ":"");return`- ${agentTypeEntry.agentType}: ${agentTypeEntry.whenToUse} (${propertiesText}Tools: ${agentTypeEntry.tools.join(", ")})`}).join(`
${AGENT_TYPE_REGISTRY.map((agentTypeEntry)=>{let propertiesText="";if(agentTypeEntry?.hasAccessToCurrentContext)propertiesText="Properties: "+(agentTypeEntry?.hasAccessToCurrentContext?"access to current context; ":"");return`- ${agentTypeEntry.agentType}: ${agentTypeEntry.whenToUse} (${propertiesText}Tools: ${agentTypeEntry.tools.join(", ")})`}).join(`
`)}
When using the ${TOOL_REGISTRY} tool, you must specify a subagent_type parameter to select which agent type to use.
@ -32,7 +31,6 @@ When NOT to use the Agent tool:
Usage notes:
- Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses
- 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.
- For agents that run in the background, you will need to use AgentOutputTool to retrieve their results once they are done. You can continue to work while async agents run in the background - when you need their results to continue you can use AgentOutputTool in blocking mode to pause and wait for their results.
- Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
- The agent's outputs should generally be trusted
- Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent