02 — System Diagram

🔍 Open the Interactive Diagram Viewer — pan, zoom, per-area tabs, the full ERD and a focus mode.

Regenerate the viewer after any DSL, menu_config.yaml or diagram_config.yaml change: python scripts/build_diagram_viewer.py maintenance_schedule.

flowchart TD
  P[MaintenancePlan]
  T[PlanTrigger]
  I[PlanInclusion]
  S[ScheduleItem]

  P --> T
  P --> I
  P --> S
  S -- incorporated into --> S

The unit, the maintenance group, the SMCS code and the Work template are named by network id (asset_cid, asset_group_cid, smcs_cid, maintenance_template_cid); they belong to the Asset Register, Classification and Work Management.

Where it sits in the network

sequenceDiagram
  participant AR as Asset Register
  participant LC as Asset Lifecycle
  participant S as Scheduled Maintenance
  participant O as Orchestrator
  participant W as Work Management
  participant C as Condition Monitoring
  S->>AR: asset.group_membership, asset.current_configuration (direct, read-only)
  S->>LC: lifecycle.current_usage, usage_at, life_status (direct, read-only)
  Note over S: next due per trigger; the earliest governs; status
  S->>O: work.create_work_order (command: unit, title, template)
  O->>W: deliver — a draft work order from the template
  W->>O: work.work_order_created
  O->>S: deliver — the item learns its order
  W->>O: work.work_closed
  O->>S: deliver — last done, reset the lesser services, next cycle
  O->>S: deliver — a one-off item
  AR->>O: asset.group_assignment_changed / status_changed
  O->>S: deliver — generate or close the unit's items
  S->>O: schedule.item_due / item_overdue / item_deferred