enhance todo tool prompt
This commit is contained in:
@@ -111,19 +111,6 @@ OPERATIONAL PRINCIPLES:
|
||||
- Try multiple approaches simultaneously - don't wait for one to fail
|
||||
- Continuously research payloads, bypasses, and exploitation techniques with the web_search tool; integrate findings into automated sprays and validation
|
||||
|
||||
TASK TRACKING:
|
||||
- USE THE TODO TOOL EXTENSIVELY - this is critical for staying organized and focused
|
||||
- Each subagent has their own INDEPENDENT todo list - your todos are private to you
|
||||
- KEEP THE LIST SHORT-HORIZON: track only the next few concrete steps (3-6 max), not long-term goals.
|
||||
- REWRITE TODOS AS YOU LEARN: update, trim, or reprioritize the list whenever plans change or tasks finish.
|
||||
- At the START of any task: Create todos to break down your next steps into clear actions
|
||||
- BEFORE starting a task: Mark it as "in_progress" - this shows what you're actively doing
|
||||
- AFTER completing a task: Mark it as "done" immediately - don't wait
|
||||
- When you discover new tasks: Add them as todos right away and reprioritize; avoid dumping the whole project plan upfront
|
||||
- ALWAYS follow this workflow: create → in_progress → done, iterating frequently
|
||||
- A well-maintained todo list prevents going in circles, forgetting tasks, and losing focus
|
||||
- If you're unsure what to do next: Check your todo list first
|
||||
|
||||
EFFICIENCY TACTICS:
|
||||
- Automate with Python scripts for complex workflows and repetitive inputs/tasks
|
||||
- Batch similar operations together
|
||||
|
||||
@@ -1,32 +1,29 @@
|
||||
<tools>
|
||||
<important>
|
||||
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.
|
||||
The todo tool is available for organizing complex tasks when needed. Each subagent has their own
|
||||
separate todo list - your todos are private to you and do not interfere with other agents' todos.
|
||||
|
||||
IMPORTANT: Each subagent has their own separate todo list. Your todos are private to you and
|
||||
do not interfere with other agents' todos. Use this to your advantage.
|
||||
WHEN TO USE TODOS:
|
||||
- Planning complex multi-step operations
|
||||
- Tracking multiple parallel workstreams
|
||||
- When you need to remember tasks to return to later
|
||||
- Organizing large-scope assessments with many components
|
||||
|
||||
WORKFLOW - Follow this for EVERY task:
|
||||
1. Keep the list short-horizon: track only the next few concrete steps (3-6 max), not long-term goals.
|
||||
2. Create/update todos as you learn new info; drop or rewrite items when plans change.
|
||||
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.
|
||||
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.
|
||||
5. AFTER completing tasks: Mark them "done" together using one mark_todo_done call with `todo_ids`.
|
||||
6. When you discover new tasks: Add them in one create_todo call (use the `todos` list) and re-prioritize; avoid giant upfront lists.
|
||||
WHEN NOT NEEDED:
|
||||
- Simple, straightforward tasks
|
||||
- Linear workflows where progress is obvious
|
||||
- Short tasks that can be completed quickly
|
||||
|
||||
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.
|
||||
|
||||
A well-maintained todo list prevents you from going in circles, forgetting important tasks,
|
||||
or losing track of your progress. USE IT CONSTANTLY.
|
||||
If you do use todos, batch operations together to minimize tool calls.
|
||||
</important>
|
||||
|
||||
<tool name="create_todo">
|
||||
<description>Create a new todo item to track tasks, goals, and progress. USE THIS FREQUENTLY.</description>
|
||||
<details>Use this tool liberally to create actionable items. Break down complex tasks into smaller,
|
||||
manageable todos. Each subagent maintains their own independent todo list - your todos are yours alone.
|
||||
<description>Create a new todo item to track tasks, goals, and progress.</description>
|
||||
<details>Use this tool when you need to track multiple tasks or plan complex operations.
|
||||
Each subagent maintains their own independent todo list - your todos are yours alone.
|
||||
|
||||
Create todos at the start of work to plan your approach, add new ones as you discover tasks,
|
||||
and mark them done as you progress. This keeps you focused, prevents you from forgetting tasks,
|
||||
and provides a clear record of what you've accomplished.</details>
|
||||
Useful for breaking down complex tasks into smaller, manageable items when the workflow
|
||||
is non-trivial or when you need to track progress across multiple components.</details>
|
||||
<parameters>
|
||||
<parameter name="title" type="string" required="false">
|
||||
<description>Short, actionable title for the todo (e.g., "Test login endpoint for SQL injection")</description>
|
||||
@@ -74,8 +71,8 @@
|
||||
</tool>
|
||||
|
||||
<tool name="list_todos">
|
||||
<description>List all todos with optional filtering by status or priority. CHECK THIS OFTEN.</description>
|
||||
<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.
|
||||
<description>List all todos with optional filtering by status or priority.</description>
|
||||
<details>Use this when you need to check your current todos, get fresh IDs, or reprioritize.
|
||||
The list is sorted: done first, then in_progress, then pending. Within each status, sorted by priority (critical > high > normal > low).
|
||||
Each subagent has their own independent todo list.</details>
|
||||
<parameters>
|
||||
@@ -107,13 +104,13 @@
|
||||
</tool>
|
||||
|
||||
<tool name="update_todo">
|
||||
<description>Update one or multiple todo items. ALWAYS prefer bulk updates in a single call.</description>
|
||||
<description>Update one or multiple todo items. Prefer bulk updates in a single call when updating multiple items.</description>
|
||||
<parameters>
|
||||
<parameter name="todo_id" type="string" required="false">
|
||||
<description>ID of a single todo to update (for simple updates)</description>
|
||||
</parameter>
|
||||
<parameter name="updates" type="string" required="false">
|
||||
<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>
|
||||
<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>
|
||||
</parameter>
|
||||
<parameter name="title" type="string" required="false">
|
||||
<description>New title (used with todo_id)</description>
|
||||
@@ -146,8 +143,8 @@
|
||||
</tool>
|
||||
|
||||
<tool name="mark_todo_done">
|
||||
<description>Mark one or multiple todos as completed in a single call. DO THIS IN BATCHES after finishing a small group of tasks.</description>
|
||||
<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>
|
||||
<description>Mark one or multiple todos as completed in a single call.</description>
|
||||
<details>Mark todos as done after completing them. Group multiple completions into one call using todo_ids when possible.</details>
|
||||
<parameters>
|
||||
<parameter name="todo_id" type="string" required="false">
|
||||
<description>ID of a single todo to mark as done</description>
|
||||
|
||||
Reference in New Issue
Block a user