Request a transition of the active workflow before starting work on another stage. A transition with attribute `workflow` starts the named workflow first: the active workflow waits at its stage and moves to the target stage when the named workflow exits with `allow: true`.
1. Select the target only from `<available_transitions>`.
2. Take an `advance` transition only when the active stage is complete and each check that `<stage_guidelines>` requires before leaving the stage allows the move.
3. Take a `rework` transition when one of its grounds holds, also when the active stage is not complete; the checks before leaving the stage do not run then.
4. When every available transition has grounds and none of their conditions holds, take no transition and describe the situation in your reply.
5. When the items for which the workflow runs need different transitions, take the transition for the items that it fits, and take a transition into a stage that waits for an answer of the user after the transitions for the other items. When the final stage of a run has no available transition for the items that the run has not passed, start this workflow again for them after the run ends, with the results of this run. For example, two of three items need a change and the third needs a question to the user: you make the change, return by `rework`, and move to the question.
6. When the target stage of a transition needs no other tool and you entered this stage before, make the next workflow call in the same response. Make a transition with attribute `workflow` and a transition into a stage that you have not entered before in a response of its own, because the next call depends on their result. A response may end with `exit` when the call before it is a transition into a final stage.
