Skip to main content

Part catalogue

Workflows are composed from a closed catalogue. You cannot define an arbitrary step; you wire together published parts whose behaviour, budget and retry policy are fixed.
Always read the catalogue at runtime rather than hardcoding this table. Budgets and versions change, and the live response is authoritative.

Wire types

Every part declares what it requires and what it produces. Those are the only things that determine whether two parts can be joined. An edge from A to B is legal when B’s requires is empty, or when A’s produces appears in B’s requires. Nothing else makes an edge legal, and the rule is applied identically at validation and at save.

The parts

Costs above are the catalogue’s own figures at the time of writing; treat the live response as authoritative.

Notes on individual parts

terminal.comparative.research produces a table, not a research_document. It needs at least two pinned subjects and accepts at most five. Resolve all of them in a single resolve-subjects call. workflow.pack is what makes a pipeline more than a list of steps: it requires both research_document and table, so several research steps can feed one pack. This is the usual way to combine parallel work into a single deliverable. anya.investigation carries a nominal budget of zero here because its real cost is charged and capped by Anya’s own entitlement when the investigation runs. This node dispatches; it does not itself meter. It passes the upstream research document through so later nodes can wait on it. workflow.email_owner emails you and only you. When other destination nodes exist on the canvas, prefer workflow.deliver, which hands the pack to every destination.

Scheduling safety

A part carrying the unattendedSafe capability may appear in a workflow with a scheduled or event trigger. Request only those parts with:
Unattended safety rests on the workflow’s inputs being fixed at publish time. Pinned subjects and a fixed objective are reviewed once and reused verbatim on every fire; nothing is regenerated per run.

Events

Event triggers draw from a closed catalogue too: