System
Active Remediation Rules Manage
Incident Insight
Error Categories (today) Details
Model Routing (today) Configure
Healing & Risk Insights
Reports All
Messages
Error Classification
Zenops classifies each incident deterministically, then routes it to the cheapest model tier capable of solving it. Classification drives routing, severity, diff budget and autonomy tier.
π Current incident β classified
Taxonomy & routing matrix
| Error type | Severity | Tier | Model | Diff budget | Today | Ledger prior |
|---|---|---|---|---|---|---|
| βοΈ Syntax / Lint | Low | β‘ Fast | Claude Haiku | 2 files / 20 lines | 7 | 94% |
| π¦ Dependency / Package | High | β‘ Fast | Claude Haiku | 2 files / 20 lines | 2 | 88% |
| βοΈ Configuration | Medium | β‘ Fast | Claude Haiku | 3 files / 40 lines | 4 | 81% |
| βοΈ Infrastructure / Timeout | Medium | β‘ Fast | Claude Haiku | 3 files / 40 lines | 2 | 72% |
| π¨ Build / Compilation β matched | Critical | βοΈ Balanced | Claude Sonnet | 6 files / 120 lines | 3 | 76% |
| π§ͺ Test Failure | High | βοΈ Balanced | Claude Sonnet | 6 files / 120 lines | 5 | 69% |
| π Security Vulnerability | Critical | π Powerful | Claude Opus | Human only | 1 | 51% |
| π Deployment / Runtime | High | π Powerful | Claude Opus | Human only | 1 | 58% |
Auto-Remediation
The end-to-end healing lifecycle for a live incident. Select an incident to see the flow it actually took β the path differs by issue type, severity and confidence.
Approval Gates
Every automated change passes a gate sized to its confidence. Approvals are served as Teams Adaptive Cards backed by Step Functions task tokens β nothing merges silently.
Pending approvals Refresh
| Incident | Repo / Build | Error type | PR | Confidence | Blast radius | SLA | |
|---|---|---|---|---|---|---|---|
| INC-4471 | orion-api-service Build 683210 |
π¨ ScriptExecutionError | #120433 | 0.78 T2 | 1 file Β· 4 lines | 22m left | |
| INC-4468 | bedrock-teams-lambda Build 664465 |
π¦ DependencyConflict | #117663 | 0.91 T2 | 1 file Β· 2 lines | 3h 11m left |
Autonomy tiers
Gate configuration
AI Models
Routing is deterministic β a rules classifier picks the tier, never another model. Each tier has a three-provider fallback chain, so an outage degrades latency rather than availability.
Tier configuration
| Tier | Primary model | Fallback 1 | Fallback 2 | Share today | Avg cost / incident | Status |
|---|---|---|---|---|---|---|
| β‘ Fast | Claude Haiku 4.5 | Azure GPT-4o-mini | Self-hosted Llama | 62% | $0.004 | β Online |
| βοΈ Balanced | Claude Sonnet 5 | Azure GPT-4o | Claude Haiku 4.5 | 31% | $0.021 | β Online |
| π Powerful | Claude Opus 5 | Claude Sonnet 5 | Azure GPT-4o | 7% | $0.094 | β Online |
| π Replay | None β ledger patch | β | β | 61% of hits | $0.000 | β Online |
Cost controls
Context assembly budget
Security
Generated code passes six gates before it can merge. Layers L0βL2 and L4 are deterministic; the security LLM at L3 can veto but can never unblock what a deterministic layer rejected.
Gate layers β evaluation order
Diff budget by autonomy tier
| Tier | Max files | Max lines | Notes |
|---|---|---|---|
| T4 Auto-promote | 2 | 20 | Non-critical paths only |
| T3 Auto-staging | 3 | 40 | Soak required |
| T2 Assisted | 6 | 120 | Teams approval |
| T1 Suggest | 12 | 400 | Draft PR only |
Recent gate decisions
| Incident | Blocked at | Reason |
|---|---|---|
| INC-4462 | L4 Policy | Patch touched payments/ β human-only path |
| INC-4455 | L1 Shape | Diff budget exceeded (9 files) β demoted to T1 |
| INC-4451 | L2 Scanner | semgrep: unsanitized input reaching SQL string |
| INC-4448 | Passed | All layers clean Β· merged at T2 |
β οΈ Threat model β prompt injection via build logs
Policies
Hard constraints live as code and are evaluated deterministically after the patch exists and before approval. Soft conventions are retrieved as context instead of enforced.
Hard constraints (OPA / Rego)
| Rule | Condition | Effect | Fired (7d) | State |
|---|---|---|---|---|
| No auto-merge to main | target_branch == "main" && action == "auto_merge" | Deny | 4 | |
| Payments path is human-only | startswith(file, "payments/") | Deny | 1 | |
| IaC is suggest-only | endswith(file, ".tf") && tier != "T1" | Demote | 2 | |
| Prod needs two approvers | env == "prod" && count(approvers) < 2 | Deny | 0 | |
| No CI config self-edit | startswith(file, ".github/workflows/") | Deny | 3 | |
| Circuit breaker | attempts_on_signature >= 3 | Quarantine | 1 |
Soft conventions (retrieved as context)
Loop & storm protection
Integrations
Every source normalizes into one canonical incident through a provider adapter. No vendor SDK exists outside its adapter, so adding a new SCM is one class β not a rewrite.
Source Control & CI
Monitoring & Telemetry
Chat, Tracing & Infrastructure State
Notifications
Two audiences, two channels. The awareness stream never asks for a decision; the decision surface always carries evidence.
π’ Awareness channel β SelfHealing-user
β Decision channel β Selfhealing-admin
Card content β V3 additions over the live card
| Field | Live card today | V3 card |
|---|---|---|
| Root cause + error type | Present | Kept |
| Build ID + PR ID + deep links | Present | Kept |
| Confidence + autonomy tier | Missing | Added |
| Blast radius (files / lines) | Missing | Added |
| Gate evidence L0βL4 | Missing | Added |
| Ledger precedent (seen NΓ) | Missing | Added |
| Inline diff preview | Missing | Added |
| Explicit Approve / Reject buttons | Link-out only | Added β reject needs reason |
| SLA countdown + escalation | Missing | Added |
Reports
Outcome metrics computed from the Fix Ledger, not estimated. Every number joins back to a trace.
Outcome vs baseline
| Metric | Baseline | Current | Target | Progress |
|---|---|---|---|---|
| Mean time to detect | 15β30 min | 38 sec | < 1 min | |
| Mean time to resolve | 2β6 hours | 18 min | < 15 min | |
| Pipeline success rate | 65β75% | 86% | 90%+ | |
| Repeat failure rate | 40% | 14% | < 15% | |
| Escalation rate | 30% | 12% | < 10% | |
| AI cost per incident | β | $0.019 | < $0.08 |
Riskiest pipelines
| Pipeline | Failures 7d | Auto-fixed | Top error class |
|---|---|---|---|
| orion-api-service | 14 | 11 (79%) | π¨ Build |
| bedrock-teams-lambda | 9 | 8 (89%) | π¦ Dependency |
| atlas-platform-release | 7 | 4 (57%) | π§ͺ Test |
| poc-chatbot | 5 | 5 (100%) | βοΈ Lint |
Ledger economics (7d)
Audit Log
Immutable event trail. Every row carries a trace_id that joins to the OpenTelemetry trace and the Fix Ledger row.
| Time (UTC) | Incident | Event | Actor | Detail | trace_id |
|---|---|---|---|---|---|
| 10:08:24 | INC-4471 | webhook.received | azure_devops | Build 683210 failed Β· orion-api-service | 4bf92fβ¦a3f9 |
| 10:08:26 | INC-4471 | incident.classified | rules-classifier | ScriptExecutionError Β· conf 0.96 Β· tier Balanced | 4bf92fβ¦a3f9 |
| 10:08:41 | INC-4471 | patch.generated | claude-sonnet-5 | 1 file Β· 4 lines Β· 8.4k in / 1.1k out Β· $0.021 | 4bf92fβ¦a3f9 |
| 10:08:44 | INC-4471 | gates.passed | zenops-gates | L0 β L1 β L2 β (0 findings) L3 β L4 β (6 rules) | 4bf92fβ¦a3f9 |
| 10:08:52 | INC-4471 | pr.opened | zenops-bot | PR #120433 β develop | 4bf92fβ¦a3f9 |
| 10:08:54 | INC-4471 | approval.requested | zenops-bot | Card β Selfhealing-admin Β· TTL 4h | 4bf92fβ¦a3f9 |
| 09:41:12 | INC-4462 | gate.blocked | opa-policy | L4 deny: payments/ is a human-only path | 7c1de0β¦b204 |
| 09:22:03 | INC-4455 | tier.demoted | zenops-gates | L1 diff budget exceeded (9 files) β T1 | 2ab88fβ¦c9e1 |
| 08:55:37 | INC-4448 | approval.granted | admin@zenops-test | Approved in 3m 12s Β· merged | 91fd4cβ¦7e30 |
| 08:59:02 | INC-4448 | validation.passed | zenops-validator | Named test green Β· coverage +0.1% Β· scanners clean | 91fd4cβ¦7e30 |
Settings
Tenant configuration, budget guardrails, observability export and autonomy defaults.