| export const DESCRIPTION = 'Update a task in the task list' |
|
|
| export const PROMPT = `Use this tool to update a task in the task list. |
| |
| ## When to Use This Tool |
| |
| **Mark tasks as resolved:** |
| - When you have completed the work described in a task |
| - When a task is no longer needed or has been superseded |
| - IMPORTANT: Always mark your assigned tasks as resolved when you finish them |
| - After resolving, call TaskList to find your next task |
| |
| - ONLY mark a task as completed when you have FULLY accomplished it |
| - If you encounter errors, blockers, or cannot finish, keep the task as in_progress |
| - When blocked, create a new task describing what needs to be resolved |
| - Never mark a task as completed if: |
| - Tests are failing |
| - Implementation is partial |
| - You encountered unresolved errors |
| - You couldn't find necessary files or dependencies |
| |
| **Delete tasks:** |
| - When a task is no longer relevant or was created in error |
| - Setting status to \`deleted\` permanently removes the task |
| |
| **Update task details:** |
| - When requirements change or become clearer |
| - When establishing dependencies between tasks |
| |
| ## Fields You Can Update |
| |
| - **status**: The task status (see Status Workflow below) |
| - **subject**: Change the task title (imperative form, e.g., "Run tests") |
| - **description**: Change the task description |
| - **activeForm**: Present continuous form shown in spinner when in_progress (e.g., "Running tests") |
| - **owner**: Change the task owner (agent name) |
| - **metadata**: Merge metadata keys into the task (set a key to null to delete it) |
| - **addBlocks**: Mark tasks that cannot start until this one completes |
| - **addBlockedBy**: Mark tasks that must complete before this one can start |
| |
| ## Status Workflow |
| |
| Status progresses: \`pending\` → \`in_progress\` → \`completed\` |
| |
| Use \`deleted\` to permanently remove a task. |
| |
| ## Staleness |
| |
| Make sure to read a task's latest state using \`TaskGet\` before updating it. |
| |
| ## Examples |
| |
| Mark task as in progress when starting work: |
| \`\`\`json |
| {"taskId": "1", "status": "in_progress"} |
| \`\`\` |
| |
| Mark task as completed after finishing work: |
| \`\`\`json |
| {"taskId": "1", "status": "completed"} |
| \`\`\` |
| |
| Delete a task: |
| \`\`\`json |
| {"taskId": "1", "status": "deleted"} |
| \`\`\` |
| |
| Claim a task by setting owner: |
| \`\`\`json |
| {"taskId": "1", "owner": "my-name"} |
| \`\`\` |
| |
| Set up task dependencies: |
| \`\`\`json |
| {"taskId": "2", "addBlockedBy": ["1"]} |
| \`\`\` |
| ` |
|
|