AI code review staat voor twee taken: een AI-tool die een codewijziging beoordeelt, en een mens die code beoordeelt die een AI-tool heeft geschreven. Dit artikel gaat over de tweede taak: een herhaalbare manier om AI-gegenereerde code in pull requests te reviewen, te bepalen wie elke wijziging goedkeurt en het bewijs te bewaren dat het samenvoegen rechtvaardigt. Het is geen vergelijking van AI code review-tools. U leest de twee betekenissen van AI code review, de redenen voor een menselijke goedkeurder, een reviewproces in vijf lagen, het bewijs dat elke pull request nodig heeft en wanneer u een wijziging escaleert.

TL;DR

AI code review betekent een AI-tool die code controleert, of een mens die code controleert die een AI schreef. AI-gegenereerde code heeft het tweede nodig als laatste goedkeuring: een review op basis van alleen de diff en de repository kan bedrijfsregels en datagrenzen missen die nooit zijn vastgelegd of aangeleverd.

  • Twee betekenissen, één gat: een review door een AI-tool markeert bekende fout- en stijlpatronen in een diff; een review van AI-gegenereerde code bevestigt vóór het samenvoegen dat de wijziging veilig doet wat het bedrijf nodig heeft.
  • Vier redenen voor een menselijke goedkeurder: AI-reviewers werken vaak met dezelfde beperkte context als de AI-auteur, nette code kan het verkeerde doen, AI-tools kunnen pakketten voorstellen die niet bestaan, en er wordt elke week meer code samengevoegd dan iemand leest.
  • Een reviewproces in vijf lagen bestaat uit twee geautomatiseerde lagen (pipelinecontroles, een AI-reviewer) en drie menselijke lagen (bedrijfsregels, vertrouwensgrenzen en data, reviewdiepte naar blast radius), elk met een benoemde eigenaar en vastgelegd bewijs.
  • Escaleer een pull request als de reviewer de bedrijfsregel niet kan bevestigen, een rechtencontrole niet kan reproduceren of het effect van een migratie op bestaande data niet kan uitleggen; houd de merge aan tot een gekwalificeerde reviewer het gat dicht.

Hoe u een AI-gebouwd product met echte gebruikers in productie brengt, leest u in de gids AI coding in productie. Dit artikel gaat één niveau dieper, naar de review van elke pull request.

Wat betekent AI code review: twee verschillende taken

AI code review is óf een review door een AI-tool, waarbij een taalmodel commentaar geeft op een pull request, óf een review van AI-gegenereerde code, waarbij een mens code controleert die een AI-tool schreef. De twee taken beantwoorden een andere vraag en hebben een andere grens. Een pull request is een voorgestelde wijziging die iemand goedkeurt voordat die wordt samengevoegd; een diff is de lijst met regels die veranderen.

BetekenisWat het isVraag die het beantwoordtGrens
Review door een AI-toolEen reviewer op basis van een taalmodel geeft commentaar op pull requests of in de editorBevat deze wijziging bekende fout-, security- of stijlpatronen?Werkt met de context die de tool krijgt: meestal de diff en de repository, zelden contracten, gebruikers of ongeschreven bedrijfsregels
Review van AI-gegenereerde codeEen mens keurt binnen een vast proces code goed die een AI-tool schreefDoet deze wijziging veilig wat ons bedrijf nodig heeft, en ligt het bewijs vast?Vraagt iemand die het bedrijf kent en code kan lezen, of een onafhankelijke reviewer
Tabel 1. De twee betekenissen van AI code review

De richtlijn van GitHub voor het reviewen van AI-gegenereerde code maakt dezelfde splitsing vanuit de ontwikkelaar: AI-reviewtools zijn één stap in een proces dat nog steeds een menselijke controle van context en bedoeling bevat. De algemene afweging tussen mensen en tools staat in de gids over manual en automated code review.

Waarom heeft AI-gegenereerde code een menselijke review nodig?

AI-gegenereerde code heeft een menselijke goedkeurder nodig omdat een AI-wijziging er af kan uitzien voordat die klopt, en een review op basis van alleen de diff en de repository dat verschil kan missen. Vier mechanismen verklaren dat gat.

De AI-reviewer deelt de blinde vlekken van de AI-auteur

