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.