Deployment runs and capabilities
Model: delivery; occupancy, takeover and drivers: run members.
Deployment runs
- Merge before release; the hosted flow owns the commits and proof. Remote changes start from a local commit.
- Run creation and driving take no claim.
/yoke usher PREFIX-Nusesyoke deployment-runs start-for-item; drive withyoke watch deploy -- RUN_ID. - A run occupies its target servers until its QA settles.
target_occupiednames the holder: wait for it or follow its recovery. A run with a live driver answers only to that session. run_busyretries, never fails. Resume stopped drivers:yoke watch deploy -- RUN_ID. Never duplicate a run.- A newer run on the same flow and target takes over a run waiting only on item QA. Live
member QA moves intact (run members). While a
steering seat covers the project, only the seat holder or the older run's creator may. Others
report and wait:
printf %s "LANDED <ref> <merge sha>" | yoke say --stdin --steering. - A self-deploy needs this machine's paired same-universe DB connection; otherwise escalate the named refusal. Never look for control-plane database credentials to deploy.
- Retire a flow with
yoke deployment-flows set-status FLOW disabled; change one withyoke deployment-flows version. Never delete a flow a run references. - Before retrying or failing a start with a lost response, read start diagnostics.
Binding-based multi-project delivery
- A stage's
input_bindingsships another project's branch; read pins withyoke deployment-runs get RUN-ID bound_sources. One commit per project per run. - A release that writes its own commit (a version-pin promotion) records it with
yoke deployment-runs release-output record RUN-ID --project P. - A consumed bound source whose branch moved needs a new run. A stale carried-work record or
candidate_containment_attestation_stalenames its recovery; follow it. - A carried item with no completion flow:
yoke workflows delivery-default set --project P --workflow W --flow F, then retry the start.
QA across release targets
A case selects its registered environments with target_envs. A case that needs
real traffic sets wake_path: manual with
wake_evidence
(real traffic).
Records stay on this control plane.
Wait on another item's merge or delivery
Record the wait, then park. Use the item skill, not dash, or operator for steering:
yoke items dependency list ITEM
yoke items dependency add ITEM BLOCKER dash --gate-point integration \
--satisfaction fact:merged --rationale "needs blocker merged"
yoke sessions touch --mode parked --reason "awaiting BLOCKER merge"
- Add the edge before the landing you need: an unfinished blocker's landing counts only after the
edge exists. A blocker at
donealways satisfies it. Re-add an older edge to re-land. - Record a delivery wait only when a QA finding is in your own item and another item must
land first. Use
--gate-point closure:fact:mergedif the fix ships in the same release,fact:deployed:prodonly if it must be live first. - Park only after the write succeeds. On
dependency_cycle, settle it with steering, or usecoordination_onlywhen independent. Keep the claim and lane. - Your own item's release wait needs no edge. Details:
yoke items dependency add --helpand dependencies.