Een AI-reviewer ziet wat hij krijgt: de diff, de repository en soms de prompthistorie. Worden de productspecificatie, de prijsregels of de rollenmatrix niet aangeleverd, dan kan de AI-reviewer de wijziging daar niet aan toetsen. Twee modellen die op vergelijkbare openbare code zijn getraind, accepteren bovendien vaak dezelfde patronen: een fout die voor het auteursmodel normaal oogde, kan ook voor het reviewmodel normaal ogen.

AI-reviewers vinden wel echte problemen in gegenereerde code, zeker als ze de productspecificatie en de relevante tests krijgen. Het risico zit in regels die nooit zijn opgeschreven of aangeleverd. Een menselijke goedkeurder bevestigt het verwachte gedrag met de producteigenaar, bekijkt gewijzigde tests en vraagt bewijs voor risicovolle onderdelen vóór het samenvoegen. Het onderzoeksbewijs over AI-tools die hun eigen output controleren, staat in de gids AI coding in productie.

Nette code die het verkeerde doet

Leesbare code en geslaagde tests bewijzen niet dat de software correct werkt. Neem een illustratief scenario: een planningsapp voor Nederlandse installatiebedrijven. Een AI-refactor slaat afspraaktijden op met een vaste UTC-offset van +02:00 in plaats van de tijdzone Europe/Amsterdam. Als Nederland op 25 oktober 2026 overgaat van zomertijd (CEST) naar wintertijd (CET), toont elke afspraak voor een datum na de omschakeling een uur te laat.

De testsuite blijft in dit scenario groen, omdat dezelfde AI-wijziging ook de verwachte testuitkomsten aanpaste aan het nieuwe gedrag. De les voor elke review van AI-gegenereerde code: review de tests net zo goed als de code, en markeer elke pull request die code en tests tegelijk wijzigt.

Pakketten en functies die niet bestaan

AI-codingtools stellen soms bibliotheken of functies voor die niet bestaan; dat heet package hallucination. In de testset van Spracklen et al. produceerden 16 codegenererende modellen 576.000 codevoorbeelden, en het gemiddelde aandeel verzonnen pakketten was minstens 5,2% bij commerciële modellen en 21,7% bij opensourcemodellen (“We Have a Package for You!”, USENIX Security 2025). Die percentages gelden voor de prompts en modellen uit het onderzoek, niet voor elk product.

Aanvallers kunnen verzonnen pakketnamen registreren en er kwaadaardige code onder publiceren; die tactiek heet slopsquatting. Een afhankelijkheid is een externe bibliotheek waarop het product draait. Voor elke nieuwe afhankelijkheid in AI-gegenereerde code ligt een besluit vast: het pakket bestaat, wordt onderhouden en is het pakket dat het team bedoelde.

Meer code dan iemand leest

AI-codingtools verhogen de hoeveelheid code per ontwikkelaar, en review wordt de stap die teams overslaan. Het DORA-onderzoek van 2024 vond dat 25% meer AI-gebruik samenging met 7,2% minder stabiliteit in softwarelevering en 1,5% minder leveringssnelheid (DORA, Impact of Generative AI in Software Development). DORA presenteert dit als samenhang, niet als bewezen oorzaak.

De drempel: wordt er elke week meer code samengevoegd dan één persoon kan lezen, bepaal dan welke delen van het product een mens moet lezen. Laag 5 van het reviewproces legt die regel vast.

Hoe reviewt u AI-gegenereerde code: vijf lagen

Review AI-gegenereerde code in vijf lagen: twee geautomatiseerd en drie menselijk. Elke laag heeft een eigenaar, één concrete controle en een stuk bewijs dat in de pull request komt. De vijf lagen zijn een redactioneel model van Sunbytes, geen NIST-framework; het model sluit aan bij practice PW.7 van het NIST Secure Software Development Framework (SP 800-218, v1.1), dat vraagt om het reviewen of analyseren van leesbare code om kwetsbaarheden te vinden en securityeisen te controleren.

ai-code-review-vijf-lagen
Figuur 1. De vijf lagen van een review van AI-gegenereerde code, met een eigenaar per laag

Laag 1: laat machines controleren wat machines kunnen

Laag 1 voert bij elke pull request geautomatiseerde controles uit in de CI-pipeline: de code compileert, bestaande tests slagen, linters en typecontroles draaien, en scans zoeken naar gelekte geheime sleutels en kwetsbare bibliotheken. Een linter markeert stijl en veelvoorkomende fouten; een geheime sleutel is een wachtwoord, token of API-sleutel die nooit in de code hoort. Eigenaar is wie de pipeline beheert; het bewijs is het pipelineresultaat bij de pull request.

