You've already forked lv-civdef-drone-threat-public-address
Import UAPF package
Import UAPF package: lv-civdef-drone-threat-public-address (1).uapf
This commit is contained in:
37
resources/guardrails.yaml
Normal file
37
resources/guardrails.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
# UAPF-IP guardrails policy for the Drone Threat Public Address process.
|
||||
# Loaded by the runtime at session start as an immutable policy snapshot;
|
||||
# enforced by the host before every capability invocation (see UAPF-IP SPEC §10).
|
||||
|
||||
scope:
|
||||
domain: civil-defence
|
||||
classification: restricted
|
||||
legal_basis: national-civil-protection-law
|
||||
|
||||
ai:
|
||||
allowed_models:
|
||||
- claude-opus-4-7
|
||||
- claude-sonnet-4-6
|
||||
forbidden_inputs:
|
||||
- classified-radar-tracks
|
||||
- personal-data-of-residents
|
||||
- source-identifying-osint
|
||||
pii_redactor: required
|
||||
# AI may never autonomously complete a step in a national public-warning
|
||||
# process; a confidence ceiling of 0 forces human confirmation every time.
|
||||
max_confidence_for_autocomplete: 0.0
|
||||
decisions_ai_may_make_unattended: []
|
||||
decisions_ai_may_recommend:
|
||||
- air_threat_severity
|
||||
- disinformation_classification
|
||||
|
||||
human_oversight:
|
||||
required_for:
|
||||
- cell_broadcast_dispatch
|
||||
- interception_authorization
|
||||
- public_communication
|
||||
- incident_closure
|
||||
reviewer_role: nbs-joint-staff-duty-officer
|
||||
|
||||
audit:
|
||||
vc_signature_per_step: required
|
||||
retention_years: 10
|
||||
268
resources/mappings.yaml
Normal file
268
resources/mappings.yaml
Normal file
@@ -0,0 +1,268 @@
|
||||
kind: uapf.resources.mapping
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Targets — the institutions, systems and agents that execute work in this
|
||||
# process. Only primary binding targets are listed; consulted/informed parties
|
||||
# (VARAM, IZM, NATO Baltic Air Policing, the Government Crisis Management
|
||||
# Council) are recorded in binding `notes` and in docs/02-raci.md.
|
||||
# Endpoints and credentials below are ILLUSTRATIVE placeholders for a draft.
|
||||
# ---------------------------------------------------------------------------
|
||||
targets:
|
||||
- id: nbs.air-surveillance
|
||||
type: system_api
|
||||
name: NBS air surveillance and 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 threat-classification and notification-request authority.
|
||||
availability:
|
||||
schedule: always
|
||||
timezone: Europe/Riga
|
||||
|
||||
- id: nbs.air-defence
|
||||
type: human_role
|
||||
name: NBS air-defence units (pretgaisa aizsardziba)
|
||||
description: Ground air-defence; coordinates interception, including with NATO Baltic Air Policing.
|
||||
|
||||
- id: vugd.duty
|
||||
type: human_role
|
||||
name: VUGD operational duty / 112 (State Fire and Rescue Service)
|
||||
description: Receives 112 calls and 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.
|
||||
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, access control and public order at incident sites.
|
||||
|
||||
- id: kvc
|
||||
type: human_role
|
||||
name: Crisis Management Centre (Krizes vadibas centrs)
|
||||
description: Cross-institutional crisis coordination and after-action review.
|
||||
|
||||
- id: am
|
||||
type: human_role
|
||||
name: Ministry of Defence (Aizsardzibas ministrija)
|
||||
description: Public communication, origin attribution oversight and 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: agent.threat-assessment
|
||||
type: ai_agent
|
||||
name: Civil-defence threat-assessment assistant
|
||||
description: AI assistant that recommends air-threat severity; advisory only.
|
||||
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: MCP tool that 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 — each process / decision / case element bound to exactly one
|
||||
# primary target. mode: manual = human only, assisted = AI suggests / human
|
||||
# approves, autonomous = system executes, supervised = system executes with
|
||||
# monitoring.
|
||||
# ---------------------------------------------------------------------------
|
||||
bindings:
|
||||
# --- BPMN process tasks ---
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_Classify"
|
||||
targetId: nbs.air-surveillance
|
||||
mode: supervised
|
||||
requiredCapabilities:
|
||||
- lv.gov.civdef.air_surveillance_feed
|
||||
contract:
|
||||
timeout: "60s"
|
||||
notes: "NBS Joint Staff supervises classification of the surveillance feed."
|
||||
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_RequestBroadcast"
|
||||
targetId: nbs.joint-staff
|
||||
mode: manual
|
||||
contract:
|
||||
timeout: "5m"
|
||||
fallback:
|
||||
escalationPath:
|
||||
- kvc
|
||||
onTimeout: escalate
|
||||
notes: >-
|
||||
GAP G2: in the AS-IS algorithm this request is the single trigger. The
|
||||
escalation path to KVC is a proposed v0.3 fallback authority, not yet
|
||||
institutionally agreed.
|
||||
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_CellBroadcast"
|
||||
targetId: vugd.cell-broadcast
|
||||
mode: autonomous
|
||||
requiredCapabilities:
|
||||
- lv.gov.civdef.cell_broadcast
|
||||
contract:
|
||||
timeout: "30s"
|
||||
retries:
|
||||
maxAttempts: 2
|
||||
backoffMs: 2000
|
||||
notes: "VUGD operational duty owns the platform; dispatch is automated on request."
|
||||
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_NotifyAgencies"
|
||||
targetId: nbs.joint-staff
|
||||
mode: assisted
|
||||
notes: >-
|
||||
Parallel notification to KVC, IeM and municipal civil-protection
|
||||
commissions. KVC, IeM and municipalities are informed parties.
|
||||
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_CoordBAP"
|
||||
targetId: nbs.air-defence
|
||||
mode: manual
|
||||
notes: >-
|
||||
NBS air-defence coordinates the response; air interception is executed by
|
||||
NATO Baltic Air Policing per Decision_InterceptionAuthorization rationale
|
||||
R_BAP_AIR. NATO BAP is an external party reached through this binding.
|
||||
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_LocalResponse"
|
||||
targetId: municipal.civil-protection
|
||||
mode: manual
|
||||
notes: >-
|
||||
State Police support scene response; the Ministry of Education and
|
||||
Science (IZM) is consulted for school-closure guidance (GAP G8).
|
||||
|
||||
- source:
|
||||
type: bpmn.task
|
||||
ref: "Task_AllClear"
|
||||
targetId: vugd.cell-broadcast
|
||||
mode: autonomous
|
||||
contract:
|
||||
timeout: "30s"
|
||||
notes: "All-clear broadcast issued on NBS Joint Staff declaration."
|
||||
|
||||
# --- DMN decisions ---
|
||||
- source:
|
||||
type: dmn.decision
|
||||
ref: "Decision_AirThreatSeverity"
|
||||
targetId: agent.threat-assessment
|
||||
mode: assisted
|
||||
requiredCapabilities:
|
||||
- ai.classify
|
||||
notes: "AI recommends severity; NBS Joint Staff confirms. Advisory only per guardrails."
|
||||
|
||||
- source:
|
||||
type: dmn.decision
|
||||
ref: "Decision_CellBroadcastScope"
|
||||
targetId: nbs.joint-staff
|
||||
mode: manual
|
||||
notes: "VARAM consulted on the cell-broadcast platform; message templates are typed (GAP G3)."
|
||||
|
||||
- source:
|
||||
type: dmn.decision
|
||||
ref: "Decision_InterceptionAuthorization"
|
||||
targetId: nbs.joint-staff
|
||||
mode: manual
|
||||
notes: "Safety criteria made explicit and inspectable (GAP G7)."
|
||||
|
||||
# --- CMMN case human tasks ---
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_DebrisSearch"
|
||||
targetId: nbs.joint-staff
|
||||
mode: manual
|
||||
notes: "State Police support crash-site localisation."
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_FireSuppression"
|
||||
targetId: vugd.duty
|
||||
mode: manual
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_SceneSecurity"
|
||||
targetId: vp.duty
|
||||
mode: manual
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_MunicipalQA"
|
||||
targetId: municipal.civil-protection
|
||||
mode: manual
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_TechExam"
|
||||
targetId: nbs.joint-staff
|
||||
mode: manual
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_OriginAttribution"
|
||||
targetId: nbs.joint-staff
|
||||
mode: assisted
|
||||
notes: "Ministry of Defence consulted; AI may assist analysis but not attribute autonomously."
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_DisinfoMonitor"
|
||||
targetId: mcp.osint-monitor
|
||||
mode: assisted
|
||||
requiredCapabilities:
|
||||
- ai.classify
|
||||
notes: "Disinformation surfaced and classified via MCP tool; human reviews before correction."
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_Press"
|
||||
targetId: am
|
||||
mode: manual
|
||||
notes: "KVC consulted; public communication requires human oversight per guardrails."
|
||||
|
||||
- source:
|
||||
type: cmmn.humanTask
|
||||
ref: "HT_AfterAction"
|
||||
targetId: kvc
|
||||
mode: manual
|
||||
notes: "Ministry of Defence accountable; Government Crisis Management Council informed."
|
||||
Reference in New Issue
Block a user