# 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`.