One paragraph and limits
mission
A person sets one mission. The loop makes normal tasks, runs them, and merges them to master. The loop stops when the mission is complete, or when a limit stops it.
ganda task mission
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("load-mission", LoadMission)
.Compute("walk-mission", WalkMissionAsync)
.Compute("continue", DecideContinue)
.Compute("mission-outcome", Decide)
.Switch<MissionOutcome>(sw => sw
.When(MissionOutcome.Complete, then => then
.Compute("stop", Stop))
.When(MissionOutcome.Stopped, "stop")
.When(MissionOutcome.Failed, "stop"))
.Build();
}The file is source/timewarp-taratibu/routines/mission/mission.cs. Taratibu master 53de8c4.
Why this shape
Some work must not wait for a feature branch or for a ranked list. The person already set the paragraph and the limits. The merges inside the loop are the goal. This graph has no gate. Campaign and stacked-task-set do have that gate. The difference is part of the design.
What you get
- This routine is not a campaign. There is no parent task, no child task, no ranked row, no feature branch, and no scope check.
- Each step is a child routine, mission-step. A task step asks the next oracle. A red health check makes a repair. The model does not choose the repair.
- The host stops for a named reason. The name can be complete, cap, until, or for. The name can be the usage floor. The name can be a burn-window reset when you pass --once. The name can be health that is still red after a repair. The name can be no burn window.
- A task that crosses a usage reset moves into the next window. Burn-down can start work up to that reset.
Rules
- The normal file is mission.md in origin-home. You can give text on the command, or pass --kitchen, or pass --mission-file. Use only one of these.
- The host chooses providers from usage before each step. If you pass --profile, the host keeps that profile.
- If next is Blocked, the host stops walk-mission and does not record it. Run the command again with --kitchen to continue.
- The continue node reads the state after the run. Ganda can replace that function. Each stop has a reason.
This routine starts
The drawing follows the D2 file in the repo. Node ids do not change. Ganda connects the commands. Ganda does not change the graph.