Shared rules
- Subscribe with a run id from the domain start response (
workflow_id, orx-workflow-run-idfor chat). - Retries stay on the same run — more chunks on the same stream.
- A new start is a new run — newest-wins cancels the prior run; switch streams.
- Reconnect with
startIndex(NDJSON) while the World retains the run. - Tip reconcile with webhooks + REST — never a second survey-wide pub/sub bus.
- Content-Type:
application/x-ndjson - Omit
startIndexor pass0to read from the start - Positive index = resume; negative = tail-relative when the World supports it
- There is no Program archive after World data ages out — reconnect while the run’s stream is retained
stream_url to the generic path.
survey.questionnaire_clarifications
Answers/skips are not streamed — use tip
PATCH and optional webhook/GET. Details: Questionnaire clarifications.
survey.audit
Detection compares tip questionnaire prose + answered clarifications to the pinned content revision snapshot. Nested body chunks are
{ type: "audit.issue", issue } between step.started and step.ended. Domain responses do not include stream_url.
survey.audit.remediate
Mutates the audit proposed source only — never the content tip. The Review agent does not start this workflow; it patches the dirty Monaco buffer and PATCHes findings.
survey.programming
Configure gates resume via
PUT .../programming/target, PUT .../programming/template, or POST /v1/workflows/{id}/hooks/{token} when following anatomy resumePath. After Push, PFQ emits a hidden { asyncContinuation: true } and a single Audit step (contentFormat: todo) that starts survey.audit / survey.audit.remediate as children; Continue to Review is allowed while Audit still runs. See Programming.
survey.content_edit
This path uses the World default model-call stream (
ModelCallStreamPart), transformed to UIMessage SSE — not an NDJSON programming/clarifications/audit stream.
Details: Content edit.
What is not a live workflow stream
Prefer run streams (or conversation SSE) while attached to a run; prefer webhooks + REST when you are not.