Change task status
transitionMove a task to a new status along the fixed workflow table, enforcing rules like assignee, summary, and blockers before allowing the change.
Instructions
Moves a task to another status along the fixed transition table.
Refusals: leaving in_progress without a summary filed since the last entry
into it — summary_required; entering in_progress without an assignee —
assignee_required, by anyone but the assignee — assignee_mismatch (assignee
and caller signature in details), with an open blocker — task_blocked, with
an unanswered blocking question — task_has_open_blocking_questions (question
numbers in details.questions); open with incomplete sections —
task_sections_incomplete; cancelled with open children —
task_has_unclosed_children; done — closing_not_a_transition, since a task
is closed by close_task; a move outside the table — transition_not_allowed,
the allowed targets in details.allowed.
A task waiting in open stays there when its carrier closes: neither an answer
nor a closed blocker moves it, and it becomes a candidate again with no
status_changed entry. Each entry into in_progress starts a new pass of the
task.
cancelled takes no verdicts. It clears the blocked feature of the tasks this
one blocked (blocks), with no entry in their cases.
The response names the new status and version and the number of the filed
status_changed entry.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target status | |
| key | Yes | Task key `PROJECT-N`, case-insensitive; a previous key of a moved task addresses it as well. An unknown key is refused with `task_not_found` | |
| reason | No | Why the task moves. Required for any step back along `backlog < open < in_progress < done` and for `cancelled` (`transition_reason_required` otherwise), optional elsewhere. Filed in the `status_changed` entry as text only: a wait is held by its carrier, an open `blocking` question or `blocked_by`, and not by the reason |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| status | Yes | Task status | |
| entries | Yes | Numbers of the entries filed in this task's case, in filing order. Empty when the sent values were already in place; the version then stays the same | |
| version | Yes | Task version after the call | |
| parent_entry | No | Number of the `link_added` entry filed into the parent task's own case when `create_task` was given `parent`. `null` when no `parent` was given, and always `null` for `transition` and `update_task`: they touch no other task's case. |