Skip to content

Lifecycle Model

A role defines responsibility and workflow authority. A binding defines how that role runs. Configure bindings in coordination/execution.yaml; every binding uses the common ACP client regardless of harness.

Admission and turns

Binding scheduling Source of work Between turns
queue Eligible tasks in the role's queues, subject to admission and evidence gates Daemon observes state; no agent polling turn is required
on-demand Explicit operator conversation input Conversation persists; queued messages are consumed by the daemon

Interactive conversations have durable IDs and ordered user messages. CLI, tmux and IDE frontends attach to daemon-owned conversations. Detaching a frontend does not submit a new prompt or cancel the current turn.

For task execution, the daemon atomically claims a task revision, pins contracts, opens or loads a compatible ACP session, applies selected model/mode settings, and submits context. ACP permission requests follow the binding policy. An operator decision can place the run in waiting_input; authentication problems can produce waiting_auth. Cancellation requests receive bounded cleanup.

Session reuse is governed by the binding's session policy and negotiated agent capabilities. Changing harnesses does not transfer their private conversation history; the assigned task and pinned contract supply portable context.

Deterministic supervision

The daemon handles queue observation, dependency readiness, admission limits, startup backoff and result reconciliation in code. Role metadata such as driven or interactive in the schema does not select a native transport, tmux wake sequence or provider-specific timer loop.

Recognized pre-prompt startup failures can retry within configured budgets. Account backoff is shared across bindings with the same configured account. Completed background turns without workflow progress are bounded by max_no_progress_turns, which defaults to one. Token output and task metadata changes do not count as workflow advancement.

A completed prompt does not verify a task. Typed results pass through the domain service; command and deployment effects retain their own evidence and recovery requirements. Unknown post-prompt failures are not automatically retried.

See the execution contract for precise retry eligibility, session compatibility, permission and recovery behavior.