diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap index 632273dea0..54e1ff6dd9 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/architect-mode-prompt.snap @@ -371,30 +371,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -420,20 +416,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap index 09b6b04348..d85cbdcf44 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/ask-mode-prompt.snap @@ -268,30 +268,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -317,20 +313,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap index b1fdcc2e32..ab918f8c03 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-disabled.snap @@ -370,30 +370,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -419,20 +415,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap index 7ca32b80a1..d090d02917 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/mcp-server-creation-enabled.snap @@ -420,30 +420,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -469,20 +465,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap index 7dce6219f3..1e5ce40e01 100644 --- a/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap +++ b/src/core/prompts/__tests__/__snapshots__/add-custom-instructions/partial-reads-enabled.snap @@ -376,30 +376,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -425,20 +421,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap index 632273dea0..54e1ff6dd9 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/consistent-system-prompt.snap @@ -371,30 +371,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -420,20 +416,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap index 419049609e..627e2e836a 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-computer-use-support.snap @@ -424,30 +424,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -473,20 +469,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap index 632273dea0..54e1ff6dd9 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-false.snap @@ -371,30 +371,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -420,20 +416,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap index 7a60f1d403..1402ed0b8b 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-true.snap @@ -459,30 +459,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -508,20 +504,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap index 632273dea0..54e1ff6dd9 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-diff-enabled-undefined.snap @@ -371,30 +371,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -420,20 +416,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap index 191816f180..7b74497f43 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-different-viewport-size.snap @@ -424,30 +424,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -473,20 +469,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap index 7ca32b80a1..d090d02917 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-mcp-hub-provided.snap @@ -420,30 +420,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -469,20 +465,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap index 632273dea0..54e1ff6dd9 100644 --- a/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap +++ b/src/core/prompts/__tests__/__snapshots__/system-prompt/with-undefined-mcp-hub.snap @@ -371,30 +371,26 @@ Example: ## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -420,20 +416,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. diff --git a/src/core/prompts/tools/update-todo-list.ts b/src/core/prompts/tools/update-todo-list.ts index 30100617df..5a0c41fdb3 100644 --- a/src/core/prompts/tools/update-todo-list.ts +++ b/src/core/prompts/tools/update-todo-list.ts @@ -7,30 +7,26 @@ export function getUpdateTodoListDescription(args?: ToolArgs): string { return `## update_todo_list **Description:** -Replace the entire TODO list with an updated checklist reflecting the current state. Always provide the full list; the system will overwrite the previous one. This tool is designed for step-by-step task tracking, allowing you to confirm completion of each step before updating, update multiple task statuses at once (e.g., mark one as completed and start the next), and dynamically add new todos discovered during long or complex tasks. +Maintain a single authoritative, ordered checklist for the task. Always send the full list (the system replaces it entirely). Default to using this tool for any task with more than one step. Update it after each meaningful change: completing an item, starting the next, discovering a new item, or becoming blocked. **Checklist Format:** -- Use a single-level markdown checklist (no nesting or subtasks). -- List todos in the intended execution order. +- Use a single-level markdown checklist (no nesting). +- List todos in execution order. - Status options: - - [ ] Task description (pending) - - [x] Task description (completed) - - [-] Task description (in progress) + - [ ] Task description (pending) + - [x] Task description (completed) + - [-] Task description (in progress) **Status Rules:** -- [ ] = pending (not started) +- [ ] = pending - [x] = completed (fully finished, no unresolved issues) -- [-] = in_progress (currently being worked on) +- [-] = in_progress (currently being worked on or temporarily blocked) **Core Principles:** -- Before updating, always confirm which todos have been completed since the last update. -- You may update multiple statuses in a single update (e.g., mark the previous as completed and the next as in progress). -- When a new actionable item is discovered during a long or complex task, add it to the todo list immediately. -- Do not remove any unfinished todos unless explicitly instructed. -- Always retain all unfinished tasks, updating their status as needed. -- Only mark a task as completed when it is fully accomplished (no partials, no unresolved dependencies). -- If a task is blocked, keep it as in_progress and add a new todo describing what needs to be resolved. -- Remove tasks only if they are no longer relevant or if the user requests deletion. +- Keep all unfinished items; do not drop them. +- You may update multiple statuses at once. +- If blocked, keep [-] and add a todo describing the blocker. +- Remove items only if no longer relevant or explicitly requested. **Usage Example:** @@ -56,20 +52,16 @@ Replace the entire TODO list with an updated checklist reflecting the current st **When to Use:** -- The task is complicated or involves multiple steps or requires ongoing tracking. -- You need to update the status of several todos at once. -- New actionable items are discovered during task execution. -- The user requests a todo list or provides multiple tasks. -- The task is complex and benefits from clear, stepwise progress tracking. +- Multi-step or evolving tasks +- Tracking progress across messages +- When a TODO list is requested **When NOT to Use:** -- There is only a single, trivial task. -- The task can be completed in one or two simple steps. -- The request is purely conversational or informational. +- Truly single-step, trivial actions only. **Task Management Guidelines:** -- Mark task as completed immediately after all work of the current task is done. -- Start the next task by marking it as in_progress. +- Mark a task completed as soon as it is fully done. +- Start the next task by marking it [-]. - Add new todos as soon as they are identified. - Use clear, descriptive task names. `