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

50 lines
2.8 KiB
Markdown

# Drone Threat Public Address & Citizen Notification
UAPF v2.2.0 process package · `lv.civdef.drone-threat-public-address` · v0.3.0 · **draft**
A Level-4 UAPF package modelling the cross-institutional algorithm by which
Latvia turns a detected drone threat into a timely public cell-broadcast,
coordinates interception, and runs field response and origin investigation.
Modelled from the public chronology of the **7 May 2026 Rezekne drone
incident**, whose defining failure was a ~40-minute delay in alerting the
public.
> Independent modelling demonstrator. **Not** an official algorithm of the NBS,
> VUGD, the Ministry of Defence or any Latvian state institution.
## Cornerstones
| Cornerstone | File | Content |
|-------------|------|---------|
| Process (BPMN) | `bpmn/drone-threat-public-address.bpmn` | 26 nodes across **6 institution lanes**; non-interrupting **SLA-breach boundary timer**; parallel broadcast / notify / interception; 3-way interception gateway; stand-down loop; handoff to the investigation case. |
| Decisions (DMN) | `dmn/air-threat-decisions.dmn` | **6 chained, documented decisions** with a clean DRD. Object classification → severity → notification urgency & SLA → broadcast scope; interception authorization; stand-down. |
| Case (CMMN) | `cmmn/field-response-investigation.cmmn` | 3 stages, 11 human tasks, milestones and entry sentries for field response, origin investigation and public communication. |
| Resources | `resources/mappings.yaml` | Every process/decision/case element bound to an executing institution, system or agent — with a legend tracing each binding to its diagram element. Guardrails in `resources/guardrails.yaml`. |
## What changed in v0.3.0
Rebuilt deeper and broader from v0.2.0, and the v0.2.0 defects fixed:
- DMN expanded **3 → 6 decisions**; every decision and every rule now carries a
description; the DRD uses an all-positive, tidy layout.
- **Interception logic fixed** — `positiveHostileId` was declared as a required
input but never tested, so the table could reach `engage` without it. It is
now rule 1: no positive hostile ID → always `hold`.
- **Cell-broadcast scope** now genuinely consumes `corridorMunicipalities` (a
FEEL expression, not a quoted string).
- BPMN expanded from a flat flow to a **6-lane collaboration** with the SLA
boundary timer that models the Rezekne lesson directly.
- `mappings.yaml` given an element-level **legend** so the resource↔process
linkage is readable and machine-checkable.
## Documentation
`docs/00` chronology · `docs/01` gap analysis · `docs/02` RACI ·
`docs/03` notification timing & SLA · `docs/04` UAPF-IP integration ·
`docs/05` validation report (19/19 passed).
## Status
`draft`. Decision thresholds and SLA values are modelling proposals pending
institutional review — see `docs/01` and `docs/03`.