Concepts
Boardwalk has a small vocabulary. Read this page once and the rest of the docs (and the dashboard) will read naturally.
Workflow
The unit you build, version, trigger, and run. A workflow has a slug (its identity) and an optional title, a version history, triggers, and a run history. Agent is not a noun Boardwalk uses for this: the thing your org owns is a workflow; agent() is a call a workflow makes when it wants a model to do some work.
Program
A workflow's source. The simplest is one TypeScript file that exports a meta literal (the contract); the rest of the file is the script that executes, top to bottom, when the workflow runs. A program can also be a package: a directory of several files, helper modules, and bundled assets (a skills/ folder, a prompt template, a config) that the entry file imports. Either way it is real code, with your packages, your editor, and your tests. The CLI bundles it to a single artifact at deploy. See Writing workflows.
Manifest
The control plane's view of a workflow, derived from the meta literal at deploy time. The manifest is what Boardwalk reads to know the schedule, the declared secrets, the budget, and the machine class; it never has to execute your code to learn any of that. meta must therefore be a pure literal: no computed values.
Run
One execution of a workflow. A run has a status (queued → running → completed / failed / cancelled), a streamed event log (phases, agent turns, output), and a permanent record in the dashboard. Runs are real processes: locals survive a sleep, and a crash restarts the run from the top.
Trigger
What starts a run: cron (a schedule), webhook (an HTTP call), or manual (you, the CLI, or another workflow). Declared on meta.triggers. See Triggers.
Engine
What executes the program. The same file runs under three engines: the CLI's embedded engine (boardwalk dev, your laptop), the self-hosted single-node server (your hardware), and Boardwalk itself (hosted). Engine-dependent behavior is deliberate and small: where secrets resolve from, and what happens when agent() names no model. A shared conformance suite keeps the engines honest.