# Setup

> The group of a model that changes when the product on the bench changes, with its seven folders in the order a procedure composes them.

**Setup** is the third-from-last group of a model in the Process tree (Process > Models > model >
Setup). Its page says what it is for: "What changes when the product on the bench changes: what is
watched, the names the channels are read under, what is recorded, the setpoints a run applies,
what it is judged by and the procedures that put all of those together." Where
[Definition](process-definition) is the structure of the process and changes only when the process
itself changes, Setup is typically the test coordinator's: a new product on the same bench means
new setpoints, new limits, new names, and a new procedure composing them over the same channels.

## The group page {#the-group-page}

Selecting **Setup** opens the group's page: the header with the line above and a **Contents** card
("What this group holds. Click one to jump straight to it.") with one tile per folder, each
carrying the folder's icon, name and the number of rows it holds. The folders are fixed; nothing
is added or removed on this page.

| Order | Folder | What it holds | Page |
| --- | --- | --- | --- |
| 1 | **Occurrences** | Watched conditions of the thing under test, judged during runs or always. | [Occurrences](process-occurrences) |
| 2 | **Aliases** | Named sets of channel names, applied to a unit or pinned to a procedure. | [Alias sets](process-aliases) |
| 3 | **Datalogs** | Recording configurations: one snapshot interval and the channels recorded. | [Datalogs](process-datalogs) |
| 4 | **Recipes** | The setpoints a run writes: an instant set, or a temporal Step / Ramp / Soak profile. | [Recipes](process-recipes) |
| 5 | **Evaluations** | The pass/fail criteria a run is judged against. | [Evaluations](process-evaluations) |
| 6 | **Actions** | Named packages of labels and reports a run emits at its boundaries. | [Actions](process-actions) |
| 7 | **Procedures** | What the operator starts on a unit: the run envelope plus the pieces above it composes. | [Procedures](process-procedures) |

## Why the procedure comes last {#why-the-procedure-comes-last}

The first six folders are loose pieces, and the procedure is where they compose: a procedure picks
a datalog to record, a recipe to apply, an evaluation to judge by, an alias set to pin, the
occurrences it arms and the actions it emits. The group is read in the order it is filled, so by
the time you reach Procedures every picker has something to offer. Actions stands after
Evaluations and before Procedures because it is the one loose piece that neither applies, records
nor judges anything: it only says what a run puts out, and it is the last thing a procedure
composes.

Every folder lists its rows by name, except **Actions**, which keeps the list's own order, because
that order is the order every procedure emits the actions in.

## What changes when the product changes {#what-changes-when-the-product-changes}

Nothing in Setup redeclares the model's structure. Every piece references the model's abstract
channels by their identity and nothing else: a recipe writes channels, a datalog records channels,
an evaluation judges channels, an occurrence reads channels, an alias set names channels. That is
what makes every unit of the model compatible with every piece by construction, and what lets a
bench keep its channels and bindings while its products come and go. Renaming a channel rewrites
every reference in the group; removing a channel sweeps its rows out of every piece after a
confirmation that counts what goes (see [Channels and bindings](process-channels)).

A deleted piece degrades what referenced it instead of breaking it: a procedure whose recipe,
datalog, evaluation or alias set is removed simply empties that reference; a removed occurrence is
unarmed from every procedure; a removed action stops being emitted by the procedures that selected
it. The confirmation dialog names the piece before it goes.

## Permissions and locks {#permissions-and-locks}

The **Edit recipes & evaluations** permission of the Process area is what edits this group: every
create verb, every field and every Remove verb in the seven folders is gated by it. For a role
that holds it without **Manage process**, the tree reduces: every model shows only its Setup branch
and the Templates root is dropped, so the role reaches exactly what it may change. A role that only
looks at models or runs procedures still sees the whole tree, but the Setup pages are held
read-only and none of the verbs is drawn.

| Command | Where it stands | What it creates |
| --- | --- | --- |
| **Occurrence** | Occurrences folder selected (right-click **Add occurrence**) | `Occurrence <n>`, Warning, armed during procedures, enabled, empty condition. |
| **Alias set** | Aliases folder selected (right-click **Add alias set**) | `Alias set <n>`, naming nothing yet. |
| **Datalog** | Datalogs folder selected (right-click **Add datalog**) | `Datalog <n>`, 1000 ms, no columns. |
| **Recipe** | Recipes folder selected (right-click **Add recipe**) | `Recipe <n>`, Instant, On failure Hold, no setpoints. |
| **Evaluation** | Evaluations folder selected (right-click **Add evaluation**) | `Evaluation <n>`, no criteria. |
| **Action** | Actions folder selected (right-click **Add action**) | `Action <n>` (the first free number), no commands. |
| **Command** | An action selected (right-click **Add command**) | A label emitted at Completion for OK runs, with no template yet. |
| **Procedure** | Procedures folder selected (right-click **Add procedure**) | `Procedure <n>`, Instant, referencing nothing. |
| **Remove …** | The row selected: the danger cluster of the detail bar, the right-click menu, and the X on the folder page's card | Deletes the row after a confirmation naming it. |

All of them stay drawn and greyed while the station refuses configuration: any unit of the station
occupied by a run holds the engineering lock, and a stopped runtime refuses every mutation. The
tooltip says which. Every page in the group autosaves: a field applies when you leave it, a switch
or a picker when you change it, and a write the station refuses puts the page back as it was and
reports the reason in the action feed.

## What this group does not do {#what-this-group-does-not-do}

- It holds nothing per unit. A unit's bindings, aliases, printers and automation are on the
  [Definition](process-definition) screens, one unit at a time.
- It holds no templates. The report layouts and label templates an action names are the two
  station-wide libraries under [Templates](process-templates).
- It runs nothing. Staging and starting a procedure happen on the unit's rows under
  [Operate](process-operate).
