Same kitchen
rfc
Run a ballot. Then write the decisions on the same task. Do not make a second kitchen.
ganda task work <id> --routine rfc
Select a node, or run the path that the host uses.
How you write it
You write the routine in C#. Each call adds one node. Build makes the intermediate representation.
public static RoutineDefinition Build()
{
return Routine.Named(RoutineId)
.Oracle<TaskWork.Continue>("rfc", schema: "Continue.ClosedEnum", pack: Pack.None, budget: Budget.Small)
.Compute("fold-in", TaskWork.FoldIn)
.Build();
}The file is source/timewarp-taratibu/routines/rfc/rfc.cs. Taratibu master 53de8c4.
Why this shape
An RFC that makes an “apply resolutions” task splits the decision from the task. fold-in is a compute node on this run. The ballot and the text stay on one id.
What you get
- The skill tw-rfc-ballot is the text for the oracle. It is not the process.
- There is no gate. The run ends at fold-in.
- If the ballot is Blocked, the host stops and starts that oracle again. The host does not open a new path.
Rules
- You must give a task id.
- This routine does not open a pull request.
The drawing follows the D2 file in the repo. Node ids do not change. Ganda connects the commands. Ganda does not change the graph.