Orchestrate OpenClaw subagents for continuous autopilot workflows. Use when managing UI/代码/验证/档案/侦察 task lines, continuing multi-round work without waiting f...
Run continuous task lines through the main controller, not by accident.
Treat autopilot as a continuous line
The main controller must directly re-dispatch
Keep the task board current
AGENT_TASK_BOARD.md before or when dispatching the next round.Keep subagent replies short
Clean finished sessions, keep memory
memory/YYYY-MM-DD.md.MEMORY.md when needed.Do not keep unnecessary artifacts
Do not hard-code project-specific model rules into this skill.
Use the current session defaults unless the user or project rules override them. If a project has role-specific model preferences, keep them in project memory, task board rules, or project docs — not as universal orchestrator behavior.
When an autopilot line is active:
AGENT_TASK_BOARD.mdWhen one role creates a dependency for another role:
next_roleExamples:
Validation is a follow-up role, not usually the main line. Trigger it after:
Keep the canonical protocol in references/SUBAGENT_RECORD_PROTOCOL.md and use it together with this skill.
Require subagents to include these header fields before the short report:
tag: one of autopilot | done | idle | blocked | handoff | need_userline: the task line name, such as ui-autopilot, code-autopilot, scout-art, archive-worldviewnode: the current task-line node id, such as code-n4, ui-n5goal_status: use only partial | complete | waiting | blocked (do not invent values like half_done, in_progress, done)next_role: free-form next owner/role label, such as ui, code, verify, research, archive, user, none, or any project-specific role nameThen use the short body (see references/SUBAGENT_RECORD_PROTOCOL.md for the full paired format):
autopilot: this round finished, but the whole line is probably not done; main controller must compare against the task board and either continue or closedone: the whole line is completeidle: this role is waiting for another line or condition; do not continue this role yetblocked: the line cannot safely continue automaticallyhandoff: this round finished and the next role is already clearneed_user: user decision is required before any safe continuationWhen a subagent returns:
If tag=done
If tag=autopilot
AGENT_TASK_BOARD.mdline and nodenode != end_node, dispatch the next node immediately in the same controller turncurrent_node == end_node and the line completion condition is actually satisfiedFor every autopilot return, the main controller must verify all three:
idle, blocked, need_user, or doneIf none of those happened, the turn is incomplete and should not be considered finished.
A local slice finishing is not enough to stop a line. Do not treat phrases like “this small closure is done”, “this round passed”, or “this piece is complete” as permission to pause.
The controller may stop only when one of these is true:
current_node == end_node and the line completion condition is actually satisfiedblockedneed_userIf a subagent returns goal_status: complete for a node, that means:
next_on_doneend_nodeIf a task claims a delivery/output was completed on an external surface (for example Discord/Telegram/channel/thread/board), the controller must require proof. A claim like “已上屏 / 已交付 / 已发布 / 已发送” is not sufficient by itself.
Minimum proof for delivery-type tasks:
If any proof item is missing, treat the task as not delivered yet. Do not mark the line done or the node complete on verbal assurance alone.
After receiving a valid autopilot return with line and node, the main controller must do this in order:
AGENT_TASK_BOARD.mdcurrent_node to that node's next_on_doneend_node, dispatch the owner of the advanced node immediately in the same turnDo not stop after summarizing the finished round. The turn is only complete after the node has been advanced and the next node has either been dispatched or explicitly put into idle / blocked / need_user / done.
If tag=handoff
next_role directlyIf tag=idle
If tag=blocked
If tag=need_user
Only mark a line done when:
Do not mark done just because one run finished.
ZIP package — ready to use