Skip to content

Answer an assist task

An assist task is an agent asking a person to clear a blocker it cannot clear itself. It is raised from the middle of a coding run, against the task that run is working on, and it arrives with the evidence that the agent tried first.

The agent reached something no amount of code would fix: access it does not have, infrastructure that is down, a contradiction between the task and the repository, or a choice between designs the task never settled. Its other moves are all worse. Guessing produces work nobody asked for, a workaround buries the problem in the code, and a note in a summary reaches nobody. So the blocker becomes a task with an answer expected from a person.

Only the attempt writing the code can raise one. A review or a red team cannot, which is why an assist always comes from the work itself.

Three fields, all required. A request missing any of them is refused before it becomes a task, so an assist is never a vague call for help.

FieldWhat it holds
What it triedThe commands the agent already ran, each with its exit code and the tail of its output
What it needsWhat it is asking a person to do, in its own words
What that unblocksWhat becomes possible once it is done, so you can judge whether to do it now

The last two are written by the agent, and the page says so where it shows them.

The run stops. It does not sit and wait, because a person may reasonably take a day.

Before it ends it pushes everything it has written to the task’s branch, then finishes as inconclusive with the reason that it is waiting on an assist. Its runner is free for other work at once. The task it was working on moves to blocked and names the assist as what it is waiting on.

Nothing is lost in that ending and nothing is scored either: no review runs on work the agent has said is unfinished.

  1. Open the assist from the blocked banner on the task it is holding up, from the task list, or from that task’s Activity tab, where a message is posted when the assist is raised and again when it is resolved.

  2. Read what the agent tried and what it needs. Do that thing.

  3. Write what you did in the answer and submit it. The assist moves to answered.

Answering releases the task that was waiting: the block clears and the work is dispatched again, resuming on the branch the run already pushed rather than starting over. Your answer is recorded on that task and rendered into the spec the next run reads, under a Human answers heading, with the question the agent asked beside the answer you gave. The task description itself is never rewritten.

An answer is prose an agent reads, so a secret in one would be a secret in a prompt. The form refuses an answer that looks like a credential: an API key, a token, a password, a private key, or a line assigning any of those to a name.

Let the agent ask for the value the other way. A setup task collects it into the project environment’s write-only storage, which releases it to a single run and never shows it again. See environment variables and secrets.

Cancelling an assist cancels the task it was raised against, because that work has no way forward without it. Cancel it when the work should not happen. Answer it when it should, even where the answer is to do something else instead.

StateMeans
pendingRaised and waiting on a person. Where it starts
answeredSomebody acted and wrote what they did, and the blocked task is released
cancelledCalled off, and the blocked task with it

Both endings are terminal, the way every specialized type’s are. See task states.