Skip to content

Nodes

A node’s shape decides what it does. Orbital has seven kinds, and nothing else runs. Each node type lists their attributes; this page explains when to reach for each one.

box, or no shape at all, is an agent. It renders a prompt, calls the harness and waits for a turn to finish. This is the only node that can change files or talk to a service on your behalf. Declare outputs when a later edge or prompt needs a value from it, because a bare turn leaves nothing behind but prose.

parallelogram is a command. Either it runs built-in probes, which read pull requests, review threads, diffs and checkout state, or it runs a script and declares the typed facts that script prints. Use a command when you want an exact observation instead of an opinion. Asking an agent whether a pull request merged is slower, costs a turn and can be wrong.

insulator pauses for a duration. Polling an external system needs one; without it, a loop that watches a pull request burns turns. Waiting costs no agent visits, and the operator can skip the remaining time.

folder with action="create" makes one isolated checkout per repository folder, so a run does not disturb your working copy. action="remove" puts them away again, and refuses if removal would lose uncommitted or unpushed work. A run that publishes anything usually starts with create and ends with remove.

component starts every bare outgoing edge as a parallel branch, up to max_parallel at a time. tripleoctagon is the join every branch must reach. With a prompt on the join, one turn synthesises the branch results; without one, the join is only a barrier. Branches share the same files, so keep them read-only unless they write to disjoint paths.

Msquare ends the run with an outcome of success, failed or aborted. Give a workflow a terminal for each way it can legitimately end. A run that reaches no terminal holds for an operator instead of finishing.

An import placeholder is not a shape. Any node with an import attribute is replaced by the graph it names before validation, and its outgoing edges bind that graph’s terminals as named exits. See sub graphs.

hexagon is reserved for a future human gate and cannot run. There is no decision node; conditions live on edges. See conditionals.