Bij de gemeenteraadsverkiezingen van Wassenaar (2026) doen negen partijen mee. Om hun programma's te analyseren, moeten de teksten eerst digitaal beschikbaar zijn. Sommige programma's staan alleen op websites in HTML en moeten worden omgezet naar platte tekst (.txt) voor verdere verwerking.
Deelnemende partijen (lijstnummers):
Bestandsstructuur: Alle programma's volgen de naamgeving Verkiezingsprogramma<lijstnummer><Partijnaam>.txt (bijv. Verkiezingsprogramma2HartvoorWassenaar.txt) voor eenvoudige controleerbaarheid.
"We gaan de Wassenaarse verkiezingsprogramma's analyseren! Leuk!! ik heb je nodig. Het gaat om deze programma's: [lijst met partijen en lijstnummers]
ik ben bezig de partijprogramma's te downloaden; maar enkele daarvan staan op de website, in html en moeten eerst als tekst worden gedownload om te kunnen gebruiken. Laten we eerst beginnen met Hart voor Wassenaar om te zien of dit lukt. Sla het bestand als .txt bestand op. Hier is het te vinden: https://hartvoorwassenaar.nl/standpunten/"
Belangrijke elementen: context, concrete taak, één partij als pilot, expliciete URL.
"Ik bedenk me iets leuks; mijn collega's willen graag leren van deze excercitie. Kun je een goed leesbaar verslag maken van de prompts en hoe je te werk bent gegaan? Ik denk dat de publicatie op ons intranet een mooie veilige plek is om de informatie te delen."
Belangrijke elementen: doel (leren delen), gewenst product (verslag), doelgroep (collega's), publicatieplek (intranet).
"werk dat verslag bij met elke prompt. kun jij dat zelf in de gaten houden?
verder wil ik dat alle 9 verkiezingsprogramma's dezelfde structuur in de naam hebben; <Verkiezingsprogramma><het volgnummer><NaamvandePartij>. Dat maakt het makkelijker controleerbaar als de collega's letterlijke formulering erbij willen zoeken.
Opdracht 2: zet alle tekst van de verkiezingsprogramma's volledig en letterlijk in één bestand om de performance te optimaliseren en de controleerbaarheid van de tekst te maximaliseren."
Belangrijke elementen: drie deelopdrachten (verslag bijwerken, bestandsnamen standaardiseren, gecombineerd bestand), expliciete redenen (controleerbaarheid, performance).
"ik heb nu ook groenlinkspvda.pdf toegevoegd. analyseer die op dezelfde wijze"
Context: De gebruiker had eerder de VVD-PDF verwerkt met het script pdf_naar_txt.py. GroenLinks-PvdA stond als PDF in de map. Dezelfde aanpak werd gevraagd: tekst extraheren en opslaan als Verkiezingsprogramma4GroenLinksPvdA.txt.
Belangrijke elementen: verwijzing naar bestaande workflow ("op dezelfde wijze"), nieuw bestand toevoegen aan de reeks.
Actie: Het script pdf_naar_txt.py werd uitgebreid om een PDF-bestand als argument te accepteren. Uitvoer: Verkiezingsprogramma4GroenLinksPvdA.txt (38.109 tekens).
"zorg je ervoor dat onze promptgeschiedenis ook wordt bijgewerkt? die wil ik goed leesbaar als html beschikbaar maken voor de collega's, remember?"
Belangrijke elementen: verslag actueel houden, extra formaat (HTML) voor intranet/publicatie, doelgroep (collega's).
Actie: Dit verslag bijwerken met de nieuwe prompts én een HTML-versie genereren voor eenvoudige publicatie op het intranet.
"Lokaal wassenaar - ja loop die ook langs. die hebben ook een link naar het programma, een beetje verstopt. https://lokaalwassenaar.nl/wp-content/uploads/2026/02/Programma-2026-2030-concept-v1.pdf voeg de link toe aan het tekst bestand. Onthoud: ALLES MOET TRACEERBAAR zijn. werk ons promptlogboek ook steeds bij. Oh ja; maak de notitie EXPLICIET dat op het pdf dat je kunt downloaden van de site in de titel 'concept' staat. wel V1. maar laat de collega's daar notie van nemen. ze hebben best een uitgebreide gewone pagina met inhoud https://lokaalwassenaar.nl/?page_id=50 misschien moet je eerst de analyse doen of er verschil zit, inhoudelijk, tussen de pdf en de webpagina. Voer deze stappen in een logische volgorde uit."
Belangrijke elementen: traceerbaarheid, PDF-link toevoegen, expliciete waarschuwing over "concept" in PDF-bestandsnaam, vergelijking PDF vs webpagina vóór aanpassingen, verslag bijwerken.
Actie (uitgevoerd in volgorde): (1) PDF gedownload en tekst geëxtraheerd voor vergelijking. (2) Webpagina opgehaald en inhoudelijk vergeleken met PDF. (3) Bevinding: PDF en webpagina komen inhoudelijk overeen; PDF is concept (v1); bevat extra kandidatenlijst. (4) Verkiezingsprogramma3LokaalWassenaar.txt bijgewerkt met beide bronlinks, expliciete concept-notitie voor collega's, en samenvatting van de PDF-vs-webpagina-analyse. (5) Dit verslag bijgewerkt.
"glpvda; analyseer pdf en extraheer naar tekst."
Actie: PDF gedownload, tekst geëxtraheerd met pdf_naar_txt.py naar Verkiezingsprogramma4GroenLinksPvdA.txt (38.094 tekens). Bronvermelding en verificatielinks toegevoegd.
"ok ik check = is ok . nu cda"
Actie: PDF gedownload, tekst geëxtraheerd naar Verkiezingsprogramma5CDA.txt (17.907 tekens). Parser parse_cda toegevoegd. Database en HTML opnieuw gegenereerd (70 CDA-standpunten).
"super. nu d66 pdf staat in de map lokaal"
Actie: PDF lokaal. Tekst geëxtraheerd naar Verkiezingsprogramma6D66.txt (48.268 tekens). Parser parse_d66 toegevoegd. Database en HTML opnieuw gegenereerd (81 D66-standpunten).
"top - bij de democratische LIBERALEN zie ik dat de kopjes zijn weggevallen"
Actie: Aparte parser parse_dlw toegevoegd die genummerde kopjes (1 EEN BETROUWBAAR..., 2 WONEN..., etc.) herkent en bullet points aan het juiste thema koppelt. DLW nu 13 thema's en 85 standpunten (was 1 thema). Database en HTML opnieuw gegenereerd.
"mooi. fvd is lastig met submenus alleen op de website. kun jij die scrapen? https://fvd.nl/gemeentes/wassenaar"
Actie: Script scrape_fvd_wassenaar.py toegevoegd dat de Nuxt-payload uit de HTML parseert. Alle 10 hoofdstukken geëxtraheerd. Parser parse_fvd toegevoegd. FvD nu 10 thema's en 130 standpunten in de database.
"super. doe volt nu, ik check fvd" / "hij staat lokaal he"
Actie: Volt-PDF lokaal (verkiezingsprogramma-program-2026-volt-wassenaar.pdf). Tekst geëxtraheerd met pdf_naar_txt.py. Parser parse_volt toegevoegd. Volt nu 10 thema's en 50 standpunten in de database.
De AI-assistent onthoudt prompts niet automatisch tussen sessies. Tip: maak aan het einde van elke sessie een vaste afsluiting, bijvoorbeeld: "Werk het verslag bij met de prompts van deze sessie." Of: "Zorg dat de promptgeschiedenis wordt bijgewerkt en als HTML beschikbaar is voor collega's." Dan blijft de promptdocumentatie up-to-date.
De assistent gebruikte een web fetch-tool om de inhoud van de URL op te halen. De tool haalt de pagina op en zet de HTML om naar leesbare tekst (Markdown-achtig formaat).
Er werd gekeken welke bestanden al in de projectmap stonden. Daarbij viel op dat er al een bestand Verkiezingsprogramma_2-Hart voor Wassenaar.txt was, maar dat dit onvolledig was (alleen kopjes en een deel van Financiën).
De opgehaalde inhoud werd:
Het resultaat werd opgeslagen als Verkiezingsprogramma2HartvoorWassenaar.txt in de projectmap (na Prompt 3: hernoemd naar standaardstructuur).
Voor programma's die als PDF beschikbaar zijn (zoals VVD en GroenLinks-PvdA) wordt het Python-script pdf_naar_txt.py gebruikt. Het script ondersteunt PyMuPDF (fitz) voor snelle extractie. Gebruik:
python pdf_naar_txt.py <pdf-bestand> [uitvoer-bestand]
Bijvoorbeeld: python pdf_naar_txt.py Verkiezingsprogramma4GroenLinksPvdA.pdf Verkiezingsprogramma4GroenLinksPvdA.txt
| Tool | Doel |
|---|---|
| Web fetch | Ophalen van webpagina-inhoud via URL |
| Glob/file search | Zoeken naar bestaande bestanden in het project |
| Read | Bestaande bestanden lezen om duplicatie te voorkomen |
| Write | Nieuw tekstbestand aanmaken of bestaand bestand overschrijven |
| pdf_naar_txt.py | Tekst extraheren uit PDF-bestanden (PyMuPDF) |
Individuele bestanden (standaardnaamgeving):
Verkiezingsprogramma1VVD.txt – volledig (uit PDF)Verkiezingsprogramma2HartvoorWassenaar.txt – volledigVerkiezingsprogramma3LokaalWassenaar.txt – volledigVerkiezingsprogramma4GroenLinksPvdA.txt – volledig (uit PDF)Verkiezingsprogramma5CDA.txt – volledigVerkiezingsprogramma7DemocratischeLiberalenWassenaar.txt – volledigGecombineerd bestand: Alle_verkiezingsprogrammas_gecombineerd.txt bevat alle beschikbare programma's volledig en letterlijk in één bestand voor optimale performance en controleerbaarheid.
Verificatie door collega's: In alle tekstbestanden en in Gebruikte_verkiezingsprogrammas.txt staan links naar de originele PDF's en websites op internet. Zo kunnen collega's de bronnen zelf controleren.