1Creates and manages a structured task list for tracking progress on complex, multi-step coding tasks.
2
3<when_to_use>
4Use this tool proactively in these scenarios:
5
6- Complex multi-step tasks requiring 3+ distinct steps or actions
7- Non-trivial tasks requiring careful planning or multiple operations
8- User explicitly requests todo list management
9- User provides multiple tasks (numbered or comma-separated list)
10- After receiving new instructions to capture requirements
11- When starting work on a task (mark as in_progress BEFORE beginning)
12- After completing a task (mark completed and add new follow-up tasks)
13</when_to_use>
14
15<when_not_to_use>
16Skip this tool when:
17
18- Single, straightforward task
19- Trivial task with no organizational benefit
20- Task completable in less than 3 trivial steps
21- Purely conversational or informational request
22</when_not_to_use>
23
24<task_states>
25- **pending**: Task not yet started
26- **in_progress**: Currently working on (limit to ONE task at a time)
27- **completed**: Task finished successfully
28
29**IMPORTANT**: Each task requires two forms:
30- **content**: Imperative form describing what needs to be done (e.g., "Run tests", "Build the project")
31- **active_form**: Present continuous form shown during execution (e.g., "Running tests", "Building the project")
32</task_states>
33
34<task_management>
35- Update task status in real-time as you work
36- Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
37- Exactly ONE task must be in_progress at any time (not less, not more)
38- Complete current tasks before starting new ones
39- Remove tasks that are no longer relevant from the list entirely
40</task_management>
41
42<completion_requirements>
43ONLY mark a task as completed when you have FULLY accomplished it.
44
45Never mark completed if:
46- Tests are failing
47- Implementation is partial
48- You encountered unresolved errors
49- You couldn't find necessary files or dependencies
50
51If blocked:
52- Keep task as in_progress
53- Create new task describing what needs to be resolved
54</completion_requirements>
55
56<task_breakdown>
57- Create specific, actionable items
58- Break complex tasks into smaller, manageable steps
59- Use clear, descriptive task names
60- Always provide both content and active_form
61</task_breakdown>
62
63<examples>
64✅ Good task:
65```json
66{
67 "content": "Implement user authentication with JWT tokens",
68 "status": "in_progress",
69 "active_form": "Implementing user authentication with JWT tokens"
70}
71```
72
73❌ Bad task (missing active_form):
74```json
75{
76 "content": "Fix bug",
77 "status": "pending"
78}
79```
80</examples>
81
82<output_behavior>
83**NEVER** print or list todos in your response text. The user sees the todo list in real-time in the UI.
84</output_behavior>
85
86<tips>
87- When in doubt, use this tool - being proactive demonstrates attentiveness
88- One task in_progress at a time keeps work focused
89- Update immediately after state changes for accurate tracking
90</tips>