Skip to main content

Reflex — Workflow Execution Engine

Shared Foundations (Reflex)

Vocabulary

  • Workflow = the remediation definition.
  • Run = one execution of a workflow.
  • Fix Report = the auto-generated documentation of a run. "Playbook" stays exclusively Neuri's term.

Two State Machines

Workflow (definition):

DRAFT → SHADOW → PENDING_APPROVAL → APPROVED → (DISAPPROVED / ARCHIVED)

  • Versioned exactly like Neuri RCAs: every edit forks v{n+1}, lineage chain rendered, soft delete with 30-day recovery.
  • Sub-state EDITING — in Gills with soft lock + 24h decay (identical pattern to Neuri).
  • A DISAPPROVED workflow is pulled from live eligibility immediately, audited.

Run (execution):

TRIGGERED → RUNNING ⇄ PAUSED → SUCCEEDED / FAILED / ABORTED / ROLLED_BACK

Shadow runs: SIMULATED_SUCCEEDED / SIMULATED_FAILED

General Principles

  • Per-environment everything — integrations, guardrails, execution policy — same as Neuri: env switcher is load-bearing, active env chip on every screen title, org-enforced floor rules render locked with "Enforced by org policy" badge.
  • Every action is audited — runs, approvals, interrupts, guardrail edits, credential changes: who/what/when/old→new, immutable, exportable.
  • Credential separation from Neuri — Reflex holds write credentials; never share credential objects with Neuri's read-only connectors. Independently revocable.
  • Severity colors — same scale as Neuri (CRITICAL red → SEV5 gray). One visual language across the suite.

Integrations

Card grid, per-environment, same pattern as Neuri Screen 1 but every card badged EXECUTE to signal write access.

Kubernetes (execution target)

  • Service-account setup with an explicit permission manifest shown at connect time: the exact RBAC verbs/resources requested (rollout restart, scale, patch ConfigMap, delete pod, cordon/drain…). Nothing hidden — security reviewers see the full ask upfront.
  • Namespace allowlist: default none, explicit opt-in per namespace. Forbidden namespaces (kube-system etc.) enforced from Guardrails.
  • Test connection = server-side dry-run no-op; shows result + round-trip inline.

ArgoCD (execution target)

  • Capabilities: sync, rollback-to-revision. App/project allowlist. API endpoint + token.

Slack (notification + approval channel)

  • Channel mapping per severity + per event type (run started / needs approval / completed / failed / Fix Report).
  • Human-approval requests land here: "Reflex proposes: restart payments-api — Approve / Deny / View." Approve buttons deep-link back into the platform with auth — no blind approvals from a lock screen; tapping opens the Run Detail first.

Upcoming Integrations

PagerDuty, Jira, GitHub (auto-PR remediations), Confluence (Fix Report publishing), and many more.


Workflow Maker

One canvas, three creation paths.

The Canvas (shared by all paths)

  • Trigger definition (top): which Neuri RCA category/pattern fires this workflow + severity filter + env filter. Also supports manual-only trigger (run on demand, no auto-fire).
  • Step cards, sequential with branching: each = action (picked from the allowlisted action catalog only — restart deployment, scale, ArgoCD rollback/sync, patch ConfigMap, run diagnostic query, notify Slack, wait-for-human-approval step), target selector, parameters, timeout, retry policy.
  • Required per step: an on-failure branch (continue / abort / rollback) and a rollback definition — or an explicit irreversible ⚠ flag, which subjects the step to the irreversible-action policy in Guardrails.
  • Validation on save: unreachable steps, missing rollbacks, actions outside allowlist, guardrail conflicts (depth, cost caps), targets outside namespace allowlist. Save blocked with inline errors, not warnings.
  • Simulate button: dry-run against current cluster state → step-by-step plan + predicted blast radius (resources touched, namespaces), zero execution. The single strongest trust feature on this screen.

Path 1 — Manual

Blank canvas. Save (→ DRAFT) / Edit / Delete.

Path 2 — AI-assisted (from Neuri)

Canvas pre-populated from an approved RCA. Banner: "Generated from RCA: payments-api OOMKill (v3, approved)" linking back to Neuri Screen 4. Proposed steps shown diff-style (what Reflex inferred and why, per step — reasoning note on each card). Buttons: Edit / Approve to Shadow. Approval here promotes to SHADOW only — nothing skips shadow.

