| name | runner-elicitation-policy |
| description | Use when deciding whether a runner should interrupt the operator, how popup text should be phrased, and how timeout/failure classes should be interpreted. |
Runner Elicitation Policy
Purpose
Runner popups are scarce attention. Use them only when operator input changes the outcome and the system cannot safely proceed from existing evidence.
Interrupt Only When
- The intent is ambiguous and a wrong choice would create or reinforce the wrong pipeline.
- The action is irreversible or high risk and cannot be recovered by rollback.
- A local preference is needed to interpret repeated behavior, such as a target layer or naming convention.
Do Not Interrupt For
- Started, running, completed, or routine failure notifications.
- Read-only status, health, or sync updates.
- Errors the daemon can retry or classify without user input.
- Asking the operator to approve a pipeline that policy already promoted.
Popup Copy
- State the decision in one sentence.
- Offer concrete choices, not open-ended explanation requests.
- Include a default only when timeout behavior is safe.
- Mention the affected connector/profile when it prevents ambiguity.
Failure Classes
timeout: no operator answer; record as no decision, not rejection.
dismissed: operator intentionally declined interruption; do not repeat immediately.
upload_failed: transport issue; retry if the decision is still relevant.
render_failed: local UI unavailable; fall back to event stream and avoid loops.