How activity reaches people
From a detected clash to a notification, a task, and a briefing.
Detecting that two work areas overlap is only half the job; the other half is getting that fact in front of the right person at the right time. SimOops calls this surfacing.
From event to notification
A change on site raises a DomainEvent onto the EventBus. The RulesEngine matches events against NotificationRules and routes the result through a Channel — in-app or email. An action-requiring result becomes a Task; an informational one becomes a Notification that lands on the Noticeboard. The per-user Briefing rolls the day's surfaced items into a single on-entry summary.
Who sees a clash
Not everyone sees everything. Authority flows through Contractor oversight: a Main contractor supervises subordinate Contractors, and a clash is a Relevant clash to a coordinator when it touches an entity they oversee. The clash itself is detected by the declarative engine — every rule in the catalogue is a small predicate program:
Because the rules are data, adding a new clash type is a catalogue change, not a code change — which is exactly why this reference can be generated straight from the engine's source.