Path 3 — Natural Language → Gills

Snapshot draft, mark EDITING — in Gills, soft lock visible to other users ("Being edited in Gills by @priya — open read-only?"), manual navigation back, returned version lands as new DRAFT version + notification. 24h lock decay.

Every save = new version with lineage. Version notes auto-capture diffs ("Step 4 changed from restart to scale-then-restart").


Workflow Library

One list, two tabs backed by workflow status — not duplicated sections.

Tab A — Approved (live-eligible)

Tab B — Awaiting Approval (shadow graduates), count badge

Row Anatomy

  • Workflow name + version chip + lineage indicator
  • Trigger summary (RCA pattern + severity + env chips)
  • Shadow record — replaces single Success/Failed state: 12 runs · 10 ✓ / 2 ✗ · avg confidence 84%, with expander showing per-run list. Confidence is aggregate, per-run confidences inside.
  • irreversible steps: 1 ⚠ flag if applicable
  • Last run timestamp + outcome dot
  • graduation criteria met ✓ badge (Tab B, from Screen 7 thresholds)

Row Actions

  • RCA Triggered → Neuri Screen 4 Mode A for the source RCA
  • View runs → filtered run history
  • Run now (Tab A only; respects execution-mode matrix — in propose mode this fires an approval request, not an execution)
  • Edit → Screen 2, forks new version
  • Approve (Tab B) — disabled until the shadow-record expander has been opened at least once this session; no rubber-stamping unseen records
  • Disapprove (both tabs) — confirm dialog; Tab A disapproval pulls from live immediately
  • Delete (soft), Create (header-level, → Screen 2)
  • Bulk select: approve / disapprove / archive / delete

Row expansion: trigger, step summary, shadow record chart, linked RCAs, linked incidents.

Empty States

  • Tab A — "No approved workflows yet. Approve shadow graduates or create one →"
  • Tab B — "Shadow mode hasn't produced candidates yet" + link to Screen

Analytics

Per-env + all-env toggle, window picker (default 15d).

KPI Strip

MetricDetail
Runs executedCount + sparkline, sub-line by outcome
Auto-remediation success ratesucceeded ÷ completed, n visible
MTTR: auto-remediated vs human-remediatedFrom your own incident data, not a hardcoded baseline. The money metric.
Human interventionsPauses/aborts/steers, trend arrow (down = trust compounding)
Rollbacks triggeredCount + link to those runs

Charts

  • Runs/day bars, color = outcome; toggles: by severity / by workflow / by env.
  • Shadow vs live divergence: simulated success rate vs live success rate per workflow — divergence = simulation fidelity problem, surface it before customers find it.
  • Workflow leaderboard: top by run count and success rate; failure flags ("payments-restart: 3 consecutive failures — review?").
  • Cost section: token spend per run/aggregate vs monthly budget; per-workflow cost ranking.
  • Activity log: every run, approval, disapproval, interrupt, guardrail change, credential change — one operational timeline, filter chips, links into Run Detail.

Screen 5 — Guardrails

Same chrome as Neuri's: RBAC-gated editing (Admin/SRE Lead), per-row save, immutable audit rail, per-env with org-enforced floors.

Execution Mode Matrix (centerpiece)

Severity × environment grid, each cell = Disabled / Shadow only / Propose (human approves each run) / Auto-execute. Default everything to Shadow. Auto-execute is earned, never default.

Configuration Options

  • Action allowlist: global catalog of permitted action types — anything unlisted cannot be placed on the Workflow Maker canvas at all.
  • Blast radius caps: max resources touched per run · max namespaces per run · forbidden namespaces (pre-seeded: kube-system) · max concurrent runs (global + per-workflow).
  • Bounds: max workflow step depth · max token spend per run · max run duration · max retries per step · monthly execution budget (drives meters). Each row shows p50/p95 of actual recent usage next to the input.
  • Irreversible-action policy: Block / Require named-role approval / Allow — per env.
  • Freeze windows: cron-style schedules where auto-execute degrades to propose-only (change freezes, holidays).
  • Rollback policy: auto-rollback on step failure on/off · rollback timeout · post-run rollback-available window.
  • Approval policy: roles that can approve shadow→live promotion · optional two-person rule for prod · whether manual "Run now" bypasses or respects propose-mode (recommend: respects).
  • On-limit-hit behavior: pause-and-notify vs abort — every limit hit logged.

