enhance todo tool prompt

This commit is contained in:
0xallam
2025-12-15 10:26:59 -08:00
parent d649a7c70b
commit 78b6c26652
2 changed files with 23 additions and 39 deletions

View File

@@ -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

View File

@@ -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>