Core · Human approval

Machines investigate. Humans still own prod.

Every remediation waits in AWAITING_APPROVAL. You see the command, the blast radius, the dry-run, and the evidence — then approve, reject, or walk away. No silent writes. Ever.

01 · The gate

Approval is a hard state machine — not a suggestion

Incidents move to AWAITING_APPROVAL with a parsed remediation plan. Until a human hits approve, RemOps Agent has nothing to poll. Reject returns you to a safe idle without side effects.

  • POST …/approve and POST …/reject are first-class API routes
  • Dashboard mirrors the same gate your API enforces
  • No “auto-remediate prod” backdoor in the default path
state machine
INVESTIGATING
   ↓ report + plan ready
AWAITING_APPROVAL  ← you are here
   ↓ approve
APPROVED → queued for agent
   ↓ agent result
RESOLVED / FAILED

reject → no execution · audit kept

02 · Action preview

Know exactly what will run before you tap green

The approval surface shows targets, parameters, dry-run outcome, and policy status. If you would not paste the command into your own terminal, you should not approve it here either — and RemOps makes that judgment easy.

  • Action type and destination (namespace, resource, PR)
  • Dry-run passed / failed with reason
  • Blast radius summary in plain language
approve · INC-2847

Patch ConfigMap + restart payments-api

payments-db-pool · max_connections: 100
then rollout restart deploy/payments-api in payments

dry-run ok policies green blast: 1 svc

✓ Approve Reject Details

03 · Audit

Who approved what, when, and why it was proposed

Compliance conversations get easier when the loop is boringly explicit. Approver identity, timestamps, plan contents, and execution outcomes stay attached to the incident — ready for postmortems and audits.

  • Approver attribution on the incident record
  • Plan + evidence retained after resolve
  • Reject reasons preserved for learning
audit trail
3:41 AMPlan proposed · rollback payments-db-pool
3:42 AMApproved by dara@ · role: on-call
3:43 AMAgent execution started · action_id 9f2a…
3:43 AMverified p99 210ms · RESOLVED

04 · After approve

Approval queues work — it does not run it in our cloud

Approved incidents become pending executions for RemOps Agent. Soft launch without an agent still teaches the loop; full launch completes when the agent heartbeats and reports results. Next: In-cluster execute.

agent poll
GET /agent/executions/pending
 1 action · patch_configmap + restart
… run locally …
POST /agent/executions/{id}/result
status success · verified

Shipping every week.

  • Approve / reject APIFirst-class human gate on every remediation.
  • Dry-run surfacingPreview before the green button.
  • Approver auditIdentity + timestamp on the incident.
  • Soft-launch approveQueue executions even before an agent is online.

Frequently asked questions

The default product truth is human approval for writes. Autonomy policies can be discussed for constrained classes of action — production writes still respect your org’s gate.

Members of your RemOps organization with access to the incident on the dashboard (and equivalent API credentials).

Stop the agent or reject subsequent steps; contact support for incident forensics. Prefer dry-run review — the preview exists for this reason.

Approve works without an agent (soft launch). Execution completes only when RemOps Agent is connected and polling.

Dashboard incident list filtered to AWAITING_APPROVAL, plus the incident detail page.

Keep the pager human. Keep the fix gated.

Approve when the evidence is good. Sleep when it is not your turn to type kubectl.