Plant-floor AI has a reliability ceiling that hits faster than most teams expect. The operator copilot needs to read alarm states correctly, reference asset IDs that match the CMMS, and suggest actions that fit the plant's actual operating procedure. The gap between "impressive in a pitch" and "trusted by the control-room operator" is usually not a model problem — it's an integration problem. We close that gap.
Operators compare the AI summary against the actual alarm list every time, for the first month. Any drift — wrong severity, wrong count, stale state — and the copilot loses the operator. The alarm state must be read from the source, never from model memory or summary.
Industrial assets have long structured IDs (site / line / cell / device). LLM text that drops a segment, or fabricates a full ID, breaks the downstream action. IDs come from the asset tool, never from model output.
SOP knowledge ("if temperature spike in cell 3, acknowledge within 2 minutes") does not belong in the system prompt. It belongs in retrieval or in the state machine. Prompt-encoded SOPs are brittle, expensive, and fail silently on update.
Industrial CMMS systems (Maximo, SAP PM, custom) are the target the copilot must serve. Screen-scraping or CSV integration looks pragmatic and rots in a quarter. Typed integration boundaries stay stable.
Integration audit of the existing IIoT stack — telemetry historian, CMMS, alarm manager — and the operator touchpoint the AI serves
Retrieval layer for SOP and asset knowledge — kept out of the prompt, versioned, queryable
Typed UI contracts for operator actions (acknowledge, escalate, schedule-job) — structured, not prose
Eval harness watching operator-critical classes: ID fabrication, alarm drift, SOP misapplication
Handover runbook — the control-room team owns the copilot after us