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
DISAPPROVEDworkflow 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-systemetc.) 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
| Metric | Detail |
|---|---|
| Runs executed | Count + sparkline, sub-line by outcome |
| Auto-remediation success rate | succeeded ÷ completed, n visible |
| MTTR: auto-remediated vs human-remediated | From your own incident data, not a hardcoded baseline. The money metric. |
| Human interventions | Pauses/aborts/steers, trend arrow (down = trust compounding) |
| Rollbacks triggered | Count + 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:
| Control | Behavior |
|---|---|
| ⏸ Pause | Halts between steps only (steps are atomic-or-skipped; never mid-kubectl apply). State preserved. |
| ▶ Resume | — |
| ⏹ Abort | Stop, leave cluster as-is. |
| ↩ Rollback | Stop + 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)