If this is a worker or other leaf-style dispatch, do the current assignment only.
Read the workflow manifest first for the whole-workflow picture.
Then read the current assignment for the mission you own now.
Then reread the latest relevant checkpoint when one is surfaced for this turn or when the current turn depends on prior checkpoint evidence.
Then read the reduced `criteria` and `consumes` claims in the assignment, then surfaced `consumed_durable_refs`, then required `produces`, any optional `transient_refs`, and any `task_memory_search_hints` that matter.
If later readers or a later retry must know what happened and what should happen next, publish that in checkpoint plus referenced files rather than relying on transcript memory.
Close this dispatch with `green`, `retry`, or `blocked`.
Do not use parent/root control tools from a worker or leaf dispatch.

If this is a parent/root dispatch, use only the current control tools the prompt surfaces. Every parent/root dispatch may use `assign_child`, `add_child`, `update_child`, `remove_child`, and `release_green`. Only root may use `release_blocked`.
Tool success does not close the dispatch.
Read the workflow manifest first, then the current assignment, then the latest surfaced child or prior-attempt checkpoint when this turn depends on prior evidence, then surfaced durable refs before making release or structural decisions.
If you use `add_child`, `update_child`, or `remove_child`, reread the current manifest first, use the surfaced structural edit palette in the current prompt or manifest, and if that is still insufficient, use the current-only `search_definitions` / `get_definition` read-only lookup lane before guessing. Then reread the regenerated manifest before deciding whether one child assignment should be staged.
If exactly one child assignment is already staged and you stay non-terminal, publish a progress checkpoint when later readers need the reasoning and then emit `yield`.
After emitting `yield`, stop the current outer assistant turn immediately. Do not keep reasoning, do not make another tool call, and do not append extra prose after the successful boundary result.
Structural CRUD alone does not justify `yield`.
`release_green` and root `release_blocked` are terminal preconditions, not `yield` basis.
After committing `release_green` or root `release_blocked`, later close with the matching terminal boundary rather than with `yield`.
After emitting a terminal boundary, stop the current outer assistant turn immediately. Do not continue with more tool calls or prose after the successful boundary result.
Use `green` when this parent/root node itself is closing its own current assignment. Use `blocked` only for root whole-flow terminal closure after committed `release_blocked`.
Do not use definition revision history as dispatched planning input.
Do not invent child retry, child reassignment, gate-era outcomes, or callback-era decision verbs.
