Dependent work in a workflow
Use a workflow when one step needs another step's findings or the work has an order. Independent sub-agents can start together; dependent ones wait. The optional subagent plugin must be enabled. For one independent task, see Delegate work; for setup, see Sub-agents & Workflows.
Define the steps
- Ask Elowen to split the work into clear tasks with explicit prerequisites.
- Elowen creates a JSON workflow definition with a unique
idand a completetaskfor each node. A node that depends on another lists its id indeps. At least one node must have no dependencies. - Elowen starts the definition with
WorkflowStart. A managed Project requires the JSON file to be written inside that Project. - Check the summary when the background workflow finishes. Set
background: falseonly when you need all node results before continuing.
Each node normally gets a fresh conversation, so include needed context and the desired output in its task. Workflows accept up to 128 nodes and reject missing dependencies, cycles, duplicate ids, and tasks longer than 16,000 characters.
Pass results forward
A dependent receives a short handover from each direct dependency, not its full result or all earlier results. If it needs an older finding, list that node directly in deps too. Ask predecessors to end with a ## Handover section naming findings, exact locations, decisions and open work. Without one, the workflow uses the end of the result. A failed prerequisite leaves its dependent pending.
Check or resume the workflow
Use WorkflowStatus to inspect progress and failed steps. If the workflow has failed or pending work and remains available, WorkflowResume retries unfinished nodes while leaving completed nodes intact. A workflow may no longer be resumable after it is evicted or the daemon restarts; then start a new workflow, using completed work as appropriate. To stop a running workflow, use WorkflowStop; completed nodes retain their results. A background workflow returns a handle first and delivers a summary on completion; it does not send each node's result separately.