# The board

> Building flows · https://spoletta.com/docs/board

The board is where a flow is drawn, and where its runs are watched. This page is a tour of what is on it and how to work with it quickly.

## Getting to a board

The flow list has three sections, **Flows**, **Procedures** and **Structs**, each with a name field and a button: **New flow**, **New procedure**, **New struct**. Creating one opens its board straight away. Each card shows when the flow last ran and how that run ended, or *Never run*.

## The toolbar

| Control | What it does |
| --- | --- |
| Flows / name | The breadcrumb back to the flow list. The pencil renames the flow: `Enter` saves, `Esc` cancels. |
| **Group into flow** | Moves the selected processes (and selected objects) into a new flow process. See [Zooming in](https://spoletta.com/docs/zooming.md). |
| **Tidy up** | Lays the whole board out from the top and resets hand-drawn link routes. |
| **Save** and the version toggle | Saves a version of the board; the toggle shows *Not saved* or *Version N*. See [Versions and history](https://spoletta.com/docs/versions.md). |
| **MCP servers**, **Data**, **OPL**, **Settings** | The MCP servers agents can use, the table of every run's values, the board as [sentences](https://spoletta.com/docs/opl.md), and the flow's settings (repositories, branch prefix, who sees it). |
| Run (the round play button) | Starts a run. It stays disabled until the Start node is connected. See [Running a flow](https://spoletta.com/docs/running.md). |

## The sidebar

The sidebar holds what you can put on the board, in groups that fold away and remember whether they were open:

-   **Building blocks**: **Process**, **Object** and **Person**.
-   **Connectors**: **Sentry**.
-   **Procedures** and **Structs**: drop one to run that procedure, or to add a copy of the struct's object. See [Procedures](https://spoletta.com/docs/procedures.md) and [Structs](https://spoletta.com/docs/structs.md).
-   **Runs**: the flow's runs, newest first.

Drag a tile onto the canvas, or click it to add one in the middle. A new node starts with a name field: type the name and press `Enter`, or `Esc` to discard it. A node can't be connected until it has a name.

## Adding and connecting

1.  **Quick add with the + buttons**
    
    Hover a node with nothing leading out of it and press the **+** beneath it. Under a process it adds the object the process generates; under an object, a process that takes it (a human process, under a person). The **+** on a link, *Insert a step*, splits the link with a new process and object.
    
2.  **Drag between handles**
    
    Inputs enter at the top of a card and outputs leave from the bottom; each state has handles of its own. While you drag, the nodes you can end on light up. Dragging from one process onto another draws an *on failure* connection. See [Procedural links](https://spoletta.com/docs/procedural-links.md).
    
3.  **Set up the link**
    
    Select a link to choose how its process takes the object (**takes**, **instrument**, **consumes**), whether a state link is an event or a condition, or which states a decision chooses between. Drag the grips on a selected link to route it round other nodes; double-click it to restore the default route.
    
4.  **Configure the node**
    
    The gear on a node, or a double-click, opens its settings panel on the right. The panel saves as you type; `Esc` or **×** closes it. Drag a card's left or right edge to make it wider.
    

## The context menu

Right-click a node for:

-   **Zoom in** (a flow process) or **Unfold** (an object), **Rename**, and **Add state** on objects;
-   **Duplicate**, a copy without its links, **Copy** and **Delete**.

Right-click the empty canvas to **Paste**. Nodes are deleted only from their button or the menu, never by a key, so a stray keystroke can't remove a step.

## Shortcuts

| Keys | Action |
| --- | --- |
| Double-click the canvas | Add a process |
| `Shift` + double-click the canvas | Add an object |
| Double-click a node | Open its settings; zoom into a flow process; open a procedure process's flow |
| `⌘`/`Ctrl` + `C`, `V` | Copy the selection; paste it at the pointer, in this flow or another, even in another tab |
| `⌘`/`Ctrl` + `Z` | Undo |
| `Shift` + `⌘`/`Ctrl` + `Z` | Redo |
| Shift-click, or drag a box | Select several nodes |
| `Backspace` on a selected link | Delete the link |
| `Esc` | Cancel a name being typed, close a panel or a menu |

> **Tip:** Undo covers every change to the board, imports and the assistant's changes included. The server keeps the last 100 steps.
