Tasks
The spine of a session: states, dependencies, and what blocked actually means.
Actionable breakdown of a feature's PRD.
Scope
Tasks belong to a feature. A feature can have many tasks. A task can be moved to a different feature.
Fields
title,descriptionstatus- todo / inProgress / donepriority- low / medium / highassignee- optional string (who's working on it)blockedBy- array of task UUIDs that must complete firstorder- position in the listcompletedAt- auto-set when status flips to done
The "NEXT" task
get_tasks highlights the first unblocked todo task - its blockedBy list contains only done tasks.
This gives the agent a deterministic "what do I work on next?" answer without needing to re-read the whole PRD.
In the UI, the NEXT task shows a blue NEXT badge above its title.
Dependencies
When tasks are created via create_tasks, dependencies are given as 0-based array indices (blocked_by_indices). The tool resolves them to UUIDs after creating all tasks.
Adding dependencies later:
- "Task X is blocked by task Y" → the agent adjusts dependencies
Managing
In the UI:
- Each task row has an X button to delete
- Right-click → Delete task
Via natural language:
- "Mark task X as done" → status change, sets
completedAt - "Move all these tasks to [other feature]" → reassigns
featureId - "Delete this task"
- "Assign X to me"
- "What's next?" → shows NEXT task
When a feature is deleted
All its tasks cascade-delete. No orphans.