← All workflow templates

Workflow templateProven reference

Process a batch worklist with one demonstrated workflow

The committed showcase-loop bundle wraps the real 18-step OpenEMR recording in a LOOP that runs the demonstrated body once per record of a CSV worklist, binding each record's note column to the workflow parameter. Iteration is deterministic and makes zero model calls; every iteration re-runs the same identity gate and effect verifier as a single replay, so iteration N acts on the right record or halts.

This workflow runs today, end to end, against the named open-source reference application in the openadapt-flow repository. The steps below are the real demonstrated steps and the verification is the real oracle.

Runs on

OpenEMR (the recorded reference workflow) or your own browser application: provide the worklist as a CSV whose columns map to the workflow's parameters. This covers the provided-worklist case; reading a queue off the screen mid-run is not yet supported and is stated as future work upstream.

Source in openadapt-flow →

The demonstrated steps

  1. 1Record or reuse the single-demonstration body - here, the 18-step OpenEMR add-note workflow
  2. 2Author the loop over a worklist CSV with openadapt flow for-each, mapping columns to parameters
  3. 3Set max_iterations to the intended bound
  4. 4Replay: the runtime executes the compiled program once per record, verifying each write against its declared effect
  5. 5Any ambiguous or poisoned record triggers a safe halt for that run instead of a wrong write or silent skip

Parameters: worklist.csv columns mapped to demonstrated workflow parameters — recorded values are the defaults; every replay can override them.

How the outcome is verified

Per-record: each iteration re-runs the hardened per-action pipeline - identity gate plus system-of-record effect verifier - so the write for record N is confirmed against the value it actually wrote. Bounded: a worklist longer than max_iterations halts rather than running unbounded. Zero-model: loop iteration, per-row binding, and worklist resolution are deterministic code. No trial counts are published for this shape yet; what is published is the committed bundle, its regeneration procedure, and the interpreter behavior it demonstrates.

  • per-iteration record_written + field_equals effect contracts
  • identity gates re-checked on every iteration
  • bounded max_iterations halt

Questions about this template

Are there published trial counts for batch runs?

No. The repository publishes the committed bundle, a deterministic regeneration script, and the documented halt behaviors - not a per-workflow trial matrix. We do not quote numbers that have not been measured.

Source: showcase-loop README

What happens if the worklist has more rows than the loop allows?

The run halts. The loop is bounded by max_iterations and treats an over-length worklist as fail-safe, never running unbounded.

Source: showcase-loop README

Try it from the command line

The compiler and runtime are open source and MIT licensed. Healthy runs are local and make no model calls.

pip install 'openadapt[browser]'

Installs the OpenAdapt launcher, compiler, and browser capability.

openadapt flow for-each <single-demo-bundle> --records worklist.csv --out my-loop-bundle --map note=note

Demonstrate or reuse the recording, compile it into a deterministic bundle, then replay locally.

Put this workflow into production

Bring your version of this workflow and the record that proves its outcome. We'll map the deployment, verification, shadow run, and supervised rollout.