Architectuur · voor developers, regelanalisten en architecten

Onder de motorkap — drie lagen, geen black box.

De Sneltoetser is een open architectuur: live juridische data uit het DSO, semantische AI die vrije tekst koppelt aan de juiste toetskaders, en hardcoded logica voor de meest voorkomende rijksregels. IMOW-activiteiten worden uit het DSO meegelezen als context — niet meer als hoofdfilter, dat doet Claude nu semantisch. Elke laag is afzonderlijk te begrijpen, vervangen of uit te breiden.

De drie lagen

Van bronnen naar onderbouwd advies

De aanvraag van een initiatiefnemer — vrije tekst plus adres — wordt in drie stappen omgezet naar een per-regel-onderbouwd antwoord. Elke laag heeft één heldere verantwoordelijkheid.

3

Semantische AI-laag (live op Claude Sonnet)

Doet vandaag drie dingen: élk initiatief herkennen, per conclusie gemeente-specifieke toelichting schrijven, én de DSO-regelteksten van het omgevingsplan lezen.

  • Initiatief-herkenning: tuinhuisje, terras, kappen, zonnepanelen, evenement — Claude kent ze allemaal en mapped naar onze activiteit-pool.
  • Toelichting-verrijking: Claude schrijft per conclusie de juiste gemeente, het loket, en concrete vervolgstappen — i.p.v. generieke "raadpleeg uw gemeente".
  • DSO-regelteksten lezen: de regelteksten van het gemeentelijke omgevingsplan worden opgehaald via Presenteren v8 (~600 artikelen per locatie typisch) en aan Claude meegegeven, zodat de toelichting expliciet kan verwijzen naar specifieke artikelnummers ("art. 22.1 en 22.10 van het omgevingsplan Den Haag").
  • Pilot-budget: €50/maand + €100 totaal; bij overschrijden auto-fallback naar mock + hardcoded toetsing (tool blijft werken).
↑ semantisch begrip
2

Initiatief-herkenning

Koppelt de vrije beschrijving aan een initiatief-type en bepaalt welke toetskaders relevant zijn.

  • Semantisch via Claude: élke vrije-tekst-beschrijving wordt herkend en gemapped naar een initiatief-type plus relevante activiteit-keys (rijksregels + lokaal).
  • 7 hand-getoetste cases (dakkapel, varkensstal, kippenstal, stal-algemeen, woning, schuur, bedrijfspand) routen naar specifieke hardcoded Bbl/Bal/Bkl-logica.
  • Fallback bij geen Claude-budget: keyword-matching op de 7 hand-getoetste cases + generieke bouw-fallback.
↑ per-initiatief filter
1

Live juridische data

Op exact deze coördinaat alle geldende regelingen ophalen — alles wat in het DSO staat.

  • DSO Presenteren v8 — Bbl, Bal, Bkl (Rijk), gemeentelijk omgevingsplan, provinciale verordening en waterschapsverordening.
  • ~20 regelingen per locatie typisch teruggegeven, op alle vier bestuursniveaus.
  • Direct uit de regelingen-laag (de wettekst zelf), niet via gemodelleerde toepasbare regels.
Bronnen

Waar de data vandaan komt

Naast het DSO worden vier extra open-data-bronnen geraadpleegd voor locatie-context. Allemaal publieke API's; geen scraping, geen tussenpartijen.

BronWat het levertEndpoint
DSO Presenteren v8 Geldende regelingen + regeltekstannotaties per coördinaat service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/presenteren/v8
PDOK Locatieserver Geocoding: adres → RD-coördinaten (EPSG:28992) geodata.nationaalgeoregister.nl/locatieserver/v3/free
RCE Rijksmonumenten Monument-status + beschermd stadsgezicht (WFS point-in-polygon) opendata.cultureelerfgoed.nl/.../wfs
PDOK BGT Landgebruik op de locatie (woon, agrarisch, natuur, ...) service.pdok.nl/lv/bgt/wfs/v1_0
Natura 2000 (PDOK WFS) Stikstof-relevantie / beschermd-natuurgebied-indicatie service.pdok.nl/rvo/natura2000/wfs/v1_0

Alle endpoints zijn publiek toegankelijk; alleen DSO Presenteren vereist een gratis API-key. Geen commerciële tussenpartijen, geen ETL-pipeline, geen gecachede tussenkopie — elke check haalt verse data op.

Tech stack

Klein, expliciet, geen frameworks tenzij nodig

Backend

  • Python 3.12 + Flask
  • Gunicorn (1 worker, 4 threads)
  • Geen ORM, geen database — sessies via Flask-secret in cookies

Frontend

  • Vanilla HTML / CSS / JS
  • Geen build-step, geen framework
  • Eén-bestand template — alles zelf-bevattend

Hosting

  • Tool: Hetzner VPS (Ubuntu 24.04) + nginx
  • Landing: GitHub Pages
  • TLS: Let's Encrypt (auto-renewal)

Veiligheid

  • Soft-CAPTCHA (eenmalig per sessie)
  • Kill-switch via env-var
  • Secrets buiten code (env / gitignored file)
  • TLS via Let's Encrypt (auto-renewal)
Bijdragen

Help mee bouwen aan een open Omgevingswet-laag

Issues, ideeën, vragen, kritiek — allemaal welkom. De code wordt voorbereid voor publieke release; meld je nu aan dan krijg je een seintje zodra de repo open gaat.

📋

Initiatief toevoegen

Voor complexe cases (evenementen, lozingen, splitsen) hand-getoetste Bbl/Bal/Bkl-logica toevoegen zodat de tool 100% sluitend is. Vereist: regelanalist-blik op de drempelwaarden + casus-validatie.

📚

Regelkennis toetsen

Voor regelanalisten: heeft de tool een artikel verkeerd geïnterpreteerd? Open een issue met de casus en het juiste antwoord; we passen de toetsingslogica aan.

🧪

Pilot doen

Een gemeente die de tool wil testen op echte aanvraag-historie? Geen kosten — wel een gesprek over scope, output-vorm, en hoe de feedback terug in de tool komt.

💻

Code-bijdrage

De repo wordt voorbereid voor publieke release. Krijg een aankondiging zodra de code open is: stuur een e-mail of volg op LinkedIn.

Status & licentie

Waar staat het project nu?

OnderdeelStatusToelichting
Versie PoC v0.x Functioneel + Claude-integratie live. Niet productie-gehard. Geschikt voor demo & pilot.
Website-repo Open source HTML/CSS van deze pagina's — GitHub
Tool-repo In voorbereiding Wordt opgeschoond voor publieke release. Aankondiging volgt via LinkedIn.
Licentie (voornemen) MIT / EUPL Definitieve keuze volgt bij publieke release; ruime open-source-licentie sowieso.
Data-licentie Publiek DSO & PDOK zijn open data; geen restricties op gebruik.
Governance Solo, open voor inbreng Vandaag: één auteur. Open vraag voor toekomst — zie Richting.