Checklist
Prompt operator with multiple selection from list of options.
You can create a checklist with checklist:
ui:
components:
- key: visual_checks
type: checklist
label: "Visual Inspection Checks"
description: "Select all checks that passed"
required: true
options:
- label: "No scratches"
value: "no_scratches"
- label: "No dents"
value: "no_dents"Properties
Display
You can configure how the checklist appears to the operator.
| Property | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Unique identifier for accessing the value |
type | string | Yes | Must be "checklist" |
label | string | No | Display label for the checklist |
description | string | No | Helper text displayed below the checklist |
Value
You can set default values and bind to measurements or unit properties.
| Property | Type | Required | Description |
|---|---|---|---|
default_value | array | No | Array of default selected option values |
bind | string | No | Bind to unit property or measurement. See Collect Input for details. |
Options
You can define the list of choices available for selection.
| Property | Type | Required | Description |
|---|---|---|---|
options | array | Yes | Array of objects with label and value properties |
Each option object has:
| Property | Type | Description |
|---|---|---|
label | string | Text displayed to the operator |
value | string | Value submitted when selected |
Validation
You can validate selection before the value is submitted.
| Property | Type | Required | Description |
|---|---|---|---|
required | boolean | No | If true, operator must select at least one option (shows "Required" badge) |
TofuPilot validates operator input before submission, preventing continuation until all constraints are met. For some workflows, this input validation can create workarounds where operators bypass the UI to proceed.
Instead, you can capture the input as a Measurement using Binding and validate it with Validators. TofuPilot will record the actual operator input while enforcing pass/fail criteria.
Examples
Multi-Step Verification
We'll require operators to verify multiple conditions:
phases:
- name: Safety Checks
ui:
components:
- key: safety_verification
type: checklist
label: "Safety Verification"
description: "Confirm all safety checks"
required: true
options:
- label: "Power disconnected"
value: "power_off"
- label: "Grounding verified"
value: "grounded"
- label: "Protective gear worn"
value: "gear_on"
- label: "Area clear of hazards"
value: "area_clear"Defect Types
We'll collect multiple defect types if found:
phases:
- name: Defect Detection
ui:
components:
- key: defect_types
type: checklist
label: "Select All Defect Types Found"
required: false
options:
- label: "Cosmetic Damage"
value: "cosmetic"
- label: "Electrical Issue"
value: "electrical"
- label: "Mechanical Issue"
value: "mechanical"
- label: "Software Issue"
value: "software"How is this guide?