Primary routine
task-work
The host claims a kitchen and writes the change. A compute node can skip the review. Then the host checks the work, opens a pull request, and waits for a person to merge.
ganda task work <id>
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)
.Compute("claim", Claim)
.Compute("folderize", Folderize)
.Oracle<Continue>("implement", schema: "Continue.ClosedEnum", pack: Pack.None, budget: Budget.Small)
.Compute("review-skip", DecideReviewSkip)
.Switch<ReviewSkip>(sw => sw
.When(ReviewSkip.Skip)
.When(ReviewSkip.Review, then => then
.Oracle<Continue>("review", schema: "Continue.ClosedEnum", pack: Pack.None, budget: Budget.Small)))
.Compute("results", WriteResults)
.Compute("audit", Audit)
.Compute("kanban-done", KanbanDone)
.Compute("open-pr", OpenPr)
.Gate("human-merge")
.Build();
}The file is source/timewarp-taratibu/routines/task-work/task-work.cs. Taratibu master 53de8c4.
Why this shape
A skill is a file that a worker can load. A skill is not a step that runs. task-work puts the review on the graph. The review runs even when the brief does not name the skill. Skip is a compute node. That node reads the kitchen text and the arguments. Skip is not a second oracle.
What you get
- The status is a node id. Examples are “12 is at implement”, “14 skipped review”, and “blocked at human-merge”. The status is not a summary of the chat.
- If implement or review is Blocked, the host stops. The host does not record that oracle. A later run starts that node again. Done is the only next step with no label.
- The audit loop and the claim commands stay in Ganda. The library does not add a cycle to mean “try again”.
Rules
- This run has no classify step. Classify is on planning and on advisor.
- The host runs the review. The host skips the review only for --no-review, or when the kitchen says skip.
- --restart keeps the old journal and starts again at claim.
- The host is herdr or headless. For herdr, the normal mode is one pane, one time.
The drawing follows the D2 file in the repo. Node ids do not change. Ganda connects the commands. Ganda does not change the graph.