Operator Workflows¶
Stand: 2026-05-26
Ziel¶
OpenCode soll als Operations-Konsole nicht nur Tool-Rohdaten anzeigen, sondern Operatoren durch Review, Approval, Locking, Backup, Verification, Rollback und Recovery fuehren.
Diese Schicht fuehrt keine Infrastruktur-Aenderungen aus. Sie erzeugt strukturierte UX-Daten und Changeplan-Artefakte.
Unified Operator Response¶
Schema:
lanstyle.operator_response.v1
Pflichtfelder:
| Feld | Zweck |
|---|---|
summary |
kurze Gesamtbewertung |
operator_summary |
menschenlesbarer Change-Ueberblick |
risk_summary |
Risk Level, Gruende, Blast Radius |
policy_summary |
Policy-Entscheidung, Blocker, Wartungsfenster |
lock_summary |
aktive Locks, Lock-Kandidaten, Blocker |
backup_summary |
erwartete oder erzeugte Backups |
rollback_summary |
Rueckweg und Grenzen |
recovery_summary |
Recovery-Bedarf und empfohlene Aktion |
approval_summary |
Approval-ID, Freigabetext, Ablauf |
timeline_summary |
strukturierte Timeline fuer OpenCode |
next_action |
empfohlene naechste Operator-Aktion |
exact_approval_phrase |
exakt zu sendender Freigabetext |
explicit_out_of_scope |
nicht enthaltene Aktionen |
warnings |
Warnungen |
blockers |
harte Blocker |
Action Classification¶
Jede Action wird klassifiziert:
read_onlypreflight_onlymock_executionscoped_writedestructive_preparedestructive_executerollbackrecoveryemergency
OpenCode darf aus der Klassifikation ableiten, ob ein Execute angeboten werden darf oder ob nur Review/Approval angezeigt wird.
Human Decision Points¶
Die API liefert explizite Entscheidungsflags:
requires_human_reviewrequires_approvalrequires_second_approvalrequires_maintenance_windowrequires_manual_verificationrequires_post_execution_validation
Das LLM darf diese Flags nicht selbst aufweichen.
Workflow States¶
Standardisierte Zustaende:
plannedawaiting_reviewawaiting_approvalapprovedblockedexecutingverification_pendingrollback_availablerecovery_requiredcompletedfailedexpired
Timeline UX¶
Timeline-Felder:
who_requestedwho_approvedwhen_lockedwhen_executedwhen_verifiedwhen_auditedwhen_releasedrollback_available_untilapproval_expires_at
OpenCode soll diese Werte als Timeline Cards darstellen.
Suggested Actions¶
Jede Operator-Antwort enthaelt:
safest_next_actionrecommended_operator_actionrecommended_rollback_actionrecommended_recovery_actionrecommended_manual_checks
Bei Blockern ist safest_next_action immer Stop/Review, nicht Execute.
Wichtig fuer Golden-Path-Preflights:
- CTID-/IP-/Template-/Gateway-/Storage-Konflikte sind Ziel- bzw. Readiness-Konflikte.
- Sie duerfen keine Lock-Recovery empfehlen.
- Lock-Recovery wird nur empfohlen, wenn ein echter Dependency-Lock-, stale-, orphaned- oder failed-release-Konflikt vorliegt.
- Bei CTID/IP-Kollision ist die sichere naechste Aktion: freie CTID/IP waehlen und Preflight erneut ausfuehren.
Operatorfreundliche Darstellung¶
OpenCode soll zuerst die kompakten Felder anzeigen:
operator_priorityoperator_cardblockerswarningsnext_actionapproval_uxrollback_uxtimeline_compact
Rohdaten wie policy_summary, risk_summary, lock_summary, backup_summary, recovery_summary und timeline_summary bleiben vorhanden, sollen aber einklappbar sein.
Approval-Texte werden nur prominent gezeigt, wenn die Aktion nicht blockiert ist und wirklich eine Freigabe erforderlich ist. Bei blocked_before_execution=true gilt: Es wurde nichts veraendert, Rollback ist nicht noetig.
Kompakte Cards¶
Die API liefert eine priorisierte Card-Struktur fuer OpenCode:
operator_priority: Status, Risk, Next Action, Approval, Rollback, Backup, Driftoperator_card.overall_status:ready,warning,blocked,awaiting_approval,completedoperator_card.badges:🟢 healthy,🟡 warning,🔴 critical,🔒 approval required,⛔ blocked,♻ rollback availabletrust_summary:confirmed,interpreted,uncertain,observed_at,source_tool,confidence_level
Rohdaten sollen nur in einem Debug-/Engineering-Abschnitt sichtbar sein. Die erste Ansicht muss fuer Operatoren ohne JSON-Lesen verstaendlich bleiben.
Rendering-Hinweise¶
Serverseitige Hinweise:
show_as_warningshow_as_blockerhighlight_riskhighlight_approvalhighlight_recoverycollapseable_sectionstimeline_cardsrisk_badges
API¶
| Endpoint | Zweck | Infrastruktur-Write |
|---|---|---|
GET /operator-workflows/policy |
Schema, States, Action Classes | nein |
GET /operator-workflows/lxc-124-description-change |
hypothetischer LXC-124-Workflow | nein |
GET /workflow-catalog |
Golden-Path-Katalog | nein |
POST /workflow-catalog/preflight |
Golden-Path-Preflight | nein |
POST /workflow-catalog/mock-execute |
Golden-Path-Mock | nur Artefakte |
POST /workflow-catalog/runtime-backup-validation |
produktiver Read-only Backup-/Restore-Readiness-Report | nein |
GET /scheduled-workflows |
Scheduled Read-only Workflows | nein |
GET /scheduled-workflows/history |
Laufhistorie | nein |
GET /scheduled-workflows/trends |
Trendübersicht | nein |
POST /scheduled-workflows/run-now-readonly |
manueller Read-only Lauf | nur Artefakte/History |
Bestehende Endpunkte geben zusaetzlich unified_operator_response zurueck:
POST /execution-chains/preflightPOST /execution-chains/mock-executePOST /dependency-locks/recovery/preflightPOST /dependency-locks/recovery/approve-requestPOST /dependency-locks/recovery/execute
LXC 124 Beispielworkflow¶
Der Beispielworkflow simuliert:
- hypothetische Description-Aenderung
- Approval benoetigt
- Lock wuerde acquired
- Backup wuerde erstellt
- Verification erforderlich
- Rollback moeglich
- Cleanup nicht im Scope
Es wird kein Proxmox-Write ausgefuehrt. LXC 124 bleibt unveraendert gestoppt.
Golden Paths¶
Golden Paths nutzen dieselbe Unified Operator Response. OpenCode soll sie wie gefuehrte Standard-Runbooks anzeigen:
- Workflow-Metadaten
- validierte Inputs
- Risk/Policy/Lock Summary
- Suggested Actions
- Artefaktlinks
- explicit out of scope
Details: Golden Paths.
Read-only Betrieb¶
runtime_backup_validation_v1 ist als erster produktiver Read-only-Workflow freigegeben. OpenCode soll die Antwort als Betriebsreport anzeigen:
- Gesamtstatus grün/gelb/rot
- kritischste Lücken zuerst
- Komponentenmatrix
- Restore-Readiness
- empfohlene nächste Aktion
- Hinweis: keine Approval nötig, kein Lock nötig, keine Infrastrukturänderung
Details: Runtime Backup Validation.
Scheduled Workflows¶
Scheduled Workflows liefern OpenCode eine Betriebs-Konsolen-Sicht:
- letzter erfolgreicher Lauf
- nächster erwarteter Lauf
- stale Workflows
- neue Risiken
- gelbe/rote Komponenten
- Trendverschlechterungen
- empfohlene Operator-Aktion
Details: Scheduled Workflows.
OpenCode Operator UX¶
OpenCode soll bei allen Controlled-Execution- und Golden-Path-Antworten diese Reihenfolge bevorzugen:
summaryoperator_priorityoperator_cardblockerswarningsnext_actionapproval_uxrollback_uxtimeline_compacttrust_summary- einklappbare Details:
risk_summary,policy_summary,lock_summary,backup_summary,timeline_summary
Zusätzliche Read-only-Hilfen liefert die Tools API:
| Endpoint | Zweck |
|---|---|
GET /ops/opencode-guidance |
Rendering-Reihenfolge, Risk Badges, Approval-Hinweise |
GET /ops/self-service-templates |
sichere Startpunkte für Standardaufgaben |
POST /ops/change-review/preflight |
zweiter Review-Layer vor Changes |
GET /ops/safe-mode-policy |
Incident-/Safe-Mode-Verhalten |
OpenCode soll Roh-JSON nur auf Nachfrage anzeigen. Standardmäßig reichen Operator Summary, Risiko, Blocker, Approval-Text und nächste sichere Aktion.
Lock-Konflikt Summary¶
Bei Lock-Konflikten muss die Operator Summary kompakt und eindeutig bleiben:
- Gesamtentscheidung:
blocked_by_lock - Warum blockiert: aktiver, stale, orphaned oder failed-release Lock
- Sicher als naechstes:
inspect_lock,inspect_chain_status,state_drift_check,recovery_preflight - Nicht tun: keine automatische Freigabe, keine automatische Folge-Chain, keine Fortsetzung nur wegen Timeout
Wenn kein echter Queue-Mechanismus aktiv ist, darf OpenCode keine wartende Chain darstellen. Die Chain ist blockiert; der Operator plant sie nach erfolgreicher Lock-Recovery neu und fuehrt die Validierung erneut aus.