The signals were always there.Nothing was reading them together.
Gas detection clears it. The permit is valid. Both workers are certified. Every system says yes — and the combination kills people. SOP Opera reads them as one picture, and turns what it finds into a decision somebody owns.
The gap
Every system says everything is fine. Together they are not.
Industrial plants are already instrumented. The failure is not missing data — it is that each system judges its own slice in isolation, so a combination that is obviously dangerous to a human never registers anywhere as an alarm.
Read together, the same four readings describe hot work authorised beside rising gas with people in the blast path.
The proof
Measured against the alarm philosophy it replaces.
A labeled case set runs through three detectors on every build. The metric that matters is the false-negative rate — the dangerous situations a detector fails to flag at all.
- Recall
- —
- Precision
- —
One reading, one threshold — today's alarm philosophy.
- Recall
- —
- Precision
- —
Extrapolates where a reading is heading.
- Recall
- —
- Precision
- —
Correlates readings, permits, isolation and people.
Live from the evaluation harness · GET /api/eval/summary
How it works
Deterministic where it must be. Generative only where it helps.
Rules detect. Agents correlate. Retrieval grounds. A human decides. Each stage is separately inspectable, which is what makes the output defensible after an incident.
- 01
Context arrives
POST /contextSensor readings, permits, isolation state, worker location and shift logs land through one provider interface — the same seam a live SCADA or permit system plugs into.
- 02
Rules derive facts
derived_facts.pyDeterministic Python turns raw context into named facts — elevated gas, permit conflict, incomplete isolation, zone occupied. No model decides what is true.
- 03
Agents correlate
LangGraphA multi-agent graph fans out only where the facts warrant: source agents per domain, then spatial, predictive-trend, and shift-handover carry-forward, then incident-pattern on elevated verdicts.
- 04
Retrieval grounds it
pgvector + SQLHybrid retrieval pulls regulations, prior incidents and SOPs — vector search first, deterministic SQL as a guaranteed fallback so citations are never empty.
- 05
A human decides
POST /decisionsThe assessment explains what the combination means and recommends. The supervisor approves, conditions or blocks — and that call is the binding act.
- 06
Evidence freezes
Audit trailThe context and assessment cited at decision time are snapshotted, follow-up tasks are dispatched to the area supervisor, and a report closes the loop.
The product
Two roles, two surfaces, one thread between them.
The control room runs the assessment and owns the decision. The area supervisor receives what that decision requires and closes it out. Nothing crosses roles that shouldn't.
Operator dashboard
A live floor map across three levels. Assets carry their current risk, telemetry drifts in real time, and anything that turns blocking announces itself.
Reasoning trace
Click an asset and read the chain backwards: which context arrived, which rules fired, which agents ran, which regulations were retrieved.
Supervisor queue
Area supervisors see only their zones — the tasks a decision generated, waiting to be acknowledged and cleared before work resumes.
Audit record
Every transition is appended, every decision freezes its evidence, and closure generates a report an investigator can actually follow.
Architecture
Selective fan-out, not a model loop.
Agents run only where the facts justify them — a nominal review costs one orchestrator pass. Retrieval is driven by the orchestrator, never chosen by the model, so a citation is always available for the record.
Gated fan-out — agents without matching facts never run.
Durable job queue
Assessments are claimed with FOR UPDATE SKIP LOCKED, so jobs survive restarts and parallel workers never double-run the same review.
Hybrid retrieval
Vector search over a seeded corpus of regulations, prior incidents and SOPs, with a quality gate and a deterministic SQL fallback beneath it.
Knowledge graph
Equipment, zones, permits and people are related spatially, so proximity risk is computed rather than guessed.
Structured output
Every model response is schema-validated with a retry; a failure surfaces to the supervisor instead of degrading quietly into prose.
The decision already happens. Make it visible.
Run the full loop — a plant going critical, an assessment that explains why, a decision on the record and the report that follows it.