survey.programming run (newest-wins per survey).
Greenfield runs expose lean status plus workflow_id / stream_url. Clients subscribe on the generic World stream; product resume for target/template uses domain PUT routes.
Product steps
Ordered work (anatomy / World steps; UI should follow the live stream rather than inventing a second plan):- Initial programming — questionnaire → Questra HCL (streams compose previews)
- Conjoint design — fan-out over cross elements (skipped when none)
- Target selection — configure gate; resume via
PUT .../programming/target(or generic hook token when present) - Template selection — configure gate; resume via
PUT .../programming/template - Transpile — compile HCL once and persist platform source + sidecars
- Fine tuning — skipped when effective instructions are empty
- Audit / diagnostics loops — bounded repair; exhaustion → warnings
- Upload files / survey configuration — API delivery only; skipped for offline targets
default_file_hosting (questra_cdn vs platform_native) controls whether movable media stay on the Questra CDN or are uploaded upstream. Platforms without a file-manager API always keep movable media on Questra CDN.
Offline targets still run through diagnostics and persist local artifacts at every completed stage. Only upstream upload steps skip.
Start
workflow_id, stream_url (/v1/workflows/{workflow_id}/stream), and a lean programming detail (empty phases for greenfield).
You may start without a frozen platform target (platform: null). The run waits on configure gates; set target (and optionally template) with the product resume routes below.
Subscribe to progress
Prefer the start responsestream_url:
startIndex while the World retains the stream. Authoritative status reconciles from GET /v1/workflows/{workflowId} or GET .../programming.
Target and template resume
fine_tuning_template_id: null clears the template and uses the code-owned canonical platform template.
Frozen target output includes a secret-free delivery discriminant: { mode: "offline" } or { mode: "api", integration_id, upstream_survey_id? }. Connected resume sends config refs for the integration and optional upstream survey. Export-only freezes mode: "offline".
Greenfield anatomy may also expose SDK hook tokens — resume those with POST /v1/workflows/{workflowId}/hooks/{token} when the UI is following resumePath from the stream.
Accept / cancel
After success
GET .../content— tip revision written by programming- Webhooks:
workflow.*,content.updated - Manual
PUT .../contentis blocked while a programming (or content-edit) run is still pending/running — completed bindings may remain current and do not block saves
Concurrency
Newest-wins per survey: a newPOST .../programming cancels the prior run. Switch to the new stream_url.