Analys av planhandlingar, identifierar konflikter och samrådshistorik.
Detaljplan-AI for svenska kommuner. Modulen tar emot ett komplett planforslag i form av planbeskrivning, planbestammelser och kartdata, och producerar en strukturerad granskning-rapport som en planhandlaggare och stadsbyggnads- namnden kan agera pa direkt. Modul 16 av 16 i Kapaciti-katalogen.
Modul-ID ar zoning-plan-ai. Version 1.0.0. Voice-profil kapaciti. Default modell claude-haiku-4-5. Modulen extender BaseModule och deltar i samma signerade audit-kedja som ovriga compliance-moduler i kapaciti-modules.
Detaljplaneprocesser i svenska kommuner ar tidskravande och rattsligt komplexa. Mellan uppdrag och laga kraft tar en typisk plan 18 till 30 manader. En betydande del av tiden gar at till sektion-by-sektion granskning, identifiering av interna motsattningar och avstamning mot overordnade planer som oversiktsplan och riksintressen.
Pilotmotiveringar i svenska medelstora kommuner visar att en strukturerad forst-granskning innan namnd-beslut kan korta processen med flera veckor och minska antalet overklaganden. Modulen ar designad for att vara ett underlag till en handlaggare, inte ett auto-beslut. Den konservativa hallningen ar explicit: vid tvetydighet rekommenderar modulen "mer-utredning-kravs" hellre an "namnd-godkant".
Modulen arbetar under Plan- och bygglagen (PBL) 2010:900 och Miljobalken (MB) 1998:808. De viktigaste kapitlen som modulen refererar till:
redogorelse, 5 kap 18 § granskning, 5 kap 23 § granskningsutlatande, 5 kap 27 § antagande, 5 kap 30-31 §§ laga kraft.
enligt 3 kap 5 § PBL.
friluftsliv, kommunikationer och industriell produktion.
Modulen instrueras explicit att aldrig hitta pa lag-referenser. Refererar modellen till en paragraf, ska den finnas i den ramverk-text som ar inskriven i system-prompten eller framkomma direkt ur indata.
Inputen ar ett strukturerat objekt med sex delar.
{
plan_id: "DP-SKE-2026-014",
plan_metadata: {
plan_name: "Detaljplan for kvarteret Larken, Skelleftea Centrum",
kommun: "Skelleftea",
plantype: "detaljplan",
skede: "samradsforslag",
started_at: "2026-03-01",
expected_antagande: "2026-12-15",
ar_planforfattare: "Skelleftea Kommun stadsbyggnadskontor",
pmkonsult: "Norrkonsult AB"
},
area: {
fastighetsbeteckningar: ["Larken 4", "Larken 5"],
karta_excerpts: [{ feature, coords_simplified, description }],
aktuella_ytor: { totalt_m2, varav_kvartersmark_m2, varav_allmanplats_m2 },
avstand_till_namnda_objekt: [{ object, avstand_m }]
},
planhandlingar: {
planbeskrivning_text: "...", // 5000-30000 tecken typiskt
planbestammelser_text: "...", // 1000-5000 tecken
miljokonsekvensbeskrivning: null, // om MKB upprattats
samradsredogorelse: null // om granskningsskede
},
oversiktsplan_relations: {
op_name, overensstammelse, op_excerpt
},
riksintressen_overlapp: [
{ riksintresse_typ, grad, reference }
],
historiska_samrad_for_omrade: [
{ plan_id_old, year, topp_invandningar }
]
}
Validering sker innan modellen anropas. planhandlingar.planbeskrivning_text maste vara minst 200 tecken och planbestammelser_text minst 50 tecken. plantype maste vara en av detaljplan, omradesbestammelser, planprogram. skede maste vara en av samradsforslag, granskningsforslag, antagande- handling. Om kraven faller kastas ett tydligt fel utan att kostnaden for ett LLM-anrop dras.
Utdatat ar en strikt textmall pa svenska med tolv sektioner som kan parsas av en granskning-pipeline. Modellen instrueras att aldrig avvika fran formatet och att aldrig skriva nagot utanfor de definierade falten.
PLAN_BEDOMNING_OVERSIKT: 3-5 meningar
LAGSTODENS_KORREKTHET: PBL och MB-referenser plus brister
INTERNA_KONFLIKTER: 0-10 poster med ALLVAR kritisk/viktig/mindre
KONFLIKTER_MED_OVERORDNADE_PLANER: 0-5 poster med REKOMMENDERAD_HANTERING
MILJOPAVERKAN_BEDOMNING: MKB_KRAVS ja/nej/osakert plus GRUND
SAMRADSHISTORIK_REFERENSER: per historisk plan
GRANSKNING_REKOMMENDATIONER: 1-10 sektion-by-sektion poster
INTERNA_BEROENDEN_OCH_REMISSER: Lantmateriet, Lansstyrelsen, Trafikverket, andra
GENERELL_KVALITETSBEDOMNING: publikationsbar / revidera-mindre / revidera-vasentligt / mycket-bristfullig
REKOMMENDERAT_NASTA_STEG: namnd-godkant / planforfattar-revision / mer-utredning-kravs / avbryt
NAMND_BRIEFING_UTKAST: 400-700 ord lampligt for namnd-handlingar
REFERENSER_TILL_PLANHANDLINGAR: minst tre konkreta sektion-refs
Varje pastaande modellen gor maste vara forankrat i en konkret sektion av planhandlingarna. Validering kraver minst tre poster i REFERENSER_TILL_- PLANHANDLINGAR. Det betyder att modulen inte kan producera abstrakta bedomningar utan att peka pa kalla.
Modellen lasar planbeskrivningen och planbestammelserna parallellt och soker efter motsattningar mellan dem. Vanliga interna konflikter som modulen ar tranad att identifiera:
Allvar bedoms i tre steg. Kritiska konflikter maste losas innan antagande och medfor risk for overklagande. Viktiga konflikter bor klaras ut i gransknings- skede. Mindre konflikter ar redaktionella och kan strykas i renskrivning.
Modellen jamfor planforslaget mot inrapporterad overensstammelse-status fran indata. Vid delvis eller nej rekommenderar modulen redovisning av avvagning enligt 3 kap 5 § PBL eller revidering av planen. Vid oklart flaggar modulen att OP behover tolkas eller revideras.
Vid berorda riksintressen enligt 3 kap MB eskalerar modulen alltid till "redovisa-avvagning" eller "revidera-plan". Lansstyrelsen kommer i sitt yttrande enligt 5 kap 14 § PBL granska om planen kan medfora pataglig skada. En modul-rekommendation kan inte ersatta detta yttrande, bara forbereda underlaget.
Varje korning producerar en signerad audit-bundle med samma format som ovriga moduler. Bundle innehaller blocken input_received, context_loaded, agent_call, output_generated, voice_validated, output_validated och audit_sealed. Hash-kedjan signeras med Ed25519-nyckeln for kapaciti-modules, vilket gor det mojligt att i efterhand bevisa exakt vilken bedomning som lamnades till namnden och pa vilket underlag.
Audit-bundle skrivs valfritt till disk via run(input, { writeBundle: path }). For myndighetstillsyn lagras bundle-referensen tillsammans med diarienumret. Vid overklagande kan domstolen begara ut bundle och verifiera att utdata har integritet.
Den enklaste integrationen ar pa serversidan i kommunens plansystem (Vitec, Sokigo eller liknande) som en pre-namnd granskning.
import { ZoningPlanAiModule } from "kapaciti-modules/modules/zoning-plan-ai.mjs";
const mod = new ZoningPlanAiModule();
const result = await mod.run(planInput, {
writeBundle: `./audit/${planInput.plan_id}.bundle.json`,
});
if (result.error) {
return { status: "agent_unavailable" };
}
if (result.validateCheck?.violations?.length > 0) {
// Logga violations och fall tillbaka pa manuell granskning
console.warn("zoning-plan-ai violations:", result.validateCheck.violations);
}
return {
rapport_text: result.output,
audit_bundle_path: `./audit/${planInput.plan_id}.bundle.json`,
};
Modulen ar ett granskning-stod, inte en juridisk bedomning. Lansstyrelsens yttrande enligt 5 kap 14 § PBL och MB-tillsyn enligt 6 kap MB kan inte ersattas av en automatiserad analys. Modulen producerar ett underlag som forkorter en handlaggares granskning, inte ett beslut.
Plankarte-data analyseras enbart via de textuella karta_excerpts som skickas in. Geometrisk analys av plankartans former, avstand och hojdkurvor sker inte i denna version. For djupare GIS-analys behovs en separat pipeline.
Modulen lagrar inte personuppgifter sjalv. Audit-bundle innehaller plan-id, fastighetsbeteckningar och planhandlingar i klartext. Bundle maste klassificeras enligt kommunens offentlighets- och GDPR-policy. Detaljplaner ar i regel offentliga handlingar enligt tryckfrihetsforordningen, men sambandet med fastighetsbeteckningar bor behandlas enligt kommunens dataskydds-policy.
Version 1.0 levererar grundscenariot for en detaljplan i samrads- eller granskningsskede. Version 1.1 planeras innehalla:
istallet for sammanfattade topp-invandningar
Justera input-objektet eller använd starter-värdena. När du trycker på Kör modulen anropas samma agent som i produktion. Audit-kedjan byggs framför dig och hela sessionen signeras med Ed25519 i samma format som exempel-bundlen ovan.
JSON-payload som matchar modulens validateInput. Starter-värdena kommer från en riktig produktionskörning. Max 12 000 tecken.
Audit-kedjan visas här när scenariot körs
● Nyhetsbrev
En sammanfattning ungefär en gång i månaden. Vad förändrats i regelverket, vilka pilot-cases vi sett och vilka vendor-shifts som påverkar svenska bolag. Skickas av oss, inte av en automation som låtsas vara oss.