Beteende-DSL — Regelverk som versionerade artefakter
När byggkoden ändras, vilka designer är fortfarande giltiga? Kan systemet berätta det automatiskt?
Scenariot
Den 1 januari 2027 publicerar Boverket en uppdaterad BBR (Boverkets Byggregler) med strängare energikrav för klimatzon III (norra Sverige). Anta att det maximalt tillåtna specifika energianvändandet för bostadsbyggnader sjunker från 90 kWh/m^2 till 80 kWh/m^2. Denna förändring påverkar varje husdesign som Trähusfabriken har kompilerat för leveransplatser norr om Sundsvall.
I ett traditionellt arbetsflöde läser någon Boverkets meddelande, kontrollerar manuellt vilka projekt som påverkas och kör om energiberäkningarna. Vissa projekt missas. Vissa kontrolleras i onödan.
Med Beteende-DSL är BBR inte inbäddad i kod. Det är en versionerad, förseglad artefakt — ett regelverk uttryckt i ett strukturerat språk, validerat och utvärderat av ett deterministiskt steg. När BBR-artefakten ändras vet systemet exakt vad som ska invalideras.
BBR v2026 (förseglad) BBR v2027 (förseglad)
sha256:4a12... sha256:8f93...
┌────────────────────┐ ┌────────────────────┐
│ climate_zone_III: │ │ climate_zone_III: │
│ max_energy: 90 │ ──update──→ │ max_energy: 80 │
│ ... │ │ ... │
└────────┬───────────┘ └────────┬───────────┘
│ │
▼ ▼
Använder BBR v2026 Använder BBR v2027
→ tidigare resultat giltigt → måste omvärderas
(BBR-fingeravtryck oförändrat) (BBR-fingeravtryck ändrat)
Fingeravtrycket för varje energikontroll inkluderar BBR-versionens hash. När BBR-fingeravtrycket ändras måste varje energikontroll som använde den gamla BBR köras om. Varje design som bara använde de oförändrade klimatzonerna (I och II) återanvänder sitt tidigare resultat — deras specifika regler har inte ändrats.
Systemet kan rapportera: “47 designer använde BBR v2026 klimatzon III-regler. Av dessa uppfyller 31 fortfarande kraven under v2027. 16 kräver designändringar.” Ingen manuell triagering. Inga missade projekt.
Viktiga egenskaper
Gränsen mellan data och logik. BBR är varken ren data (det innehåller villkorlig logik: om byggnadstyp är bostadshus OCH klimatzon är III, då är max energi 85) eller ren kod (det är en versionerad, inspekterbar, diffbar artefakt). Beteende-DSL gör denna gräns explicit: regelmotorn är ett steg; regelverket är referensdata. Båda är förseglade. Båda deltar i ogiltigförklaringslogiken. Men de ändras i olika takt — motorn ändras sällan, reglerna ändras när regelverk uppdateras.
Automatisk propagering av regeländringar. Runtimen behöver ingen speciell funktion för “regelverksändring”. Propageringen faller ut av fingeravtrycksbaserad återanvändning: ändra en indata-artefakt, och alla nedströmsberäkningar som beror på den måste köras om. Detta är samma mekanism som hanterar uppdaterade emissionsfaktorer i VSME-packet eller uppdaterade beroendeversioner i LodeTime. Mönstrets generalitet är poängen.
Diffbara regelverk. Eftersom både BBR v2026 och BBR v2027 är förseglade artefakter med strukturerad källa är förändringen diffbar: “klimatzon III max_energy ändrades från 95 till 85; alla andra zoner oförändrade.” Denna diff är själv en artefakt — den kan bifogas till omvärderingskörningen som kontext för varför körningen trigades.
Komponerbarhet med Population Sim. När BBR uppdateras kan den evolutionära optimeringen köras om mot de nya reglerna. Kandidater som klarade de gamla reglerna men inte de nya exkluderas automatiskt. Fitnesslandskapet förskjuts och optimeraren anpassar sig — men historiken för det gamla landskapet bevaras för jämförelse.