|
1 | 1 | <tools> |
2 | 2 | <important> |
3 | | - YOU MUST USE THE TODO TOOL EXTENSIVELY — AND DO SO IN BATCHES. Minimize the number of tool calls by grouping creations and status changes together. |
| 3 | + The todo tool is available for organizing complex tasks when needed. Each subagent has their own |
| 4 | + separate todo list - your todos are private to you and do not interfere with other agents' todos. |
4 | 5 |
|
5 | | - IMPORTANT: Each subagent has their own separate todo list. Your todos are private to you and |
6 | | - do not interfere with other agents' todos. Use this to your advantage. |
| 6 | + WHEN TO USE TODOS: |
| 7 | + - Planning complex multi-step operations |
| 8 | + - Tracking multiple parallel workstreams |
| 9 | + - When you need to remember tasks to return to later |
| 10 | + - Organizing large-scope assessments with many components |
7 | 11 |
|
8 | | - WORKFLOW - Follow this for EVERY task: |
9 | | - 1. Keep the list short-horizon: track only the next few concrete steps (3-6 max), not long-term goals. |
10 | | - 2. Create/update todos as you learn new info; drop or rewrite items when plans change. |
11 | | - 3. Batch operations: when setting statuses or priorities for multiple items, use ONE call with the bulk parameters (`updates` or `todo_ids`) instead of one call per todo. |
12 | | - 4. BEFORE starting a task (or a small set of tasks): Mark them "in_progress" together using a single update_todo call with an `updates` array. |
13 | | - 5. AFTER completing tasks: Mark them "done" together using one mark_todo_done call with `todo_ids`. |
14 | | - 6. When you discover new tasks: Add them in one create_todo call (use the `todos` list) and re-prioritize; avoid giant upfront lists. |
| 12 | + WHEN NOT NEEDED: |
| 13 | + - Simple, straightforward tasks |
| 14 | + - Linear workflows where progress is obvious |
| 15 | + - Short tasks that can be completed quickly |
15 | 16 |
|
16 | | - ALWAYS mark the current task(s) as in_progress before working on them. This shows what you're actively doing. Then mark them done when finished. Do these status updates in batches to avoid excessive tool calls. |
17 | | - |
18 | | - A well-maintained todo list prevents you from going in circles, forgetting important tasks, |
19 | | - or losing track of your progress. USE IT CONSTANTLY. |
| 17 | + If you do use todos, batch operations together to minimize tool calls. |
20 | 18 | </important> |
21 | 19 |
|
22 | 20 | <tool name="create_todo"> |
23 | | - <description>Create a new todo item to track tasks, goals, and progress. USE THIS FREQUENTLY.</description> |
24 | | - <details>Use this tool liberally to create actionable items. Break down complex tasks into smaller, |
25 | | - manageable todos. Each subagent maintains their own independent todo list - your todos are yours alone. |
| 21 | + <description>Create a new todo item to track tasks, goals, and progress.</description> |
| 22 | + <details>Use this tool when you need to track multiple tasks or plan complex operations. |
| 23 | + Each subagent maintains their own independent todo list - your todos are yours alone. |
26 | 24 |
|
27 | | - Create todos at the start of work to plan your approach, add new ones as you discover tasks, |
28 | | - and mark them done as you progress. This keeps you focused, prevents you from forgetting tasks, |
29 | | - and provides a clear record of what you've accomplished.</details> |
| 25 | + Useful for breaking down complex tasks into smaller, manageable items when the workflow |
| 26 | + is non-trivial or when you need to track progress across multiple components.</details> |
30 | 27 | <parameters> |
31 | 28 | <parameter name="title" type="string" required="false"> |
32 | 29 | <description>Short, actionable title for the todo (e.g., "Test login endpoint for SQL injection")</description> |
|
74 | 71 | </tool> |
75 | 72 |
|
76 | 73 | <tool name="list_todos"> |
77 | | - <description>List all todos with optional filtering by status or priority. CHECK THIS OFTEN.</description> |
78 | | - <details>Use this when you need fresh IDs or to reprioritize. Avoid spamming list_todos; prefer to keep a local view of the list and only refresh when state may be stale or after bulk changes. |
| 74 | + <description>List all todos with optional filtering by status or priority.</description> |
| 75 | + <details>Use this when you need to check your current todos, get fresh IDs, or reprioritize. |
79 | 76 | The list is sorted: done first, then in_progress, then pending. Within each status, sorted by priority (critical > high > normal > low). |
80 | 77 | Each subagent has their own independent todo list.</details> |
81 | 78 | <parameters> |
|
107 | 104 | </tool> |
108 | 105 |
|
109 | 106 | <tool name="update_todo"> |
110 | | - <description>Update one or multiple todo items. ALWAYS prefer bulk updates in a single call.</description> |
| 107 | + <description>Update one or multiple todo items. Prefer bulk updates in a single call when updating multiple items.</description> |
111 | 108 | <parameters> |
112 | 109 | <parameter name="todo_id" type="string" required="false"> |
113 | 110 | <description>ID of a single todo to update (for simple updates)</description> |
114 | 111 | </parameter> |
115 | 112 | <parameter name="updates" type="string" required="false"> |
116 | | - <description>Bulk update multiple todos at once. JSON array of objects with todo_id and fields to update: [{"todo_id": "abc", "status": "done"}, {"todo_id": "def", "priority": "high"}]. USE THIS INSTEAD OF multiple single-item calls.</description> |
| 113 | + <description>Bulk update multiple todos at once. JSON array of objects with todo_id and fields to update: [{"todo_id": "abc", "status": "done"}, {"todo_id": "def", "priority": "high"}].</description> |
117 | 114 | </parameter> |
118 | 115 | <parameter name="title" type="string" required="false"> |
119 | 116 | <description>New title (used with todo_id)</description> |
|
146 | 143 | </tool> |
147 | 144 |
|
148 | 145 | <tool name="mark_todo_done"> |
149 | | - <description>Mark one or multiple todos as completed in a single call. DO THIS IN BATCHES after finishing a small group of tasks.</description> |
150 | | - <details>Mark todos as done right after completing them - group multiple completions into one call using todo_ids. Avoid one-call-per-item to save tool calls. This keeps your list accurate and gives you a clear picture of progress.</details> |
| 146 | + <description>Mark one or multiple todos as completed in a single call.</description> |
| 147 | + <details>Mark todos as done after completing them. Group multiple completions into one call using todo_ids when possible.</details> |
151 | 148 | <parameters> |
152 | 149 | <parameter name="todo_id" type="string" required="false"> |
153 | 150 | <description>ID of a single todo to mark as done</description> |
|
0 commit comments