Skip to main content

ADR-0188: Navin Enterprise Predictive Maintenance Agent (UC-06), backend derived by copy and product manifest

  • Status: proposed
  • Date: 2026-11-04
  • Task: t-2b533a7e (brief agent_uses_cases/06_Industrie_Maintenance_Predictive.md)
  • Links: decisions of 2026-11-04 (single frontend, backend derived by copy, template ids of at most 40 characters, UC-06 to UC-10 identities)

Context​

The customer asks for an industrial predictive maintenance agent: asset registry and hierarchy, sensors and series quality, regime-aware monitoring, assisted diagnosis, validated prognostics, CMMS work order preparation, planning and feedback. The service assists maintenance teams; it is neither a safety instrumented system nor a real-time controller. UC-01 and UC-05 provide a complete FastAPI backend whose generic modules can be reused by copy.

Decision​

  • Identity: product_id industrie-maintenance-predictive, prefix /api/v1/industrie-maintenance-predictive, folder navin-enterprise-industrie-maintenance-predictive/, package navin_maintenance, PostgreSQL schema maintenance, dev ports web 3479, API 8477, Redis 6399, template navin-industrie-maintenance-agent (not published), OPA package eai.industrie_maintenance.
  • Backend derived by copy of the UC-05 generic modules, renamed only; the business modules of section 7 and the entities of section 18.1 are written for this product.
  • No own frontend: product.manifest.json drives the shared frontend.
  • Anomaly scores and prognostics are indicators, never decisions; a remaining useful life is only produced by a model validated on the asset type, with interval and validity domain, otherwise insufficient_evidence.
  • No PLC command, setpoint, stop or restart tool exists. Every external effect (CMMS order, part reservation) goes through the Action Gateway with maker-checker, Idempotency-Key, If-Match and the source system confirmation (unknown_pending_confirmation then re-read); never a local "done" status.

Rejected alternatives​

  • Dedicated frontend: refused by the single frontend decision.
  • Extracting a shared Python library first: unstable while several products evolve in parallel.
  • Direct OPC UA or MQTT reads by the LLM: forbidden by section 4.1, approved gateways only.

Consequences​

The product is built in twelve steps (board UC-06 S1 to S12). CMMS, historian, MES and ERP connectors are capability contracts with a deterministic sandbox; these tests validate no real integration.