commit b65b7b99b3b60973d1e3b927d5f26ebf472dec8b Author: Rihards Date: Mon Aug 31 08:09:35 2026 +0000 Import UAPF package: buvniecibas-ieceres-virzisana (1).uapf diff --git a/README.md b/README.md new file mode 100644 index 0000000..99efda6 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# Būvniecības ieceres virzīšana — UAPF Level-4 pakotne + +Latvijas būvniecības process kā versionējams, izpildāms modelis: no ieceres +ierosināšanas līdz būves reģistrācijai Kadastrā un ierakstam Zemesgrāmatā. + +| | | +|---|---| +| Pakotnes ID | `lv.pppa.buvnieciba.ieceres-virzisana` | +| Līmenis | L4 (atomic executable) | +| Versija | 0.1.0 | +| Dzīves cikls | draft | +| UAPF specifikācija | v2.5.0 | + +## Kāpēc + +Būvniecības process šodien pastāv trijos slāņos — normatīvajos aktos (proza), +informācijas sistēmas kodā (ieviesējs) un būvvalžu praksē (interpretācija). +Trūkst ceturtā: paša procesa modeļa kā artefakta, ko iestāde tur savās rokās, +var salīdzināt ar likuma redakciju un var nodot citam ieviesējam. + +## Saturs + +| Ceļš | Ko satur | +|---|---| +| `bpmn/` | Stadijas un pārejas ar OMG diagrammas informāciju (DI) | +| `dmn/01` | Ieceres dokumenta veids | +| `dmn/02` | Publiskās apspriešanas nepieciešamība | +| `dmn/03` | Stadijā atļautās darbības ar būvprojekta daļu | +| `dmn/04` | Vienotā procesa piemērojamība | +| `cmmn/` | Būvdarbu uzraudzības lieta | +| `resources/mappings.yaml` | Saistījumi ar lomām un sistēmām | +| `resources/legal-basis.yaml` | Katra noteikuma saite uz normatīvā akta punktu | +| `resources/host-enforced.yaml` | Ko modelis nevar izpildīt pats | + +## Svarīgi + +* Pakotnē **nekas netiek secināts**. Nav mācītu modeļu, nav algoritmu karšu + (`algorithm_cards: false`). Ja tabula nedod atbildi — `CILVEKA_IZVERTEJUMS`. +* **Juridiskie sliekšņi nav apstiprināti.** Visi lēmumu rezultāti nes + `verificationRequired: true`, līdz `resources/legal-basis.yaml` ir aizpildīts + ar normatīvā akta punktiem un `status` mainīts uz `verified`. +* Pakotne sagatavota no publiskiem avotiem un **nav saskaņota ar BVKB**. +* BPMN un CMMN diagrammas informācija ir ģenerēta, nevis autorēta modelētājā. + Pirms publiskas lietošanas failus vajadzētu atvērt un pārsaglabāt konformā + OMG modelētājā, lai izkārtojums būtu autorēts. + +## Savietojamība ar shēmas versijām + +Manifests ir apzināti turēts to lauku kopā, ko pieņem gan pašreizējā UAPF +specifikācija (v2.5.0), gan vecākā shēmas paaudze (v2.2.0), ko šobrīd izmanto +ProcessGit importa validators. Praksē tas nozīmē divus ierobežojumus: + +* `algorithm_cards` **netiek deklarēts** manifestā (lauks ieviests v2.3.0). + Faktu, ka pakotnē nav algoritmu karšu un nekas netiek secināts, nes + `resources/guardrails.yaml` noteikums `no-inference` un `docs/02-mi-akta-klasifikacija.md`. +* `resources/mappings.yaml` saistījumos lēmumu uzdevumiem lietots + `bpmn.task`, nevis `bpmn.businessRuleTask` (pēdējais shēmas uzskaitījumā + parādījās pēc v2.2.0). BPMN failā elementi paliek `bpmn:businessRuleTask`; + atšķirība ir tikai saistījuma deklarācijā. + +## Atbilstība + +Pārbaudīts ar UAPF references CLI (`uapf.py validate`) un pret shēmām +`uapf-manifest`, `ownership`, `lifecycle`, `resource-mapping` **abās paaudzēs** +(v2.2.0 un v2.5.0). + +DMN faili satur tikai lēmumu tabulas bez lēmumu prasību diagrammas (DRD), +tāpēc uz tiem attiecas DI izņēmums (specifikācija, 07. nodaļa). + +## Iepakošana + +``` +python uapf.py pack . buvniecibas-ieceres-virzisana.uapf +python uapf.py validate . +``` diff --git a/bpmn/buvniecibas-ieceres-virzisana.bpmn b/bpmn/buvniecibas-ieceres-virzisana.bpmn new file mode 100644 index 0000000..976841d --- /dev/null +++ b/bpmn/buvniecibas-ieceres-virzisana.bpmn @@ -0,0 +1,415 @@ + + + + + + Flow_01 + + + + Flow_01Flow_02 + + + + Flow_02Flow_03 + + + + Flow_03Flow_04 + + + + Flow_04 + Flow_Buvatlauja + Flow_VienkarsotaKartiba + Flow_Pazinojums + + + + Flow_VienkarsotaKartibaFlow_ToBuvdarbi + + + + Flow_PazinojumsFlow_ToBuvdarbi2 + + + + Flow_BuvatlaujaFlow_05 + + + + Flow_05 + Flow_Apspriesana + Flow_NoApspriesana + + + + Flow_ApspriesanaFlow_06 + + + + Flow_06 + Flow_NoApspriesana + Flow_07 + + + + Flow_07Flow_08 + + + + Flow_08Flow_09 + PN_01 + + PN_01PN_02 + + + PN_02PN_03 + + + PN_03PN_04 + + + PN_04PN_05 + + PN_05 + + + + + + + + + Flow_09Flow_10 + BUN_01 + + BUN_01BUN_02 + + + BUN_02BUN_03 + + BUN_03 + + + + + + + Flow_10 + Flow_ToBuvdarbi + Flow_ToBuvdarbi2 + Flow_11 + + + + Flow_11Flow_12 + + + + Flow_12Flow_13 + + + + Flow_13 + Flow_Vienotais + Flow_Atseviskais + + + + Flow_Vienotais + Flow_Atseviskais + Flow_14 + + + + Flow_14Flow_15 + + + + Flow_15Flow_16 + + + + Flow_16Flow_17 + + + + Flow_17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cmmn/buvdarbu-uzraudziba.cmmn b/cmmn/buvdarbu-uzraudziba.cmmn new file mode 100644 index 0000000..28f6766 --- /dev/null +++ b/cmmn/buvdarbu-uzraudziba.cmmn @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dmn/01-ieceres-dokumenta-veids.dmn b/dmn/01-ieceres-dokumenta-veids.dmn new file mode 100644 index 0000000..f62e2ae --- /dev/null +++ b/dmn/01-ieceres-dokumenta-veids.dmn @@ -0,0 +1,89 @@ + + + + + + buvesGrupa + + + buvniecibasVeids + + + skarNesosasKonstrukcijas + + + mainaLietosanasVeidu + + + + + + "I" + "jauna_buvnieciba" + - + - + "PASKAIDROJUMA_RAKSTS" + "VIENKARSOTA" + true + + + "II" + "jauna_buvnieciba" + - + - + "BUVATLAUJA" + "BUVATLAUJA" + true + + + "III" + "jauna_buvnieciba" + - + - + "BUVATLAUJA" + "BUVATLAUJA" + true + + + - + "parbuve" + true + - + "BUVATLAUJA" + "BUVATLAUJA" + true + + + - + - + - + true + "APLIECINAJUMA_KARTE" + "VIENKARSOTA" + true + + + - + "atjaunosana" + false + false + "APLIECINAJUMA_KARTE" + "VIENKARSOTA" + true + + + - + - + - + - + "NENOTEIKTS" + "CILVEKA_IZVERTEJUMS" + true + + + + diff --git a/dmn/02-publiska-apspriesana.dmn b/dmn/02-publiska-apspriesana.dmn new file mode 100644 index 0000000..7a2665b --- /dev/null +++ b/dmn/02-publiska-apspriesana.dmn @@ -0,0 +1,55 @@ + + + + + + ieceresDokuments + + + sabiedriskiNozimigaBuve + + + neatbilstTeritorijasPlanojumam + + + + + + not("BUVATLAUJA") + - + - + false + "Nav buvatlaujas cels" + true + + + "BUVATLAUJA" + - + true + true + "Neatbilstiba teritorijas planojumam" + true + + + "BUVATLAUJA" + true + - + true + "Sabiedriski nozimiga buve" + true + + + "BUVATLAUJA" + false + false + false + "Nav pamata apspriesanai" + true + + + + diff --git a/dmn/03-stadijas-atlautas-darbibas.dmn b/dmn/03-stadijas-atlautas-darbibas.dmn new file mode 100644 index 0000000..61e51d0 --- /dev/null +++ b/dmn/03-stadijas-atlautas-darbibas.dmn @@ -0,0 +1,55 @@ + + + + + + stadija + + + ieprieksSaskanota + + + jauAnuleta + + + + + + - + - + true + "ATJAUNOT" + false + "nav" + + + "IECERE","PROJEKTESANAS_NOSACIJUMU_IZPILDE" + true + false + "ANULET" + true + "brivi_ievadams_paskaidrojums" + + + "BUVDARBU_UZSAKSANAS_NOSACIJUMU_IZPILDE","BUVDARBI","NODOSANA_EKSPLUATACIJA" + true + false + "ANULET" + true + "strukturets_pamatojums_VBN_67" + + + - + false + false + "LABOT" + false + "nav" + + + + diff --git a/dmn/04-vienota-procesa-piemerojamiba.dmn b/dmn/04-vienota-procesa-piemerojamiba.dmn new file mode 100644 index 0000000..fa37ad0 --- /dev/null +++ b/dmn/04-vienota-procesa-piemerojamiba.dmn @@ -0,0 +1,62 @@ + + + + + + ierosinatajsIrZemesIpasnieks + + + buvniecibasVeids + + + objektaVeids + + + fotoUnDatiPievienoti + + + + + + false + - + - + - + false + "ATSEVISKA_KADASTRALA_UZMERISANA" + true + + + true + - + - + false + false + "PIEPRASIT_FOTO_UN_DATUS" + true + + + true + "jauna_buvnieciba","parbuve","atjaunosana" + "eka","inzenierbuve","daudzdzivoklu_eka" + true + true + "KADASTRS_UN_ZEMESGRAMATA_AUTOMATISKI" + true + + + - + - + - + - + false + "CILVEKA_IZVERTEJUMS" + true + + + + diff --git a/docs/00-parskats.md b/docs/00-parskats.md new file mode 100644 index 0000000..f56ec5d --- /dev/null +++ b/docs/00-parskats.md @@ -0,0 +1,36 @@ +# Būvniecības ieceres virzīšana — pārskats + +Šī pakotne izsaka Latvijas būvniecības procesu kā artefaktu, kas ir versionējams, +atdalāms no ieviešanas un pārbaudāms. Šobrīd process pastāv trijos slāņos: +normatīvajos aktos (proza), informācijas sistēmas kodā (ieviesējs) un 60+ +būvvalžu praksē (interpretācija). Trūkst ceturtā — paša procesa modeļa, ko +iestāde tur savās rokās. + +## Ko pakotne satur + +* **BPMN** — stadijas no ieceres ierosināšanas līdz būves reģistrācijai Kadastrā + un ierakstam Zemesgrāmatā, ieskaitot vienoto būves reģistrācijas procesu. + Stadiju robežas atbilst BVKB publicētajām definīcijām, kur katra stadija ir + posms starp diviem tiesiskiem aktiem. +* **DMN** — četras lēmumu tabulas: + * `01` ieceres dokumenta veids (būvatļauja, paskaidrojuma raksts, + apliecinājuma karte, paziņojums par būvniecību); + * `02` publiskās apspriešanas nepieciešamība; + * `03` stadijā atļautās darbības ar būvprojekta daļu; + * `04` vienotā būves reģistrācijas procesa piemērojamība. +* **CMMN** — būvdarbu uzraudzības lieta: pārbaude, pārkāpuma fiksēšana, + būvdarbu apturēšana, novēršanas pārbaude. + +## Ko pakotne nesatur + +Pakotnē nav neviena mācīta modeļa un nav algoritmu karšu. Tā neko nesecina. +Ja lēmumu tabula nedod atbildi, rezultāts ir `CILVEKA_IZVERTEJUMS`. + +## Statuss + +Struktūra ir pilnīga. Juridiskie sliekšņi **nav apstiprināti** — katrs lēmuma +rezultāts nes `verificationRequired: true`, līdz `resources/legal-basis.yaml` +ieraksti ir aizpildīti ar normatīvā akta punktu un redakcijas datumu. + +Pakotne ir sagatavota no publiskiem avotiem un nav saskaņota ar Būvniecības +valsts kontroles biroju. diff --git a/docs/01-tiesiskais-pamats.md b/docs/01-tiesiskais-pamats.md new file mode 100644 index 0000000..2d13167 --- /dev/null +++ b/docs/01-tiesiskais-pamats.md @@ -0,0 +1,26 @@ +# Tiesiskais pamats un izsekojamība + +Katram DMN noteikumam ir ieraksts `resources/legal-basis.yaml`. Ieraksts saista +noteikuma `ruleId` ar normatīvā akta punktu, redakcijas datumu un +apstiprinātāju. Kamēr `verified: false`, noteikums ir strukturāli derīgs, bet +juridiski neapstiprināts. + +Šī saite ir pakotnes galvenā vērtība. Ja normatīvais akts mainās, var +mehāniski noteikt, kuras lēmumu tabulas un kuri procesa ceļi ir skarti, +pirms izmaiņa nonāk informācijas sistēmā. + +## Avoti + +* Būvniecības likums +* Vispārīgie būvnoteikumi — tostarp 67. punkts, uz kuru BIS tieši atsaucas kā + uz pamatojumu būvprojekta daļas anulēšanai vēlajās stadijās +* Ēku būvnoteikumi +* BIS palīdzības lapas — stadiju definīcijas un vērtību saraksti +* BVKB atvērto datu kopas portālā data.gov.lv — būvniecības lietas, saskaņojumi, + būvkomersanti, būvinspektori + +## Konformitāte + +Modelis un atvērto datu kopas kopā ļauj salīdzināt modelēto procesu ar reāli +izpildīto: kur termiņi novirzās, kuri ceļi tiek izmantoti un kur būvvalžu prakse +atšķiras. Šis salīdzinājums nav pakotnes daļa, bet ir tās tiešais lietojums. diff --git a/docs/02-mi-akta-klasifikacija.md b/docs/02-mi-akta-klasifikacija.md new file mode 100644 index 0000000..230d6b4 --- /dev/null +++ b/docs/02-mi-akta-klasifikacija.md @@ -0,0 +1,25 @@ +# Klasifikācija MI akta izpratnē + +Šī pakotne **nav MI sistēma** Regulas (ES) 2024/1689 3. panta 1. punkta izpratnē. +Tā ir deterministisks procesa un lēmumu modelis: BPMN plūsma, DMN tabulas ar +skaidri uzskaitītiem noteikumiem un CMMN lieta. Nav apmācītu parametru, nav +varbūtību, nav secinājumu no datiem. + +Nozīme ir divējāda: + +1. Pakotni var ieviest, pārskatīt un apstrīdēt bez MI akta atbilstības procedūrām. +2. Ja vēlāk virs šī modeļa tiek likts MI komponents — piemēram, dokumentu + priekšaizpilde vai uz risku balstīta uzraudzības prioritizācija — tad + klasifikācija mainās, un šī pakotne kļūst par to kontroles slāni: tā nosaka, + kādas darbības ir atļautas, kur obligāta cilvēka virsvadība un kāds ir + fail-closed rezultāts. + +## Robežas, ko modelis pats neuztur + +Divas prasības modelis nevar izpildīt viens pats, tās nodrošina uzņēmējsistēma: + +* **Pilnvarojums** — vai persona vai aģents, kas veic darbību lietā, rīkojas ar + derīgu pilnvarojumu vai deleģējumu. +* **Termiņi** — procesuālo termiņu skaitīšana un apturēšana. + +Abas ir uzskaitītas `resources/mappings.yaml` sadaļā `hostEnforcedOnly`. diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000..76fe9be --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,21 @@ +# CHANGELOG + +## 0.1.0 — 2026-08-31 + +Sākotnējā pakotne. + +* BPMN: būvniecības process (ar diagrammas informāciju) no ieceres ierosināšanas līdz ierakstam Zemesgrāmatā, + ar apakšprocesiem projektēšanas nosacījumu izpildei un būvdarbu uzsākšanas + nosacījumu izpildei. +* DMN: ieceres dokumenta veids, publiskā apspriešana, stadijā atļautās darbības, + vienotā procesa piemērojamība. +* CMMN: būvdarbu uzraudzības lieta. +* `resources/legal-basis.yaml` ar `status: unverified` — juridiskie sliekšņi vēl + nav apstiprināti; visi rezultāti nes `verificationRequired: true`. + +### 0.1.0 labojumi pirms publicēšanas + +* Noņemts `algorithm_cards` no manifesta — lauks ieviests UAPF v2.3.0, un + ProcessGit importa validators to noraida kā `additionalProperties`. +* `resources/mappings.yaml` saistījumos `bpmn.businessRuleTask` nomainīts uz + `bpmn.task` — vecākajā shēmas uzskaitījumā `businessRuleTask` nav. diff --git a/examples/daudzdzivoklu-parbuve.example.json b/examples/daudzdzivoklu-parbuve.example.json new file mode 100644 index 0000000..10e7a9b --- /dev/null +++ b/examples/daudzdzivoklu-parbuve.example.json @@ -0,0 +1,15 @@ +{ + "iecere": { + "buvesGrupa": "III", + "buvniecibasVeids": "parbuve", + "objektaVeids": "daudzdzivoklu_eka", + "skarNesosasKonstrukcijas": true, + "mainaLietosanasVeidu": false, + "sabiedriskiNozimigaBuve": true, + "neatbilstTeritorijasPlanojumam": false, + "stadija": "PROJEKTESANAS_NOSACIJUMU_IZPILDE" + }, + "ipasums": {"kadastraApzimejums": "01000201234001", "administrativaTeritorija": "Riga"}, + "ierosinatajs": {"ierosinatajsIrZemesIpasnieks": false}, + "nodosanaEkspluatacija": {"fotoUnDatiPievienoti": false} +} diff --git a/examples/ieceres-virzisana-output.example.json b/examples/ieceres-virzisana-output.example.json new file mode 100644 index 0000000..8669f8d --- /dev/null +++ b/examples/ieceres-virzisana-output.example.json @@ -0,0 +1,14 @@ +{ + "ieceresDokuments": "BUVATLAUJA", + "procesaCels": "BUVATLAUJA", + "publiskaApspriesana": false, + "pamats": "Nav pamata apspriesanai", + "atlautasDarbibas": ["ANULET"], + "vienotaisProcess": true, + "nakamaisSolis": "KADASTRS_UN_ZEMESGRAMATA_AUTOMATISKI", + "verificationRequired": true, + "legalBasisStatus": "unverified", + "appliedRuleIds": ["Rule_II_Jauna", "Rule_PA_Nav", "Rule_VP_Jauna"], + "packageVersion": "0.1.0", + "auditTrail": [] +} diff --git a/examples/privatmaja-uz-savas-zemes.example.json b/examples/privatmaja-uz-savas-zemes.example.json new file mode 100644 index 0000000..750b9e7 --- /dev/null +++ b/examples/privatmaja-uz-savas-zemes.example.json @@ -0,0 +1,15 @@ +{ + "iecere": { + "buvesGrupa": "II", + "buvniecibasVeids": "jauna_buvnieciba", + "objektaVeids": "eka", + "skarNesosasKonstrukcijas": true, + "mainaLietosanasVeidu": false, + "sabiedriskiNozimigaBuve": false, + "neatbilstTeritorijasPlanojumam": false, + "stadija": "IECERE" + }, + "ipasums": {"kadastraApzimejums": "80760010123001", "administrativaTeritorija": "Marupes novads"}, + "ierosinatajs": {"ierosinatajsIrZemesIpasnieks": true}, + "nodosanaEkspluatacija": {"fotoUnDatiPievienoti": true} +} diff --git a/metadata/lifecycle.yaml b/metadata/lifecycle.yaml new file mode 100644 index 0000000..66a375e --- /dev/null +++ b/metadata/lifecycle.yaml @@ -0,0 +1,12 @@ +kind: uapf.metadata.lifecycle +status: draft +created: "2026-08-31T00:00:00Z" +lastModified: "2026-08-31T00:00:00Z" +changeHistory: + - version: "0.1.0" + date: "2026-08-31" + summary: >- + Sākotnējā pakotne. Būvniecības procesa stadijas kā BPMN ar diagrammas + informāciju, četras DMN lēmumu tabulas, CMMN būvdarbu uzraudzības lieta. + Juridiskie sliekšņi vēl nav apstiprināti — skati resources/legal-basis.yaml. + author: pppa-lv diff --git a/metadata/ownership.yaml b/metadata/ownership.yaml new file mode 100644 index 0000000..f61679b --- /dev/null +++ b/metadata/ownership.yaml @@ -0,0 +1,14 @@ +kind: uapf.metadata.ownership +owners: + - type: organization + id: pppa-lv + name: Publisko un privāto partnerību asociācija + contact: info@pppa.lv + role: owner + - type: role + id: role.buvvaldes-darbinieks + name: Būvvaldes darbinieks — galīgā lēmuma pieņēmējs + contact: info@pppa.lv + role: reviewer +approvers: + - pppa-lv diff --git a/policies/buvniecibas-procesa-politika.yaml b/policies/buvniecibas-procesa-politika.yaml new file mode 100644 index 0000000..9b830b4 --- /dev/null +++ b/policies/buvniecibas-procesa-politika.yaml @@ -0,0 +1,39 @@ +kind: buvnieciba.process.policy +id: policy.buvnieciba.ieceres-virzisana.poc +version: "0.1.0" + +purpose: + allowed: + - determine_required_application_document + - determine_public_consultation_requirement + - determine_permitted_actions_in_stage + - determine_unified_registration_eligibility + - prepare_structured_input_for_human_decision + prohibited: + - issue_administrative_act + - approve_or_reject_buvatlauja + - sign_or_submit_on_behalf_of_a_person_without_mandate + - infer_missing_legal_facts + - override_buvvalde_discretion + +humanOversight: + mandatory: true + finalDecisionOwner: role.buvvaldes_darbinieks + reviewerMustSee: + - packageVersion + - appliedRuleIds + - legalBasisStatus + - verificationRequired + - inputSnapshot + overrideRequiresRationale: true + +legalBasis: + status: unverified + effect: >- + Kamēr resources/legal-basis.yaml status ir unverified, katrs lēmuma rezultāts + tiek atzīmēts ar verificationRequired=true un nedrīkst tikt izmantots kā + tiesisks pamatojums. + +retention: + decisionSnapshot: P5Y + auditEvents: P10Y diff --git a/resources/buves-grupas.yaml b/resources/buves-grupas.yaml new file mode 100644 index 0000000..e154181 --- /dev/null +++ b/resources/buves-grupas.yaml @@ -0,0 +1,41 @@ +kind: uapf.resource.reference-data +id: ref.buvnieciba.klasifikatori +version: "0.1.0" +status: unverified +buvesGrupa: + - code: "I" + label: "Pirmās grupas būve" + - code: "II" + label: "Otrās grupas būve" + - code: "III" + label: "Trešās grupas būve" +buvniecibasVeids: + - jauna_buvnieciba + - parbuve + - atjaunosana + - restauracija + - nojauksana + - novietosana + - ierikosana +ieceresDokuments: + - BUVATLAUJA + - PASKAIDROJUMA_RAKSTS + - APLIECINAJUMA_KARTE + - PAZINOJUMS_PAR_BUVNIECIBU +stadija: + - IECERE + - IECERES_PUBLISKA_APSPRIESANA + - PROJEKTESANAS_NOSACIJUMU_IZPILDE + - BUVDARBU_UZSAKSANAS_NOSACIJUMU_IZPILDE + - BUVDARBI + - NODOSANA_EKSPLUATACIJA +buvdarbuParbaude: + - BUVDARBI_PARTRAUKTI + - BUTISKI_PARKAPUMI + - PARKAPUMI + - PARKAPUMU_NAV + - PARBAUDE_NAV_VEIKTA +note: >- + Stadiju un pārbaudes rezultātu vērtības atbilst BIS publiskajā daļā + atrādītajām vērtībām. Būvju grupu un būvniecības veidu saraksti jāsalīdzina ar + spēkā esošo normatīvo regulējumu pirms lietošanas. diff --git a/resources/guardrails.yaml b/resources/guardrails.yaml new file mode 100644 index 0000000..ae36ade --- /dev/null +++ b/resources/guardrails.yaml @@ -0,0 +1,40 @@ +kind: uapf.guardrails +id: guardrails.buvnieciba.ieceres-virzisana +version: 0.1.0 +rules: +- id: no-inference + effect: deny + action: probabilistic_inference + note: >- + Pakotnē nav neviena mācīta modeļa un nav algoritmu karšu. Visi lēmumi ir + deterministiskas DMN tabulas. Ja kāds solis nav izlemjams ar tabulu, + rezultāts ir CILVEKA_IZVERTEJUMS, nevis minējums. +- id: no-automatic-administrative-act + effect: deny + action: automatic_administrative_decision + note: >- + Pakotne nesagatavo un neizdod administratīvo aktu. Būvatļauju, atzīmes un + aktu par pieņemšanu ekspluatācijā izdod būvvalde vai institūcija, kas pilda + būvvaldes funkcijas. +- id: unverified-legal-threshold-requires-human + effect: require + when: + outputFieldTrue: verificationRequired + action: human_legal_review + note: >- + Šīs redakcijas DMN sliekšņi nav juridiski apstiprināti. Katrs noteikums + atgriež verificationRequired=true, līdz resources/legal-basis.yaml ieraksts + ir apstiprināts ar norādi uz normatīvā akta punktu un redakcijas datumu. +- id: no-personal-data-in-decision-inputs + effect: deny + inputs: + - personasKods + - dzimsanasDatums + - kontaktinformacija + note: >- + Lēmumu tabulas strādā ar objekta un ieceres pazīmēm, nevis ar personas datiem. +- id: fail-closed + effect: require + when: + noMatchingRule: true + action: human_review diff --git a/resources/host-enforced.yaml b/resources/host-enforced.yaml new file mode 100644 index 0000000..f21636e --- /dev/null +++ b/resources/host-enforced.yaml @@ -0,0 +1,33 @@ +kind: uapf.resource.host-enforced +version: "0.1.0" +description: >- + Prasības, ko modelis pats nevar izpildīt un kas paliek uzņēmējsistēmas atbildībā. + Šis fails nav UAPF shēmas objekts; tas ir pakotnes papildu resurss. +items: + - id: mandate-of-the-acting-party + requirement: >- + Pārbaudīt, vai persona vai aģents, kas veic darbību būvniecības lietā, rīkojas + ar derīgu pilnvarojumu vai deleģējumu. + enforcedBy: host + - id: procedural-deadlines + requirement: >- + Procesuālo termiņu skaitīšana, apturēšana un atjaunošana. + enforcedBy: host + - id: administrative-act-issuance + requirement: >- + Administratīvā akta sagatavošana, parakstīšana un paziņošana. + enforcedBy: host +auditEvents: + - iecere_registreta + - registru_dati_iegūti + - ieceres_dokumenta_veids_noteikts + - publiska_apspriesana_noteikta + - buvatlauja_izsniegta + - projektesanas_nosacijumi_izpilditi + - buvdarbu_uzsaksanas_nosacijumi_izpilditi + - buvdarbu_parbaude_veikta + - gatavibas_apliecinajums_iesniegts + - vienota_procesa_piemerojamiba_noteikta + - buve_pienemta_ekspluatacija + - kadastra_registracija_nodota + - zemesgramatas_ieraksts_nodots diff --git a/resources/host-manifest.example.yaml b/resources/host-manifest.example.yaml new file mode 100644 index 0000000..36dd4da --- /dev/null +++ b/resources/host-manifest.example.yaml @@ -0,0 +1,12 @@ +kind: uapf.host.manifest +host: + id: bis-host + name: Uzņēmējsistēma (BIS vai tās vietā izmantots stends) +capabilities: + - id: buvnieciba.lieta.read@1 + - id: buvnieciba.lieta.prepare_input@1 + inputSchema: schemas/iecere-input.schema.json + - id: registri.kadastrs.read@1 + - id: registri.zemesgramata.read@1 + - id: buvvalde.decision.record@1 + - id: event.emit@1 diff --git a/resources/legal-basis.yaml b/resources/legal-basis.yaml new file mode 100644 index 0000000..a7ad392 --- /dev/null +++ b/resources/legal-basis.yaml @@ -0,0 +1,78 @@ +kind: uapf.resource.legal-basis +version: "0.1.0" +status: unverified +statement: >- + Katrs DMN noteikums šajā pakotnē ir strukturāli pareizs, bet juridiski vēl + neapstiprināts. Šis fails ir vieta, kur katram noteikumam piesaista normatīvā + akta punktu, redakcijas datumu un apstiprinātāju. Kamēr status: unverified, + pakotni drīkst izmantot modelēšanai un demonstrācijai, bet ne kā tiesisku avotu. +sources: +- id: src.buvniecibas-likums + name: Būvniecības likums + citation_required: true +- id: src.visparigie-buvnoteikumi + name: Vispārīgie būvnoteikumi + citation_required: true +- id: src.eku-buvnoteikumi + name: Ēku būvnoteikumi + citation_required: true +- id: src.bis-stadijas + name: BIS palīdzības lapas — būvniecības lietas stadiju definīcijas + url: https://bis.gov.lv/bisp/lv/help + note: >- + Stadiju robežas BPMN modelī ir pārņemtas no BVKB publicētajām stadiju + definīcijām, kur katra stadija ir definēta kā posms starp diviem tiesiskiem + aktiem. +rules: +- ruleId: Rule_I_Jauna + decision: Decision_IeceresDokumentaVeids + source: src.eku-buvnoteikumi + clause: TBD + verified: false +- ruleId: Rule_II_Jauna + decision: Decision_IeceresDokumentaVeids + source: src.eku-buvnoteikumi + clause: TBD + verified: false +- ruleId: Rule_III_Jauna + decision: Decision_IeceresDokumentaVeids + source: src.eku-buvnoteikumi + clause: TBD + verified: false +- ruleId: Rule_Parbuve_Nesosas + decision: Decision_IeceresDokumentaVeids + source: src.visparigie-buvnoteikumi + clause: TBD + verified: false +- ruleId: Rule_LietosanasVeidaMaina + decision: Decision_IeceresDokumentaVeids + source: src.eku-buvnoteikumi + clause: TBD + verified: false +- ruleId: Rule_PA_Neatbilst + decision: Decision_PubliskaApspriesana + source: src.buvniecibas-likums + clause: TBD + verified: false +- ruleId: Rule_PA_Sabiedriski + decision: Decision_PubliskaApspriesana + source: src.buvniecibas-likums + clause: TBD + verified: false +- ruleId: Rule_St_Vela + decision: Decision_StadijasAtlautasDarbibas + source: src.visparigie-buvnoteikumi + clause: "67." + verified: false + note: >- + BIS palīdzības lapa par būvprojekta daļu anulēšanu tieši norāda pamatojumu + "Atbilstoši Vispārīgo būvnoteikumu 67. punktam (pusēm vienojoties)". +- ruleId: Rule_VP_Jauna + decision: Decision_VienotaProcesaPiemerojamiba + source: src.buvniecibas-likums + clause: TBD + verified: false + note: >- + Vienotais būves reģistrācijas process piemērojams no 06.01.2026. + Priekšnosacījums: zemes īpašnieks būvē uz savas zemes; kadastrālās + uzmērīšanas lieta vairs nav obligāta, tās vietā BIS pievieno fotoattēlus. diff --git a/resources/mappings.yaml b/resources/mappings.yaml new file mode 100644 index 0000000..1b3c5cf --- /dev/null +++ b/resources/mappings.yaml @@ -0,0 +1,145 @@ +kind: uapf.resources.mapping +targets: + - id: role.ierosinatajs + type: human_role + name: Būvniecības ierosinātājs + - id: role.buvvaldes-darbinieks + type: human_role + name: Būvvaldes darbinieks + capabilities: + - buvvalde.decision.record + - id: role.buvprojekta-vaditajs + type: human_role + name: Būvprojekta vadītājs + - id: role.tni-parstavis + type: human_role + name: Tehnisko noteikumu izdevēja pārstāvis + - id: role.buvinspektors + type: human_role + name: Būvinspektors + capabilities: + - buvvalde.decision.record + - id: system.kadastrs + type: system_api + name: Nekustamā īpašuma valsts kadastra informācijas sistēma + capabilities: + - registri.kadastrs.read + endpoint: env:KADASTRS_BASE_URL + - id: system.zemesgramata + type: system_api + name: Valsts vienotā datorizētā zemesgrāmata + capabilities: + - registri.zemesgramata.read + endpoint: env:ZEMESGRAMATA_BASE_URL + - id: system.dmn-engine + type: system_api + name: UAPF DMN dzinis + description: Deterministisks lēmumu tabulu izpildītājs. Nekas netiek secināts. + - id: system.audit-log + type: system_api + name: Procesa audita notikumu žurnāls + capabilities: + - event.emit +bindings: + - source: {type: bpmn.userTask, ref: Task_RegisterIecere} + targetId: role.ierosinatajs + mode: manual + notes: >- + Uzņēmējsistēma pārbauda ierosinātāja pilnvarojumu; modelis to nedara. + - source: {type: bpmn.serviceTask, ref: Task_FetchRegisterData} + targetId: system.kadastrs + mode: autonomous + requiredCapabilities: [registri.kadastrs.read, registri.zemesgramata.read] + - source: {type: bpmn.task, ref: Task_DetermineDocumentType} + targetId: system.dmn-engine + mode: autonomous + notes: "Izmanto dmn/01-ieceres-dokumenta-veids.dmn#Decision_IeceresDokumentaVeids" + - source: {type: bpmn.task, ref: Task_PublicConsultationCheck} + targetId: system.dmn-engine + mode: autonomous + notes: "Izmanto dmn/02-publiska-apspriesana.dmn#Decision_PubliskaApspriesana" + - source: {type: bpmn.userTask, ref: Task_PublicConsultation} + targetId: role.buvvaldes-darbinieks + mode: manual + - source: {type: bpmn.userTask, ref: Task_BuvvaldeReview} + targetId: role.buvvaldes-darbinieks + mode: manual + requiredCapabilities: [buvvalde.decision.record] + notes: >- + Būvatļauju izdod būvvalde. Modelis administratīvo aktu nesagatavo un neizdod. + - source: {type: bpmn.userTask, ref: Task_IzstradatBuvprojektu} + targetId: role.buvprojekta-vaditajs + mode: manual + - source: {type: bpmn.task, ref: Task_EkspertizeCheck} + targetId: system.dmn-engine + mode: autonomous + notes: >- + Ekspertīzes nepieciešamības tabula šajā redakcijā vēl nav pievienota; + sasaiste ir deklarēta, lai plūsma būtu pilnīga. + - source: {type: bpmn.userTask, ref: Task_SaskanotTNI} + targetId: role.tni-parstavis + mode: manual + - source: {type: bpmn.userTask, ref: Task_BuvvaldeAtzime} + targetId: role.buvvaldes-darbinieks + mode: manual + requiredCapabilities: [buvvalde.decision.record] + - source: {type: bpmn.userTask, ref: Task_IesniegtBUNDokumentus} + targetId: role.ierosinatajs + mode: manual + - source: {type: bpmn.userTask, ref: Task_BuvvaldeBUNAtzime} + targetId: role.buvvaldes-darbinieks + mode: manual + requiredCapabilities: [buvvalde.decision.record] + - source: {type: bpmn.task, ref: Task_VienotaisProcessCheck} + targetId: system.dmn-engine + mode: autonomous + notes: "Izmanto dmn/04-vienota-procesa-piemerojamiba.dmn#Decision_VienotaProcesaPiemerojamiba" + - source: {type: bpmn.userTask, ref: Task_GatavibaEkspluatacijai} + targetId: role.ierosinatajs + mode: manual + - source: {type: bpmn.userTask, ref: Task_PienemsanaEkspluatacija} + targetId: role.buvvaldes-darbinieks + mode: manual + requiredCapabilities: [buvvalde.decision.record] + - source: {type: bpmn.serviceTask, ref: Task_KadastraRegistracija} + targetId: system.kadastrs + mode: autonomous + - source: {type: bpmn.serviceTask, ref: Task_ZemesgramatasIeraksts} + targetId: system.zemesgramata + mode: autonomous + - source: {type: bpmn.serviceTask, ref: Task_WriteAudit} + targetId: system.audit-log + mode: autonomous + requiredCapabilities: [event.emit] + - source: {type: dmn.decision, ref: Decision_IeceresDokumentaVeids} + targetId: system.dmn-engine + mode: autonomous + - source: {type: dmn.decision, ref: Decision_PubliskaApspriesana} + targetId: system.dmn-engine + mode: autonomous + - source: {type: dmn.decision, ref: Decision_StadijasAtlautasDarbibas} + targetId: system.dmn-engine + mode: autonomous + - source: {type: dmn.decision, ref: Decision_VienotaProcesaPiemerojamiba} + targetId: system.dmn-engine + mode: autonomous + - source: {type: cmmn.humanTask, ref: HT_PlanotParbaudi} + targetId: role.buvinspektors + mode: manual + notes: Diskrecionārs uzdevums uzraudzības lietā. + - source: {type: cmmn.humanTask, ref: HT_VeiktParbaudi} + targetId: role.buvinspektors + mode: manual + - source: {type: cmmn.humanTask, ref: HT_FiksetParkapumu} + targetId: role.buvinspektors + mode: manual + - source: {type: cmmn.humanTask, ref: HT_AptuertBuvdarbus} + targetId: role.buvinspektors + mode: manual + requiredCapabilities: [buvvalde.decision.record] + - source: {type: cmmn.humanTask, ref: HT_ParbauditNoversanu} + targetId: role.buvinspektors + mode: manual + - source: {type: cmmn.humanTask, ref: HT_SlegtLietu} + targetId: role.buvinspektors + mode: manual diff --git a/schemas/iecere-input.schema.json b/schemas/iecere-input.schema.json new file mode 100644 index 0000000..357b7fa --- /dev/null +++ b/schemas/iecere-input.schema.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://processgit.org/AI_Sandbox/buvniecibas-ieceres-virzisana/schemas/iecere-input.schema.json", + "title": "Būvniecības ieceres ievaddati", + "type": "object", + "required": ["iecere", "ipasums", "ierosinatajs"], + "properties": { + "iecere": { + "type": "object", + "required": ["buvesGrupa", "buvniecibasVeids", "objektaVeids"], + "properties": { + "buvesGrupa": {"type": "string", "enum": ["I", "II", "III"]}, + "buvniecibasVeids": {"type": "string", "enum": ["jauna_buvnieciba", "parbuve", "atjaunosana", "restauracija", "nojauksana", "novietosana", "ierikosana"]}, + "objektaVeids": {"type": "string", "enum": ["eka", "inzenierbuve", "daudzdzivoklu_eka", "cits"]}, + "skarNesosasKonstrukcijas": {"type": "boolean", "default": false}, + "mainaLietosanasVeidu": {"type": "boolean", "default": false}, + "sabiedriskiNozimigaBuve": {"type": "boolean", "default": false}, + "neatbilstTeritorijasPlanojumam": {"type": "boolean", "default": false}, + "stadija": {"type": "string", "enum": ["IECERE", "IECERES_PUBLISKA_APSPRIESANA", "PROJEKTESANAS_NOSACIJUMU_IZPILDE", "BUVDARBU_UZSAKSANAS_NOSACIJUMU_IZPILDE", "BUVDARBI", "NODOSANA_EKSPLUATACIJA"]} + } + }, + "ipasums": { + "type": "object", + "required": ["kadastraApzimejums"], + "properties": { + "kadastraApzimejums": {"type": "string"}, + "administrativaTeritorija": {"type": "string"} + } + }, + "ierosinatajs": { + "type": "object", + "required": ["ierosinatajsIrZemesIpasnieks"], + "properties": { + "ierosinatajsIrZemesIpasnieks": {"type": "boolean"}, + "pilnvarojumaId": {"type": "string", "description": "Pilnvarojuma vai deleģējuma identifikators; pārbauda uzņēmējsistēma, nevis šī pakotne."} + } + }, + "nodosanaEkspluatacija": { + "type": "object", + "properties": { + "fotoUnDatiPievienoti": {"type": "boolean", "default": false} + } + } + }, + "additionalProperties": false +} diff --git a/schemas/ieceres-virzisana-output.schema.json b/schemas/ieceres-virzisana-output.schema.json new file mode 100644 index 0000000..2a7daed --- /dev/null +++ b/schemas/ieceres-virzisana-output.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://processgit.org/AI_Sandbox/buvniecibas-ieceres-virzisana/schemas/ieceres-virzisana-output.schema.json", + "title": "Būvniecības ieceres virzīšanas rezultāts", + "type": "object", + "required": ["ieceresDokuments", "procesaCels", "verificationRequired", "appliedRuleIds"], + "properties": { + "ieceresDokuments": {"type": "string", "enum": ["BUVATLAUJA", "PASKAIDROJUMA_RAKSTS", "APLIECINAJUMA_KARTE", "PAZINOJUMS_PAR_BUVNIECIBU", "NENOTEIKTS"]}, + "procesaCels": {"type": "string", "enum": ["BUVATLAUJA", "VIENKARSOTA", "CILVEKA_IZVERTEJUMS"]}, + "publiskaApspriesana": {"type": "boolean"}, + "pamats": {"type": "string"}, + "atlautasDarbibas": {"type": "array", "items": {"type": "string"}}, + "vienotaisProcess": {"type": "boolean"}, + "nakamaisSolis": {"type": "string"}, + "verificationRequired": {"type": "boolean"}, + "legalBasisStatus": {"type": "string", "enum": ["verified", "unverified"]}, + "appliedRuleIds": {"type": "array", "items": {"type": "string"}}, + "packageVersion": {"type": "string"}, + "auditTrail": {"type": "array", "items": {"type": "object"}} + }, + "additionalProperties": false +} diff --git a/tests/eval-set.yaml b/tests/eval-set.yaml new file mode 100644 index 0000000..3ce57b7 --- /dev/null +++ b/tests/eval-set.yaml @@ -0,0 +1,41 @@ +kind: uapf.tests.eval-set +version: "0.1.0" +note: >- + Deterministiskas gaidas. Katrs gadījums pārbauda, kuri noteikumi nostrādā, nevis + vai atbilde ir juridiski pareiza — juridisko pareizību apliecina + resources/legal-basis.yaml pēc apstiprināšanas. +cases: + - id: case.ii-grupas-eka-uz-savas-zemes + input: examples/privatmaja-uz-savas-zemes.example.json + expect: + ieceresDokuments: BUVATLAUJA + publiskaApspriesana: false + vienotaisProcess: true + verificationRequired: true + - id: case.iii-grupas-parbuve-sabiedriski-nozimiga + input: examples/daudzdzivoklu-parbuve.example.json + expect: + ieceresDokuments: BUVATLAUJA + publiskaApspriesana: true + vienotaisProcess: false + nakamaisSolis: ATSEVISKA_KADASTRALA_UZMERISANA + - id: case.anulesana-vela-stadija + decision: Decision_StadijasAtlautasDarbibas + input: + stadija: BUVDARBI + ieprieksSaskanota: true + jauAnuleta: false + expect: + atlautaDarbiba: ANULET + pamatojumsObligats: true + pamatojumaVeids: strukturets_pamatojums_VBN_67 + - id: case.nav-atbilstosa-noteikuma + decision: Decision_IeceresDokumentaVeids + input: + buvesGrupa: "II" + buvniecibasVeids: restauracija + skarNesosasKonstrukcijas: false + mainaLietosanasVeidu: false + expect: + ieceresDokuments: NENOTEIKTS + procesaCels: CILVEKA_IZVERTEJUMS diff --git a/uapf.yaml b/uapf.yaml new file mode 100644 index 0000000..42fe8d5 --- /dev/null +++ b/uapf.yaml @@ -0,0 +1,109 @@ +kind: uapf.package +id: lv.pppa.buvnieciba.ieceres-virzisana +name: Būvniecības ieceres virzīšana no ieceres līdz zemesgrāmatai +description: >- + UAPF Level-4 pakotne, kas izsaka Latvijas būvniecības procesu kā versionējamu, + izpildāmu modeli: BPMN stadijas no ieceres ierosināšanas līdz būves reģistrācijai + Kadastrā un ierakstam Zemesgrāmatā, četras DMN lēmumu tabulas, kas nes + normatīvajos aktos prozā izteikto algoritmu, un CMMN būvdarbu uzraudzības lieta. + Pakotnē nekas netiek secināts — tā ir regulēta procesa deterministisks modelis, + nevis mākslīgā intelekta sistēma. +level: 4 +version: 0.1.0 +includes: [] +cornerstones: + bpmn: true + dmn: true + cmmn: true + resources: true +paths: + bpmn: bpmn + dmn: dmn + cmmn: cmmn + resources: resources + metadata: metadata +guardrails: resources/guardrails.yaml +artifacts: + bpmn: + - path: bpmn/buvniecibas-ieceres-virzisana.bpmn + role: primary-process + description: Stadijas un pārejas, ieskaitot vienoto būves reģistrācijas procesu. + dmn: + - path: dmn/01-ieceres-dokumenta-veids.dmn + role: document-type-gate + description: Būvatļauja, paskaidrojuma raksts, apliecinājuma karte vai paziņojums. + - path: dmn/02-publiska-apspriesana.dmn + role: public-consultation + description: Ieceres publiskās apspriešanas nepieciešamība. + - path: dmn/03-stadijas-atlautas-darbibas.dmn + role: stage-permissions + description: Stadijā atļautās darbības ar būvprojekta daļu. + - path: dmn/04-vienota-procesa-piemerojamiba.dmn + role: unified-process-eligibility + description: Vienotā būves reģistrācijas procesa piemērojamība. + cmmn: + - path: cmmn/buvdarbu-uzraudziba.cmmn + role: supervision-case + description: Būvdarbu pārbaude, pārkāpumi, apturēšana, novēršanas pārbaude. + resources: + - path: resources/mappings.yaml + role: resource-mapping + - path: resources/guardrails.yaml + role: guardrails + - path: resources/legal-basis.yaml + role: legal-trace + description: Katra DMN noteikuma saite uz normatīvā akta punktu. + - path: resources/buves-grupas.yaml + role: reference-data + - path: resources/host-enforced.yaml + role: host-enforced-requirements + - path: resources/host-manifest.example.yaml + role: host-manifest-example +inputs: + - iecere + - ipasums + - ierosinatajs + - buvvaldeContext +outputs: + - ieceresDokuments + - procesaCels + - publiskaApspriesana + - atlautasDarbibas + - vienotaisProcess + - nakamaisSolis + - auditTrail +requires_capabilities: + - buvnieciba.lieta.read@1+ + - buvnieciba.lieta.prepare_input@1+ + - registri.kadastrs.read@1+ + - registri.zemesgramata.read@1+ + - buvvalde.decision.record@1+ + - event.emit@1+ +profiles_supported: + - uapf-ip-orchestrated +exposure: + mcp: + enabled: true + runnable: true + exposedEntrypoints: + - process: Process_BuvnieciibasIeceresVirzisana + tool: virzit_buvniecibas_ieceri + - decision: Decision_IeceresDokumentaVeids + tool: noteikt_ieceres_dokumenta_veidu + - decision: Decision_VienotaProcesaPiemerojamiba + tool: vertet_vienoto_procesu + exposedArtifacts: + - manifest + - bpmn + - dmn + - cmmn + - docs + - tests +owners: + - type: team + id: pppa-lv + contact: info@pppa.lv + - type: role + id: process-owner-buvnieciba + contact: info@pppa.lv +lifecycle: draft