Yttranden, kategori, sentiment, topp-invändningar.
Module 15 av 16 i kapaciti-modules. Tar en samling yttranden inkomna i ett formellt samrads- eller yttrandeforfarande och producerar ett strukturerat beslutsunderlag som kan ga direkt till namnden, plus signerat audit-bundle.
En kommun haller samrad pa en detaljplan, motion-svar, policy-yttrande eller budgetsamrad. Hundratals yttranden inkommer via e-tjanst, post, mejl eller personliga moten. Manuell sammanstallning tar dagar och riskerar fa betydelser bort i prioriteringen. Modulen levererar pa minuter:
{
dialog_id: "skell-dp-2026-bonnstan-norra",
proceeding: {
type: "detaljplan-samrad" | "motion-svar" | "policy-yttrande" | "budgetsamrad" | "annat",
title: "Detaljplan for kvarteret Bjorken",
summary: "Forslag till ca 180 bostader...",
kommun: "Skelleftea kommun",
start_date: "2026-04-01",
end_date: "2026-05-15"
},
submissions: [
{
submission_id: "yt-001",
submitter: { name, contact, anonymous, type: "privatperson" | "intressegrupp" | "foretag" | "anonym" },
submitted_at: "ISO",
channel: "e-tjanst" | "post" | "email" | "personligt-mote",
raw_text: "...",
attachments_count: 0
}
],
category_taxonomy: ["hojd-och-volym", "trafik-och-parkering", "..."],
sentiment_options: ["positiv", "neutral", "negativ", "kritisk-konstruktiv"],
context_documents: [{ title, excerpt }]
}
Validering ar strikt. Dialog-id, proceeding-type, datum, submitter-typ och channel maste falla inom enumererade varden. Duplicerade submission_id forbjudna. Taxonomi och sentiment-options far inte vara tomma.
Strukturerad svensk text med fasta sektioner. Parsern i modulen extraherar total-antal, kategori-breakdown, topp-invandningar med citerade submission_id, flaggor och namnd-underlag. Sektioner:
TOTAL_INSKICKADE och ANALYSERAT_AV_TOTALENKATEGORI_BREAKDOWN med antal, procent, sentiment-fordelningTOPP_INVANDNINGAR (3-7 stycken) med verbatim citat och submission_idPOSITIVA_FORSLAG (0-5)FLAGGADE_FOR_MANUELL_BEDOMNING (0-10) med anledning, allvar, rekommenderad handlingGDPR_OCH_SEKRETESS_NOTERINGARNAMNDENS_BESLUTSUNDERLAG_UTKAST (300-600 ord svensk prosa)REKOMMENDERADE_KOMMUN_SVAR (3-5 svar)METODOLOGI_NOTERINGOSAKERA_KLASSIFICERINGARVarje korning producerar minst sju block: input_received, context_loaded, agent_call, output_generated, voice_validated, output_validated och audit_sealed. Hela kedjan signeras med Ed25519 mot kapaciti-modules signing key och verifieras med verifyBundle. Verifieraren faller om nagon kontent forandras efter signering.
Automatiserad kategorisering av medborgar-input ar en kanslig operation. Modulen ar designad efter tre principer for att minska risk for systematisk snedvridning:
Forsta, hog recall pa flaggning av hot, hat och personangrepp. Hellre over- flagga och lat manniska avfarda an under-flagga och missa nagot. Flaggningen ar inte censur, det ar bara en routing-rekommendation till manuell handlaggning. Beslut om polisanmalan, juridisk eskalering eller maskering fattas alltid av en mansklig handlaggare.
Andra, verbatim citat preferred over parafraser. Topp-invandningar syntetiseras men ska alltid stodjas med faktiska citat och submission_id sa att en namnd-ledamot kan ga tillbaka till kallan. Detta minskar risk for att modulens tolkning skiljer sig fran yttrarens intention pa ett satt som inte gar att granska.
Tredje, osakra klassificeringar markeras explicit i en egen sektion. Om en yttrande kan tolkas pa flera satt, eller om den ligger i grans till en flagga, sa lyfts den separat for manuell granskning istallet for att tvingas in i en kategori.
Det finns andra fairness-aspekter modulen inte loser. Sprak ar en sadan: yttranden pa andra sprak an svenska kraver oversatting innan modulen kan hantera dem ratt, och oversattningen kan i sig snedvrida tonen. En annan ar att anonyma yttranden inte kan vagas mot upprepad inskickning fran samma person, vilket gor det svart att skilja en aterkommande oroad medborgare fran en koordinerad kampanj. Modulen flaggar misstanke om bot baserat pa mycket grova signaler (kort tid mellan submissions, mycket lika texter) och overlater bedomningen till manniskan.
Konservativ ton i svarsutkast ar ocksa en medveten begransning. Modulen lovar aldrig att kommunen ska justera planen, sanka hojden eller bygga bullerskydd. Allt sant beslut maste komma fran politisk avvagning eller forvaltningens egen prevning. Modulen formulerar bara att fragan kommer att vagas av och hanvisar till nasta steg i planprocessen.
import CitizenDialogModule from "kapaciti-modules/modules/citizen-dialog.mjs";
const mod = new CitizenDialogModule();
const res = await mod.run(input, { writeBundle: "./dialog-bundle.json" });
if (res.error === "usage_cap") {
// Hantera rate-limit
} else if (!res.validateCheck.ok) {
console.error("Output failed structural validation", res.validateCheck.violations);
} else {
console.log(res.output);
console.log("Bundle written", res.bundle.run_id);
}
// Kontrollera att alla citat ar verifierbara mot original-submissions
const cite = CitizenDialogModule.verifyCitations(res.output, input.submissions);
if (!cite.ok) {
console.warn("Modulen citerade okanda submission_id:", cite.unknown_ids);
}
Modulen tar inte stallning till offentlighetsprincipen versus GDPR i konkret beslut, den bara lyfter fragan i GDPR_OCH_SEKRETESS_NOTERINGAR. Lokalt prejudikat i nagra kommuner kan kraver hardare maskering an Datainspektionens default-rad. Detta hanteras genom att kommunens jurist gar igenom GDPR- sektionen innan publicering av handlingar.
Andra-versionens roadmap inkluderar: stod for fleranspraktiga yttranden via forsvenskning innan analys, hash-baserad jamforelse for att detektera likadana texter (bot-koordinering), tids-clustering for att se mobilisering runt specifika datum, samt direkt-export till kommunens diariesystem via sa kallad PUL-saker integration.
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.