schedule
Schedule
Read .noodle/mise.json, write .noodle/orders-next.json.
The loop atomically promotes orders-next.json into orders.json — never write orders.json directly.
Use noodle schema mise and noodle schema orders as the schema source of truth.
Operate fully autonomously. Never ask the user to choose or pause for confirmation.
One Plan at a Time
This is the cardinal scheduling rule. Pick the highest-priority plan with remaining phases and schedule all of them. Do not spread work across multiple plans — finishing one plan end-to-end produces shippable results; advancing many plans one phase each produces nothing usable. If the current plan is blocked, idle (empty orders) rather than context-switching to a different plan. Exception: shared infra orders can run alongside a plan's phases.
Orders Model
Output is {orders: [...]} where each order is a pipeline of stages executed sequentially. Group related work into stages within one order rather than separate orders.
Stages
Each stage has a do field (task key, must match a registered task type) and runs one at a time within the order. The loop advances to the next stage when the current one completes.