TelevisionOps → Live Run Detail

Level 1 — TelevisionOps (the wall)

Full-bleed dark-theme grid, NOC-screen optimized. TV mode toggle: hides nav chrome, auto-refresh, auto-rotate on overflow.

Tile per run: workflow name, incident link, env, severity color edge, current step (3/7 — scaling deployment payments-api…), progress bar, elapsed, confidence, state pill. Live-streaming updates.

  • Sort: active first; completed runs fade after N minutes (configurable).
  • Filters: env, severity, state.
  • PAUSE ALL — global big-red control, org-admin only, confirm dialog, audited. Platform-wide kill switch when everything is going sideways.
  • Empty state: "No active runs. Reflex is watching." + last-24h summary strip.

Level 2 — Live Run Detail (click any tile)

Header: workflow + version, run ID, incident link, env, severity, state, elapsed, running token spend.

Chain-of-thought stream: every step as it executes — Reflex's reasoning, the exact command/API call issued, target, result, timestamp. Same streamed-trust pattern as Neuri's investigation checklist. Executed steps immutable.

RCA panel: triggering RCA's reasoning steps inline + "RCA Triggered" → Neuri Screen 4 Mode A.

Controls — three verbs, not one:

ControlBehavior
⏸ PauseHalts between steps only (steps are atomic-or-skipped; never mid-kubectl apply). State preserved.
▶ Resume
⏹ AbortStop, leave cluster as-is.
↩ RollbackStop + execute the undo chain of completed steps.

All attributed + audited. Pause auto-escalates to Slack if paused > N minutes with no action.

Steering (while paused): remaining steps become editable (add/edit/reorder/delete from allowlist). Editing forks v{n+1}-draft scoped to this run; banner: "Run continuing on v4-draft." On successful completion → one-click "Save as v4 to library" (lands as PENDING_APPROVAL, not auto-approved). Deeper steering → Edit in Gills, same handoff/lock pattern.

Post-run panel: outcome, cluster before/after diff, rollback-available countdown, feedback 👍/👎 (feeds workflow confidence).

Fix Report (auto-generated per completed run)

Contents: incident link, triggering RCA (→ Neuri), workflow + version, executed steps (commands, targets, timestamps, results), cluster diff, duration, interventions (who/what), final outcome.

Destinations: incident Slack channel (auto), attached to Regen incident record, export MD/PDF.

Postmortem draft button: assembles Neuri RCA + Fix Report + timeline into a postmortem skeleton. One click. Genuinely sellable — postmortem writing is hated toil and you hold every ingredient.

  • Version-note enrichment: steered-run diffs auto-captured.
  • Retention: Fix Reports permanent; raw command outputs follow the 30-day purge.

Shadow Mode Configuration

In-product definition: "Reflex runs the full decision loop on real incidents but executes nothing — every action is simulated against live cluster state and recorded as a simulated run."

Configuration

  • Scope: which envs, severities, and workflow categories run in shadow.
  • Simulation fidelity: K8s server-side dry-run + ArgoCD preview where supported, vs plan-only elsewhere; fidelity level shown per integration so nobody over-trusts a plan-only simulation.
  • Graduation criteria (the earned-trust pipeline): "eligible for approval after ≥ N shadow runs with ≥ X% simulated success and ≥ Y avg confidence" — configurable. Qualifying workflows auto-surface in Screen 3 Tab B with the graduation criteria met ✓ badge.
  • Shadow notifications: "what Reflex would have done" summaries to a Slack channel — incident-by-incident receipts of value before you're granted write access. Your strongest adoption artifact.
  • Shadow run retention: align with 30-day policy (recommend yes).

What's Next

Reflex is the 3rd tool in Fluidify AI's broader AI-SRE suite. Coming next:

  • Gills — a conversational, natural-language interface to your backend systems

We'd keep announcing latest changelogs, roadmaps and other stuff on our Github pages and Slack community)