---
name: done-task
description: Mark a Taskwarrior task as done. Finds task by ID or keyword search, runs `task <id> done`, and signals the dispatcher status file if the task was dispatcher-managed. Use when user says "mark done", "move to done", "complete task", "close task", or "task is finished" without other context implying a different system.
---

# done-task

## Quick start

```bash
# By ID
task <id> done

# Signal dispatcher (if task was dispatcher-managed)
echo DONE > /tmp/task-dispatcher/<id>.status
```

## Workflow

1. **Identify the task**
   - If user gives an ID: use it directly
   - If user gives keywords: run `task list | grep -i "<keyword>"` to find ID
   - If ambiguous: show matches and ask

2. **Mark done**
   ```bash
   task <id> done
   ```

3. **Signal dispatcher** (only if task was spawned by dispatcher)
   ```bash
   # Check if a status file exists first
   ls /tmp/task-dispatcher/<id>.status 2>/dev/null && echo DONE > /tmp/task-dispatcher/<id>.status
   ```

4. Confirm to user: task ID, title, done.

## Notes

- `task done` is permanent — confirm if user seems unsure
- Dispatcher auto-calls `task done` on completion; only run manually if task was done outside the pipeline
- To pull a task back before dispatch: `task <id> modify -ready` (not done)
