Skip to main content

The assignee moves a task forward, and a stalled one goes up the reporting chain

Watching a role work on the cluster through mission-control wait (ADR 0024) showed a task can fall between chairs. The Software Engineer needed a decision only a person could make, asked for it in a comment as the built-in skill told it to, and ended its turn: the task stayed with its role, the person was never told, and the question sat unseen until someone happened to look. The same happens whenever a role's turn ends without handing the task on, or when its run fails: nobody holds the task, and nothing in Mission Control notices. We decided on one rule: whoever is assigned a task is the one to move it forward. A question is a handoff: the task goes to whoever must answer, with the question as the handoff, and comes back with the answer. A task in a working status is held when its assignee has its turn, or when it waits for open subtasks or blockers, whose finishing wakes it. A role's task that is held by neither is stalled, and Mission Control hands it on itself: to the stalled role's manager, who reports to whom being the organization's reporting chain, with what the agent last said as the handoff. A manager that stalls hands it further up, so a task ends with a person.

Considered Options​

  • Questions as comments addressed to a person, which made the task that person's turn while its role still held it: rejected. Someone would hold a task while someone else had to act on it, two rules where one does, and a new kind of comment, field and turn to keep.
  • A person's turns including every task they follow: rejected; it fires on every comment and still does not say who was asked.
  • A stalled task goes to the first person up the chain: rejected in favour of the chain itself. A manager is a role whose agent can act at once, hand the task back with guidance, give it to another role, or hand it to its own manager; people see what the roles beneath them could not settle.
  • Reminders for tasks that sit with a person: left out. A task assigned to a person is their turn, which wait and the web app show; Mission Control does not chase people.
  • Detecting stalls by polling: rejected. A task stalls at moments the server sees: a role's turn ends or its run fails. It looks then, and once at startup for tasks that stalled before this.
  • A run no runtime configuration serves as a stall: rejected. Such a run starts by itself once a configuration serves it, as Mission Control retries it whenever what serves runs changes (ADR 0019); moving its task away would lose that, and on a server not yet set up, every task given to a role would come straight back. The task page shows why it waits.

Consequences​

  • A turn ends in a handoff. The working-in-mission-control skill and the prompts say so: hand the task on when your part is done, hand it to whoever must answer when you need something, and end a turn without either only while you wait for subtasks or blockers. The reply that became a comment when an agent commented nothing still does while it waits for those; otherwise it is the stalled task's handoff.
  • Escalation is a transition by Mission Control itself, to the role's manager as todo, with the reason "Stalled" and what happened: the agent's last words, or the run's error. A role without a manager hands to the person who last handed it the task, else its creator when a person. A task with none of those stays, and the server logs it.
  • The stalled role's run stops when its task leaves it, as on any handoff, and keeps its session: when the task comes back, the agent continues where it was.
  • A question keeps the task's status. An answer is a handoff back; --assignee back hands a task to whoever handed it to you.
  • Waiting on subtasks still holds a task. A role keeps its parent while its subtasks run, and is woken as each finishes (ADR 0011). A subtask that stalls goes up the chain itself.
  • The startup sweep acts on tasks already stuck. On the first start after this, tasks a role held with a waiting or failed run and nothing open go to managers at once.
  • Sign-off is unchanged (ADR 0022): the guard is on roles moving a task to in review or done, not on Mission Control handing a stalled task to a manager.