Getting started
Core concepts
Spoletta has a small vocabulary. Everything else in this manual is built from these words, so they are worth a minute.
The words
| Term | What it is |
|---|---|
| Flow | Something your team does, drawn so it can be run. There are three kinds: a job flow that runs, a procedure other flows reuse, and a struct, the shape of one reusable object. |
| Board | The canvas a flow is drawn on. A flow process has a board of its own inside it. |
| Process | Something that happens: a step. It is carried out by an AI agent, a script, a person, Sentry, a board of its own, or another flow. See Processes. |
| Object | Something that exists: what steps produce and take, such as a ticket, a patch or a summary. It holds JSON, and its attributes give that JSON a shape. See Objects. |
| State | A situation an object can be in, such as approved or changes requested. States decide which process runs next. See States and rules. |
| Link | Joins a process and an object: the process takes the object, or yields it. See Procedural links. |
| Start | The node a run begins at. It points at the first process. Every board needs one. |
| Run | One execution of a flow, started by the Run button or a schedule. |
| Step | One process carried out once within a run, with its inputs, output, transcript and any error. |
| OPL | The board written out as sentences, such as “Draft” yields “Notes”. See OPL sentences. |
Processes connect through objects
The most important idea in Spoletta: processes don't point at each other, they point at objects. Draft doesn't run “after” Pick release; it runs because it takes Release, and Release only exists once Pick release has made it. That is why a flow needs no separate wiring of order and data. The data is the order.
Pick release has a person fill in Release.
Draft takes Release.
Draft yields Notes.
The flow starts with Pick release.
Read the sentences top to bottom and you have read the flow. Each part of the language is covered in The OPM language.
Where a run's work goes
Every value an object takes in a run is kept with the run, and every step keeps what it was given, what it did and what it handed back. Agents and scripts that work on code do so on a git branch of the run's own. Nothing is lost, so you can open any past run and see exactly what happened. See Running a flow.