De controle die bij AI-gegenereerde code vaak wordt vergeten: zijn tests verwijderd, overgeslagen of herschreven zodat ze slagen? Ook de richtlijn van GitHub noemt die valkuil.

Laag 2: zet een AI-reviewer in als tweede ronde

Laag 2 zet een AI-reviewer op elke pull request om patroonfouten snel te vinden: dubbele logica, onveilige functies, ontbrekende foutafhandeling, inconsistente namen. Geef de AI-reviewer de regels van het team en waar mogelijk de specificatie van de wijziging; behandel de opmerkingen als suggesties, niet als goedkeuring. Eigenaar is de lead developer, die vastlegt welke opmerkingen zijn opgevolgd. Gratis en opensource reviewtools kunnen deze laag draaien; de tool weegt minder zwaar dan wie de opmerkingen opvolgt. Hoe scanners en menselijke securityreview het werk in een pipeline verdelen, leest u in secure code review vs SAST.

Laag 3: een mens toetst bedoeling en bedrijfsregels

In laag 3 bevestigt een mens dat de wijziging doet wat het bedrijf nodig heeft, en niet alleen wat de prompt vroeg. De reviewer legt de oorspronkelijke prompt of ticket naast de wijziging en controleert de randgevallen die AI-gegenereerde code vaak mist: lege lijsten, ontbrekende waarden, twee gebruikers die tegelijk iets doen, tijdzones en zomertijd, valuta en btw-afronding, terugbetalingen en annuleringen.

Eigenaar van laag 3 is iemand die de productregels kent; het bewijs is diens bevestiging van het verwachte gedrag, bij voorkeur met concrete voorbeelden. Een reviewer die de prijsregel niet kan benoemen, keurt een wijziging daarvan niet goed.

Laag 4: een mens toetst vertrouwensgrenzen en data

In laag 4 controleert een mens elke vertrouwensgrens in de wijziging. Een vertrouwensgrens is elk punt waar de code bepaalt wie iemand is en wat die persoon mag. De reviewer controleert authenticatie en rollen, wie welke records mag lezen of wijzigen, geheime sleutels in code of front-end, invoer van gebruikers en derden, en het loggen van persoonsgegevens. Broken Access Control staat als A01 in de OWASP Top 10:2025; het bewijs voor laag 4 is een rechtencontrole die per betrokken rol is geverifieerd.

Artikel 32 van de AVG (GDPR) eist beveiligingsmaatregelen die passen bij het risico voor persoonsgegevens. De AVG schrijft geen menselijke code review voor; een beleid waarbij code die persoonsgegevens verwerkt vóór het samenvoegen door een mens wordt gereviewd, is ons advies om die risicogebaseerde plicht in te vullen. De veelvoorkomende risico’s in AI-gebouwde apps staan in vibe coding beveiligingsrisico’s.

Laag 5: bepaal de reviewdiepte naar blast radius

Laag 5 bepaalt welke wijzigingen een diepe menselijke review krijgen. Blast radius betekent de impact als het misgaat: wat breekt er, en voor wie. Trunk code is de code waar veel functies van afhangen: login, betalingen, het datamodel, rechten en integraties. Leaf code zit aan de rand, zoals teksten en lay-out. Eigenaar is de founder of CTO, die de kaart van trunk-onderdelen één keer vastlegt en bijwerkt als het product verandert.

Hoe diep reviewt u: inzet naar blast radius

De reviewdiepte voor AI-gegenereerde code hangt af van wat er breekt als de wijziging fout is, niet van het aantal regels. Een wijziging van drie regels in een rechtencontrole kan klantdata blootleggen, terwijl een grote lay-outwijziging dat meestal niet kan, tenzij die ook exports, rechten of dataquery’s raakt. Tabel 2 geeft de diepte per onderdeel van het product.

OnderdeelVoorbeeldReviewdiepteWie tekent af
Authenticatie en rollenLogin, wachtwoordherstel, beheerdersrolDiepe menselijke review + testbewijsBenoemde goedkeurder, niet de auteur
Betalingen, facturen, btwAfrekenen, terugbetalingen, btw-afrondingDiepe menselijke review + testbewijsBenoemde goedkeurder, niet de auteur
Datamodel en migratiesNieuwe kolom, ander datumformaatDiepe menselijke review + testbewijsBenoemde goedkeurder, niet de auteur
Verwerking van persoonsgegevensExports, logs, profielpagina’sDiepe menselijke review + testbewijsReviewer met security-kennis
Integraties en API-sleutelsBetaalprovider, CRM-koppelingMenselijke reviewLead developer
BedrijfsregelsPrijzen, planning, voorwaardenMenselijke reviewIemand die de regel kent
Interne rapporten en beheerschermenWekelijks verkooprapport zonder exportsAI-reviewer + steekproefElke ontwikkelaar
UI-teksten en lay-outKnopteksten, witruimteAI-reviewer + steekproefElke ontwikkelaar
Tabel 2. Reviewdiepte voor AI-gegenereerde code naar blast radius
ai-code-review-blast-radius
Figuur 2. Hoe diep u AI-gegenereerde code reviewt, per onderdeel van het product

