Name exactly one row
slice-plan
The oracle writes the brief for the next slice. A compute node then requires exactly one ranked row id.
This routine has no Ganda command. A parent routine runs it.
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.
return Routine.Named(RoutineId)
.Oracle<TaskWork.Continue>("plan-slice", schema: "Continue.ClosedEnum", pack: Pack.Charter, budget: Budget.Small)
.Compute("cite-row", citeRow)
.Build();The file is source/timewarp-taratibu/routines/slice-plan/slice-plan.cs. Taratibu master 53de8c4.
Why this shape
Do not let the model write the plan and also choose the next task. A vague plan can make work that the ranked list does not name. cite-row is the check that removes that risk. The heading ## Ranked row must hold exactly one id. Zero ids is Failed. Two or more ids is Failed. Then the campaign stops.
What you get
- The ranked list is the only source of slices.
- The oracle does not choose the next node. The pack name is Pack.Charter. The pack gives the charter to the oracle. The compute node reads the text that the oracle wrote.
- You can run this routine with no campaign. Today the Ganda campaign command is the command that runs it.
Rules
- There is no gate. The run ends at cite-row.
- If plan-slice is Blocked, the host stops. There is no Blocked line.
- If the kitchen stand-in is absent, the citation fails. The node does not guess a row.
The drawing follows the D2 file in the repo. Node ids do not change. Ganda connects the commands. Ganda does not change the graph.