1
0
Files
2026-05-18 14:05:37 +03:00

348 lines
13 KiB
YAML

kind: uapf.resources.mapping
version: "0.3.0"
# ===========================================================================
# HOW TO READ THIS FILE
# ---------------------------------------------------------------------------
# UAPF separates the *logic* of a process (the BPMN / DMN / CMMN cornerstones)
# from the *resources* that execute it (institutions, systems, AI agents).
# This file is that binding layer.
#
# targets - every institution, system or agent that can do work here.
# bindings - one row per executable element in the three cornerstones.
# Each row names the element, says which target performs it,
# and in which execution mode.
#
# Each binding carries:
# element - "<cornerstone>.<kind>:<id>" e.g. bpmn.task:Task_DispatchBroadcast
# label - the human label as it appears in the diagram, so a reader can
# point at a box on the canvas and find its row here.
# targetId - the single primary target that performs the element.
# mode - manual : a person performs it, no automation
# assisted : a system/AI proposes, a person approves
# supervised : a system performs it, a person monitors
# autonomous : a system performs it without per-call review
#
# Consulted / informed parties (RACI C and I) are NOT bindings; they are in
# docs/02-raci.md. Endpoints and credentials below are ILLUSTRATIVE draft
# placeholders.
# ===========================================================================
legend:
cornerstones:
bpmn: bpmn/drone-threat-public-address.bpmn
dmn: dmn/air-threat-decisions.dmn
cmmn: cmmn/field-response-investigation.cmmn
element_kinds:
bpmn.task: A BPMN activity (plain, business-rule or user task).
dmn.decision: A DMN decision evaluated by a BPMN business-rule task.
cmmn.humanTask: A discretionary human task inside the investigation case.
modes: [manual, assisted, supervised, autonomous]
# ---------------------------------------------------------------------------
targets:
- id: nbs.air-surveillance
type: system_api
name: NBS air-surveillance & radar network
description: Detection and tracking feed for airborne objects near the eastern border.
capabilities: [lv.gov.civdef.air_surveillance_feed]
endpoint: "https://surveillance.mil.lv/api/v1"
authentication: {method: mtls}
availability: {schedule: always, timezone: Europe/Riga}
- id: nbs.joint-staff
type: human_role
name: NBS Joint Staff (Apvienotais stabs), operational duty
description: >-
Holds air-threat classification, public-notification request and
interception authorisation authority. The decision owner of this process.
availability: {schedule: always, timezone: Europe/Riga}
- id: nbs.air-defence
type: human_role
name: NBS air-defence units (pretgaisa aizsardziba)
description: Ground-based air defence; executes or coordinates interception.
- id: vugd.duty
type: human_role
name: VUGD operational duty / 112 (State Fire and Rescue Service)
description: Receives 112 calls; executes site fire and rescue response.
- id: vugd.cell-broadcast
type: system_api
name: Cell-broadcast system (sunu apraide), operated by VUGD
description: >-
Public early-warning cell-broadcast platform. The 40-minute dispatch
delay to Rezekne on 7 May 2026 is the failure this package addresses.
capabilities: [lv.gov.civdef.cell_broadcast]
endpoint: "https://cb.vugd.gov.lv/api/v1"
authentication: {method: api_key, configRef: secrets/vugd-cell-broadcast}
availability: {schedule: always, timezone: Europe/Riga}
- id: vp.duty
type: human_role
name: State Police (Valsts policija) operational duty
description: Scene security, cordon and public order at incident sites.
- id: nmpd.duty
type: human_role
name: Emergency Medical Service (NMPD) operational duty
description: Casualty assessment and pre-hospital medical response.
- id: kvc
type: human_role
name: Crisis Management Centre (Krizes vadibas centrs)
description: Cross-institutional crisis coordination, escalation and after-action review.
- id: iem.duty
type: human_role
name: Ministry of the Interior (Iekslietu ministrija) duty
description: Interior-sector coordination across VP, VUGD and the State Border Guard.
- id: am
type: human_role
name: Ministry of Defence (Aizsardzibas ministrija)
description: Public communication, origin attribution oversight, algorithm governance.
- id: municipal.civil-protection
type: human_role
name: Municipal civil-protection commissions (cooperation territories)
description: Local civil-protection response and resident enquiry handling.
- id: nato.bap
type: external_party
name: NATO Baltic Air Policing
description: Allied air-policing detachment; executes air interception when tasked.
- id: agent.threat-assessment
type: ai_agent
name: Civil-defence threat-assessment assistant
description: >-
AI assistant that recommends object classification and air-threat
severity. Advisory only; never authorises action (see guardrails).
capabilities: [ai.classify, ai.complete]
endpoint: "mcp://agents/civdef-threat-assessment"
authentication: {method: did}
- id: mcp.osint-monitor
type: mcp_tool
name: OSINT / disinformation monitoring MCP tool
description: Surfaces and classifies disinformation about the incident.
capabilities: [ai.classify]
endpoint: "mcp://lv-civdef/osint-monitor"
authentication: {method: oauth2, configRef: secrets/osint-monitor-oauth}
# ---------------------------------------------------------------------------
bindings:
# ---- BPMN process tasks ----
- element: "bpmn.task:Task_TrackObject"
label: "Establish & maintain object track"
targetId: nbs.air-surveillance
mode: supervised
requiredCapabilities: [lv.gov.civdef.air_surveillance_feed]
contract: {timeout: "continuous"}
- element: "bpmn.task:Task_ClassifyObject"
label: "Classify object [Object classification]"
targetId: agent.threat-assessment
mode: assisted
requiredCapabilities: [ai.classify]
notes: "AI proposes the object class; NBS Air Surveillance confirms."
- element: "bpmn.task:Task_AssessSeverity"
label: "Assess air-threat severity [Air-threat severity]"
targetId: nbs.joint-staff
mode: assisted
notes: "AI severity recommendation; NBS Joint Staff confirms the threat level."
- element: "bpmn.task:Task_LogAndMonitor"
label: "Log & monitor (no public alert)"
targetId: nbs.air-surveillance
mode: supervised
- element: "bpmn.task:Task_DetermineUrgency"
label: "Determine notification urgency & SLA [Notification urgency]"
targetId: nbs.joint-staff
mode: assisted
notes: "Output broadcastSlaSeconds becomes the timer on Task_DispatchBroadcast."
- element: "bpmn.task:Task_DetermineBroadcast"
label: "Determine cell-broadcast scope [Cell-broadcast scope]"
targetId: nbs.joint-staff
mode: assisted
notes: "VARAM consulted on the cell-broadcast platform; templates are pre-typed (GAP G3)."
- element: "bpmn.task:Task_AuthorizeBroadcast"
label: "Authorize public broadcast"
targetId: nbs.joint-staff
mode: manual
contract: {timeout: "PT3M"}
fallback: {escalationPath: [kvc], onTimeout: escalate}
notes: >-
GAP G2: in the AS-IS algorithm this authority is the single point of
failure. The KVC escalation path is a proposed v0.3 fallback authority,
not yet institutionally agreed.
- element: "bpmn.task:Task_DispatchBroadcast"
label: "Dispatch public cell-broadcast"
targetId: vugd.cell-broadcast
mode: autonomous
requiredCapabilities: [lv.gov.civdef.cell_broadcast]
contract:
timeout: "from-decision:broadcastSlaSeconds"
retries: {maxAttempts: 2, backoffMs: 2000}
notes: >-
The non-interrupting SLA-breach boundary timer fires if dispatch is not
confirmed within broadcastSlaSeconds and triggers Task_EscalateSla.
- element: "bpmn.task:Task_EscalateSla"
label: "Escalate SLA breach to Crisis Mgmt"
targetId: kvc
mode: manual
notes: "Runs only when the SLA boundary timer fires; this is the Rezekne safeguard."
- element: "bpmn.task:Task_NotifyAgencies"
label: "Notify KVC, IeM & municipal commissions"
targetId: nbs.joint-staff
mode: assisted
notes: "KVC, IeM and municipal commissions are informed parties."
- element: "bpmn.task:Task_AuthorizeInterception"
label: "Authorize interception [Interception authorization]"
targetId: nbs.joint-staff
mode: manual
notes: "Decision logic gates engagement on positive hostile ID and safety (GAP G7)."
- element: "bpmn.task:Task_GroundEngage"
label: "Ground air-defence engagement"
targetId: nbs.air-defence
mode: manual
- element: "bpmn.task:Task_RequestBAP"
label: "Request NATO BAP engagement"
targetId: nato.bap
mode: manual
notes: "Cross-pool message flow; NATO BAP executes air interception when tasked."
- element: "bpmn.task:Task_MaintainTrack"
label: "Maintain track & monitor"
targetId: nbs.air-surveillance
mode: supervised
- element: "bpmn.task:Task_AssessStandDown"
label: "Assess stand-down criteria [Stand-down & all-clear]"
targetId: nbs.joint-staff
mode: assisted
- element: "bpmn.task:Task_AllClearBroadcast"
label: "Dispatch all-clear broadcast"
targetId: vugd.cell-broadcast
mode: autonomous
requiredCapabilities: [lv.gov.civdef.cell_broadcast]
contract: {timeout: "PT30S"}
- element: "bpmn.task:Task_HandToInvestigation"
label: "Open field-response & investigation case"
targetId: kvc
mode: manual
notes: "Instantiates the CMMN case Case_FieldResponseInvestigation."
# ---- DMN decisions ----
- element: "dmn.decision:Decision_ObjectClassification"
label: "Object classification & confidence"
targetId: agent.threat-assessment
mode: assisted
requiredCapabilities: [ai.classify]
- element: "dmn.decision:Decision_AirThreatSeverity"
label: "Air-threat severity"
targetId: nbs.joint-staff
mode: assisted
- element: "dmn.decision:Decision_NotificationUrgency"
label: "Notification urgency & SLA"
targetId: nbs.joint-staff
mode: supervised
notes: "Deterministic table; NBS Joint Staff may override the SLA tier upward."
- element: "dmn.decision:Decision_CellBroadcastScope"
label: "Cell-broadcast scope & message"
targetId: nbs.joint-staff
mode: supervised
- element: "dmn.decision:Decision_InterceptionAuthorization"
label: "Interception authorization"
targetId: nbs.joint-staff
mode: manual
notes: "Evaluated as decision support; the engage outcome still requires manual command authority."
- element: "dmn.decision:Decision_StandDownCriteria"
label: "Stand-down & all-clear"
targetId: nbs.joint-staff
mode: supervised
# ---- CMMN case human tasks ----
- element: "cmmn.humanTask:HT_DebrisLocalisation"
label: "Localise crash / debris site"
targetId: nbs.joint-staff
mode: manual
notes: "State Police and municipal commissions support localisation."
- element: "cmmn.humanTask:HT_FireSuppression"
label: "Fire suppression at impact site"
targetId: vugd.duty
mode: manual
- element: "cmmn.humanTask:HT_SceneSecurity"
label: "Establish scene cordon & security"
targetId: vp.duty
mode: manual
- element: "cmmn.humanTask:HT_CasualtyResponse"
label: "Casualty assessment & medical response"
targetId: nmpd.duty
mode: manual
- element: "cmmn.humanTask:HT_MunicipalEnquiries"
label: "Handle resident enquiries (112 / municipal)"
targetId: municipal.civil-protection
mode: manual
- element: "cmmn.humanTask:HT_DebrisCollection"
label: "Collect & catalogue debris"
targetId: nbs.joint-staff
mode: manual
- element: "cmmn.humanTask:HT_TechnicalExam"
label: "Technical examination of the UAV"
targetId: nbs.joint-staff
mode: assisted
requiredCapabilities: [ai.classify]
notes: "AI may assist component analysis; conclusions are human-confirmed."
- element: "cmmn.humanTask:HT_OriginAttribution"
label: "Origin attribution analysis"
targetId: nbs.joint-staff
mode: assisted
notes: "Ministry of Defence consulted; AI may assist but never attributes autonomously."
- element: "cmmn.humanTask:HT_DisinfoMonitor"
label: "Monitor & counter disinformation"
targetId: mcp.osint-monitor
mode: assisted
requiredCapabilities: [ai.classify]
notes: "Disinformation surfaced via MCP tool; a human reviews before any correction."
- element: "cmmn.humanTask:HT_PressBriefing"
label: "Public press briefing"
targetId: am
mode: manual
notes: "KVC consulted; public communication requires human authorship per guardrails."
- element: "cmmn.humanTask:HT_AfterAction"
label: "Inter-institutional after-action review"
targetId: kvc
mode: manual
notes: "Ministry of Defence accountable; feeds algorithm revision."