Een reviewrecord maakt de diepte zichtbaar. Het voorbeeld hieronder toont het minimale record voor een AI-gegenereerde betaalwijziging.

VeldInvulling
Doel van de wijzigingBtw-afronding bij terugbetalingen voor Nederlandse klanten corrigeren
AI-gegenereerde scopesrc/billing/refunds en de refund-tests
Geautomatiseerd bewijsBuild, unittests en dependency-scan geslaagd
Bewijs bedrijfsregelFinance-eigenaar keurde de verwachte afrondingsvoorbeelden goed
RegressiebewijsEerdere terugbetalingsvoorbeelden slagen nog; gewijzigde testverwachtingen zijn gereviewd
SecuritybewijsRechten voor terugbetalingen geverifieerd voor klant- en beheerdersrol
BesluitPas goedkeuren na akkoord van een reviewer die niet de auteur is; anders merge aanhouden
Tabel 3. Voorbeeld: minimaal reviewrecord voor een AI-gegenereerde betaalwijziging

Heeft een trunk-onderdeel geen benoemde persoon die het kan reviewen, dan is dat gat de reden om een externe reviewer in te schakelen.

Wat een founder kan controleren zonder code te lezen

Een founder kan bij elke pull request vier dingen controleren zonder één regel code te lezen. Elke controle is zichtbaar op de pull-requestpagina van elk gangbaar codeplatform.

  1. De pull request beschrijft in één zin wat de wijziging moet doen en linkt naar het ticket of de prompt.
  2. Een wijziging in een trunk-onderdeel noemt een menselijke goedkeurder die niet de auteur is.
  3. Testbewijs is bijgevoegd, en testbestanden die in dezelfde pull request zijn gewijzigd, zijn gemarkeerd.
  4. Nieuwe externe pakketten staan vermeld met een besluit: goedgekeurd of afgewezen.

Ontbreekt bij een risicovolle pull request een goedkeurder die niet de auteur is, relevant testbewijs of een besluit over een nieuwe afhankelijkheid, voeg die dan niet samen. Wijs een eigenaar aan en dicht het gat in die pull request; wacht niet tot het proces herhaaldelijk faalt.

Laag 1 en 2 draaien vanzelf. Laag 3 tot 5 vragen om iemand die weet waar hij op moet letten.

Kan niemand in uw team AI-gegenereerde code goedkeuren aan de hand van uw bedrijfsregels en de grenzen van de klantgegevens? Dan kan een onafhankelijke reviewer dat deel overnemen. Een AI-built product review staat los van wie de code herstelt, met bevindingen in begrijpelijke taal en een geprioriteerd actieplan.

→ Bekijk wat de AI-built product review omvat

Welk bewijs heeft een pull request nodig vóór het samenvoegen?

Een AI-gegenereerde pull request is klaar om samen te voegen als het bewijs voor elke relevante vraag vastligt, niet als een tool of een mens zegt dat het er goed uitziet. AI-reviewers en scanners leveren een deel van dat bewijs; de rest vraagt iemand met toegang tot de regels, de rollen en de testresultaten. Tabel 4 geeft het bewijs per vraag.

VraagBewijs van een AI-reviewer of scannerBewijs dat een mens toevoegt
Zijn stijl en structuur consistent?Linter en opmerkingen van de AI-reviewerGeen, tenzij opmerkingen worden betwist
Lijkt de code op een bekend kwetsbaar patroon?Scannerbevindingen en AI-opmerkingenBesluit per bevinding: herstellen, accepteren of vals positief
Brengt een nieuwe afhankelijkheid risico mee?Uitvoer van de dependency-scanBesluit per nieuw pakket: goedgekeurd of afgewezen
Volgt de functie de bedrijfsregel?Kan afwijkingen markeren als de specificatie is aangeleverdBevestiging van de producteigenaar met concrete voorbeelden
Kan een klant bij de data van een andere klant?Kan mogelijke toegangsproblemen markerenRollenmatrix en rechtentests per betrokken rol
Zijn tests afgezwakt zodat de wijziging slaagt?Kan gewijzigde of verwijderde testbestanden markerenNotitie van de reviewer waarom elke verwachting veranderde
Is dit de juiste bevinding om eerst op te lossen?ErnstlabelsPrioriteitsbesluit van de eigenaar van de release
Tabel 4. Bewijs dat nodig is voordat een AI-gegenereerde pull request wordt samengevoegd

