Een agent die klaar is, vraagt om je akkoord. Doet hij dat na elke klus, dan tik je op den duur alles blind weg, ook die ene keer dat het ertoe deed. Deze toets legt het criterium op wat de agent feitelijk deed, niet op wat hij er zelf van vindt.
Aanleiding: op een avond in september kwamen er zeven akkoordvragen binnen, de meeste over interne fixes die zichzelf al met groene tests hadden bewezen. De vraag was niet hoe je minder vaak vraagt, maar wáár een vraag iets toevoegt.
Drie redenen om mee te kijken
Alle drie zijn af te lezen aan de handeling zelf. Wat daar niet onder valt, gaat rechtstreeks door.
Naar buitenHet raakt iemand anders: verstuurd, gedeeld, gepubliceerd of uitgerold.
Kost geldEr loopt een rekening mee: een betaalde API, een extra agentsessie, gehuurde rekenkracht.
OnomkeerbaarTerugdraaien kan niet, of alleen met werk: bestanden weg, geschiedenis herschreven, de machine veranderd.
Vier dingen zijn bewust uitgezonderd. Een bericht aan jezelf, want anders meldt elke afronding zichzelf aan. Een concept klaarzetten, want dat is vaak precies de opdracht. Schrijven in je eigen bestanden, want die staan onder versiebeheer. En alles wat alleen leest, want lezen raakt niemand.
De toets
Plak de handelingen van één agentrun, één per regel. Een shell-commando zet je er gewoon in. Een bestandswijziging noteer je als Edit pad en een tool op naam als tool gmail_send_message op een eigen regel. Eindigde een regel met een foutmelding, zet er dan # mislukt achter.
Een avond met veertien afrondingen
Een verzonnen maar herkenbare avond. Bij elke run staat of je er achteraf naar had willen kijken; dat oordeel is het ijkpunt, en het is een keuze, geen meting. Drie beleidsregels naast elkaar:
Zet per run de hook aan of uit om te zien waar B en C uit elkaar gaan.
Zeven keuzes die het verschil maken
Tussen een regeling die werkt en een die alleen lijkt te werken, zit het verschil in de details hieronder. Ze komen uit een werkende opstelling met gedispatchte agents, gebouwd op 17 september 2026.
1. Het criterium zit op de handeling.Laat je de agent zelf zeggen of zijn werk spannend was, dan zet hij die vlag bij het eerste ongemak uit. Een agent is de slechtste beoordelaar van zijn eigen werk. De enige plek waar handelingen objectief langskomen is de tool-laag: in Claude Code een PostToolUse-hook die bij elke tool-call de naam en de invoer meekrijgt.
2. Ook onschuldige handelingen krijgen een regel.Zonder die regels is «niets gezien» niet te onderscheiden van «de hook stond uit». Een leeg logboek betekent daarom «niet gekeken», en dat levert gewoon een akkoordvraag op. Een stille hookfout mag geen stille goedkeuring worden.
3. Een logboek dat alleen aangroeit.Per agent één bestand waar elke handeling een regel aan toevoegt, geen veld in een gedeeld record. Een record bijwerken is lezen, aanpassen en terugschrijven, en de hook vuurt bij parallelle tool-calls tegelijk. Dan raak je een regel kwijt, en hier zou dat een uitrol zijn die niemand meer ziet.
4. Ontdubbelen op reden.Vijf keer dezelfde uitrol is één ding om naar te kijken. De melding noemt de reden met een teller erbij, geen vijf regels.
5. Alleen de agents die je hebt uitgezet.De hook schrijft alleen als er in dat venster een lopende opdracht staat. Je eigen sessies blijven buiten schot: dit gaat over werk dat je uit handen gaf.
6. Alles tegelijk goedkeuren wel, alles tegelijk afkeuren niet.Vier kaarten in één keer goedkeuren scheelt tikken. Vier kaarten in één keer afkeuren betekent één reden voor vier verschillende klussen, en die past bij geen van de vier.
7. Achteraf is niet vooraf.Deze toets voorkomt niets: een verstuurde mail blijft verstuurd. Hij bepaalt alleen waar je achteraf naar kijkt. Tegenhouden is het werk van de toestemmingsvraag tijdens het werk, en die staat hier los van. Beantwoord je die op afstand, kies dan nooit «ja, en vraag het niet meer». Dat verandert je rechten voor de rest van de sessie.
Wat een lijst niet ziet
Een patroonlijst kijkt naar het commando, niet naar wat er daarna gebeurt. Een gemiste handeling wordt een stille goedkeuring, en daar zit het restrisico. Op vijf plekken is de lijst structureel blind. De kolom «toets» laat zien wat de toets hierboven er nu van maakt, met de schakelaars zoals ze staan.
Handeling
Toets
Gevolg
Uitweg
Zet je «tel blinde vlekken» aan, dan zijn de meeste van die gaten dicht. In de avond hierboven zie je wat dat kost: elk script vraagt dan om akkoord, ook npm run lint bij een gewone refactor. De structurele uitweg is niet de lijst verbreden, maar de scripts die naar buiten gaan zelf laten melden.
Vier fouten in de lijst zelf
Deze zaten in de eerste versie van de lijst waarop deze toets is gebaseerd, en zijn hier gedicht. In elke eigen lijst zijn ze het nalopen waard.