Wij raden aan de AI-reviewer op elke pull request te houden, omdat die routinebevindingen weghaalt voordat een mens tijd aan de wijziging besteedt. De voorwaarde: op trunk code is de AI-reviewer nooit de enige goedkeuring.

Wanneer escaleert u een AI-gegenereerde pull request?

Een routinereview is niet genoeg als een wijziging een onderdeel raakt dat niemand in het team kan verifiëren. Houd de merge aan als de reviewer de geldende bedrijfsregel niet kan bevestigen, een rechtencontrole niet kan reproduceren of het effect van een migratie op bestaande data niet kan uitleggen. Wijs een gekwalificeerde reviewer aan, leg het ontbrekende bewijs vast en draai de relevante tests opnieuw vóór de goedkeuring.

Een ander besluit speelt wanneer u vertrouwen nodig hebt in het hele product: vóór de lancering, vóór de security-vragenlijst van een zakelijke klant, bij een due diligence, na een grote AI-herschrijving of bij een overdracht van het ontwikkelwerk. Dat is de scope van een onafhankelijke AI code audit, niet de goedkeuring van één pull request. Zakelijke inkopers in de EU vragen vaak naar veilig programmeren en securitytests, de onderwerpen van ISO/IEC 27001:2022 Annex A 8.28 en 8.29 (ISO/IEC 27001:2022).

Hoe Sunbytes AI-gegenereerde code reviewt

Een AI code review slaagt wanneer iemand de code goedkeurt aan de hand van hoe het bedrijf werkt, niet aan de hand van de prompt die de code opleverde. In laag 3 tot 5 heeft een AI-reviewer het minst om mee te vergelijken: bedrijfsregels, de grenzen van de klantgegevens en de delen van het product met de grootste impact als het misgaat.

Sunbytes zet een onafhankelijke reviewer op precies die vragen met een AI-built product review. De reviewer heeft de code niet geschreven of geprompt en wordt niet ingehuurd om te herstellen. Raken de bevindingen toegangsbeheer, geheime sleutels of AVG-bewijs, dan past de review de securitydiepte van laag 4 toe; de bevindingen komen in begrijpelijke taal met een geprioriteerd actieplan, zodat reviewer, bewijs en herstelwerk gescheiden blijven.

Sunbytes is een in Nederland opgerichte partner voor technologie, cybersecurity en personeelsoplossingen, met het hoofdkantoor in Utrecht en een delivery hub in Ho Chi Minh-stad. In meer dan 15 jaar heeft Sunbytes ruim 300 projecten opgeleverd voor klanten in 20 landen, binnen een ISO/IEC 27001-gecertificeerd managementsysteem voor informatiebeveiliging. Toegang tot uw code valt tijdens de review onder dat systeem, met governance vanuit Nederland.

Is laag 3 tot 5 vandaag bij iemand in uw team belegd? → Bespreek uw AI-gebouwde product met ons.


Author

Thien Le Marketing Executive

Thien Le is een B2B-contentschrijver met ruim vier jaar ervaring in het maken van B2B-content voor een internationaal publiek. Haar specialisme ligt op het snijvlak waar mensen, technologie en bedrijfsvoering samenkomen. Bij Sunbytes verzorgt ze de planning, bundelt ze de kennis van HR-experts, redigeert ze en zet ze technologie in om de kwaliteit van content te verhogen. Met haar artikelen helpt ze lezers om ingewikkelde thema's te ontrafelen en biedt ze praktische handvatten voor het grensoverschrijdend werven, verlonen en aansturen van medewerkers.

Waar kunnen we je mee verder helpen?

Laat ons weten waar je aan werkt. Wij koppelen je aan de juiste Sunbytes-oplossing.

[DUTCH] Submission form (Homepage, Contact us & Service pages)

This field is for validation purposes and should be left unchanged.
(Required)
Untitled(Required)