Spec-driven development

Schrijf een spec voordat je een AI-codeeragent aanstuurt

GitHub's Spec Kit is een open-sourceproject van GitHub zelf. Deze gids is onafhankelijk en niet verbonden aan of goedgekeurd door GitHub.

De meeste frustratie met AI-codeeragents komt voort uit dezelfde oorzaak: een vaag verzoek levert een vaag resultaat op, en je merkt pas wat je eigenlijk wilde als je code leest die er niet bij past. Een spec herstelt de volgorde. Voordat je één prompt verstuurt, schrijf je drie korte dingen in gewone taal op: wat het ding moet doen, voor wie het is en welke concrete checks laten zien dat het af is. Daarvoor hoef je niet te kunnen programmeren. GitHub's Spec Kit, een open-sourcetoolkit die wordt onderhouden in de eigen repository van GitHub, bouwt rond precies deze gewoonte een gestructureerd, herhaalbaar proces voor codeeragents, met een eigen opdrachtregeltool en een benoemde reeks stappen van de leidende principes van een project tot een werkende build. Deze gids behandelt de spec in drie delen die je in vijf minuten met de hand schrijft, hoe de workflow van Spec Kit hetzelfde idee uitsplitst in aparte commando's, en wanneer het de moeite waard is om de volledige toolkit te installeren in plaats van zelf de spec te schrijven.

Een spec is een korte brief in gewone taal die je schrijft voordat je een codeeragent iets laat bouwen: wat het doet, voor wie het is en de klaar-wanneer-checks die bewijzen dat het af is. GitHub's Spec Kit, een open-sourcetoolkit uit de eigen repository van GitHub, maakt van die gewoonte een herhaalbare workflow met eigen commando's om principes vast te leggen, de spec te schrijven, te plannen, het plan in taken op te delen, te implementeren en te convergeren. In de documentatie staan de agents waarmee het koppelt, waaronder Claude Code van Anthropic en GitHub Copilot. Je hebt de toolkit niet nodig om er baat bij te hebben: dezelfde brief in drie delen als eerste bericht typen werkt met elke codeeragent die je al gebruikt.

Gepubliceerd

Gratis les · geen account nodigMaak kennis met ClaudeWaarom Claude?6 minStart de gratis les

Belangrijkste punten

  • Een spec bestaat uit drie dingen die je vóór de eerste prompt opschrijft: wat de agent moet bouwen, voor wie het is en de klaar-wanneer-checks die bewijzen dat het af is.
  • GitHub's Spec Kit is een gratis, open-sourcetoolkit, volgens de eigen repository onder de MIT-licentie, die deze gewoonte omzet in zes benoemde commando's: een constitution, een spec, een plan, een takenlijst, implementatie en tot slot convergentie.
  • Je hebt Spec Kit niet nodig om baat te hebben bij een spec. Dezelfde brief in drie delen als eerste bericht typen werkt in Claude Code, Codex van OpenAI, Copilot, Cursor van Anysphere of een andere codeeragent.
  • De eigen installatiedocumentatie van Spec Kit noemt de codeeragents waarmee het koppelt via een integratiesleutel, waaronder Claude Code en GitHub Copilot, met een route om andere toe te voegen.
  • Het overslaan van de klaar-wanneer-checks is de gebruikelijkste manier waarop een spec ongemerkt faalt: zonder die checks kunnen jij en de agent niet vaststellen of de taak echt af is.

Kopiëren en plakken

Prompts die je vandaag kunt gebruiken

Een spec in drie delen om je eerste chat mee te openen

Hier is de spec voor wat ik wil dat je bouwt. WAT HET DOET: een script dat de bestanden in mijn map Downloads op bestandstype sorteert in submappen met een datum. VOOR WIE: alleen voor mij, met de hand gestart vanuit de terminal, geen andere gebruikers. KLAAR ALS: het script op een testmap met 20 voorbeeldbestanden elk bestand in de juiste submap zet, er niets buiten die map wordt aangeraakt en ik de hele run met één commando ongedaan kan maken. Stel me eerst alle vragen die je nodig hebt voordat je begint met bouwen.

Plak dit als allereerste bericht, nog vóór je heen en weer praat over hoe het moet werken.

Een agent een vaag idee laten omzetten in een spec

Ik wil iets bouwen, maar mijn idee is nog vaag. Dit is ongeveer wat ik voor me zie: beschrijf hier in een of twee zinnen je ruwe idee. Schrijf nog geen code, maar stel me vragen totdat je in drie korte delen aan mij kunt teruggeven wat het doet, voor wie het is en hoe we allebei weten dat het af is. Begin pas met bouwen als ik alle drie de delen uitdrukkelijk heb bevestigd.

Handig als je de vorm van het probleem kent, maar de details nog niet hebt vastgelegd.

De klaar-wanneer-checks nalopen voordat je een build goedkeurt

Voordat je begint met implementeren: som de concrete checks op die je uitvoert om te bewijzen dat dit af is. Wat ga je testen, wat is per check het verwachte resultaat en wat telt als mislukt? Als een check iets vraagt wat je zelf niet kunt verifiëren vanuit deze sessie, zeg dat dan nu in plaats van aan te nemen dat het later wel werkt.

Een goede agent kan hier uitgebreid antwoord op geven voordat er ook maar één regel code is geschreven.

De kerngewoonte

Waarom een spec vóór de prompt komt

Een verzoek direct in een codeeragent typen voelt sneller dan eerst iets opschrijven, en bij een echt triviale taak is dat vaak ook zo. Het probleem begint bij alles wat meer dan één redelijke uitleg heeft: de agent kiest er een, bouwt daarnaartoe, en jij merkt pas dat het de verkeerde was als je de afgeronde code leest. Elke extra ronde daarna kost meer dan de paar minuten die een spec had gekost.

Een spec draait de volgorde om. Voordat er code wordt geschreven, schrijf je drie dingen in gewone taal op: wat het ding moet doen, voor wie het is en de klaar-wanneer-checks die bewijzen dat het werkt. Het is geen technisch document. Het lijkt meer op het briefje dat je zou achterlaten voor een capabele assistent die je nog nooit heeft ontmoet: genoeg detail zodat die niet hoeft te gokken bij de onderdelen die ertoe doen.

Het werkt om een eenvoudige reden. De agent vult de gaten in je verzoek niet meer aan met eigen aannames, omdat er minder gaten overblijven. En jij ontdekt niet meer achteraf, door de uitvoer van de agent te lezen, wat je eigenlijk wilde, want je had het al opgeschreven voordat je iets vroeg.

Dit is niet aan één tool gebonden. Claude Code, Codex, Copilot, Cursor en elke andere codeeragent werken in principe hetzelfde: instructies in gewone taal erin, code en commando's eruit. Een spec verandert wat erin gaat, en daarmee wat eruit komt, met welke agent je ook praat.

De spec in drie delen

Wat er in een spec staat die je in vijf minuten schrijft

Vier korte onderdelen, in gewone taal. Niets hiervan vraagt dat je kunt programmeren.

Wat het doet

Een of twee zinnen over het gedrag, niet over de uitvoering. "Sorteert bestanden op type in mappen met een datum", geen beschrijving van welke functies of bibliotheken je moet gebruiken.

Voor wie het is

Alleen voor jou, met de hand gestart? Voor een collega die het project nog nooit heeft gezien? Dat antwoord verandert wat er echt gebouwd moet worden, vaak meer dan de beschrijving van de functie.

Klaar-wanneer-checks

De concrete, toetsbare voorwaarden die bewijzen dat de build af is. Dit is het deel dat de meeste mensen overslaan, en het deel dat het zwaarst weegt als er iets misgaat.

Randvoorwaarden

Optioneel, maar de moeite waard als er echt iets op het spel staat: wat de agent nooit mag doen, zoals bestanden buiten één map aanraken of iets automatisch versturen.

Een open-sourcestructuur hiervoor

Hoe GitHub's Spec Kit van een spec een workflow maakt

GitHub's Spec Kit is een open-sourcetoolkit, onderhouden in de eigen repository van GitHub onder de MIT-licentie, gebouwd om AI-codeeragents gestructureerde processen, herbruikbare sjablonen en vastgelegde uitkomsten te geven in plaats van losse gesprekken. Het installeert via een eigen opdrachtregeltool, en de README beschrijft het als een toolkit om aan de slag te gaan met spec-driven development, of met elk ander gestructureerd proces dat je een agent wilt laten volgen.

De kern van de spec-driven workflow loopt volgens de documentatie van het project langs een benoemde reeks van zes commando's: een legt de leidende principes van een project vast, een schrijft de spec zelf, een zet die spec om in een technisch plan, een splitst het plan in een geordende takenlijst, een voert de taken uit en schrijft de eigenlijke code, en een laatste controleert hoe dicht het resultaat bij de spec is gekomen. Het project raadt zelf aan deze een voor een uit te voeren, elk resultaat te bekijken voordat je verdergaat, en de stappen implementeren en convergeren te herhalen tot de convergentiestap meldt dat het werk geconvergeerd is, in plaats van de hele klus in één keer aan de agent over te laten.

De toolkit levert ook losse extensies die je bovenop de kernworkflow toevoegt, opnieuw volgens de eigen documentatie: een set commando's rond het beoordelen en oplossen van een specifieke bug, en een andere rond het doorlopen van onderzoek en definitie van een ruw idee voordat je besluit of je het wel gaat bouwen.

Over de agents waarmee het koppelt noemt de installatiedocumentatie van Spec Kit er een aantal via een integratiesleutel die je bij de installatie meegeeft, waaronder Claude Code en GitHub Copilot, en verwijst het naar aparte documentatie om verdere agents te koppelen. Beschouw elke lijst met specifieke agents, ook deze, als een momentopname: controleer de actuele documentatie van Spec Kit voordat je aanneemt dat een bepaalde tool vandaag wel of niet wordt ondersteund.

De workflow, commando voor commando

De zes kerncommando's van Spec Kit

Volgens de README van het project loopt de spec-driven workflow in deze zes stappen, in volgorde, waarbij de laatste twee worden herhaald tot het resultaat convergeert.

De constitution vastleggen

Een commando dat principes voor het hele project vastlegt waar de agent zich bij alles wat volgt aan moet houden, eenmaal geschreven en hergebruikt in later werk.

De spec schrijven

Een commando dat het eigenlijke specdocument maakt: dezelfde brief in gewone taal als hierboven, nu vastgelegd als herbruikbaar bestand in plaats van als eenmalig bericht.

De aanpak plannen

Een commando dat de spec omzet in een technisch plan en een aanpak kiest voordat er code wordt geschreven, zodat een ontwerpkeuze niet verstopt zit in de implementatie.

In taken opdelen

Een commando dat het plan splitst in een concrete, geordende lijst taken, elk klein genoeg om los te controleren.

Implementeren

Een commando dat de takenlijst uitvoert en de code schrijft, met alles uit de eerdere stappen als leidraad in plaats van opnieuw te beginnen.

Convergeren

Een commando dat nagaat hoe dicht het resultaat bij de spec ligt. Volgens de eigen richtlijn van het project herhaal je implementeren en convergeren samen tot de convergentiestap meldt dat het werk geconvergeerd is.

Zonder iets te installeren

Een spec met de hand schrijven, zonder toolkit

Voor iemand zonder programmeerachtergrond die één klein ding bouwt, kan de volledige Spec Kit-workflow meer plechtigheid zijn dan de taak vraagt. De spec in drie delen, als allereerste bericht getypt aan de agent die je al gebruikt, doet op zichzelf al het meeste werk, zonder dat je iets hoeft te installeren.

Plak de spec en laat de agent je verhelderende vragen stellen voordat die iets schrijft. Een capabele agent vraagt door als iets onduidelijk is, en een spec geeft die agent iets concreets om over te vragen in plaats van stilzwijgend te gokken en met veel zelfvertrouwen het verkeerde te bouwen.

Deze eenvoudige vorm van de gewoonte is overal bruikbaar. Dezelfde brief in drie delen werkt of je nu met Claude Code, Codex, Copilot, Cursor of een andere codeeragent praat, omdat niets ervan afhangt van een functie die bij één tool hoort. Het is een gewoonte die je opbouwt, geen plug-in die je installeert.

Waar het misgaat

De fouten die een spec tenietdoen

Een spec helpt minder dan zou kunnen als een van deze dingen binnensluipt.

Geen klaar-wanneer-checks

Een spec zonder manier om te controleren of het af is, verschuift het gokken van de prompt naar de review, waar het moeilijker te vangen is.

Implementatiedetails erdoorheen

Een programmeertaal of een specifiek algoritme vastleggen voordat duidelijk is of de functie er wel moet komen, maakt van een spec voorbarig ontwerp.

Achteraf schrijven

Een spec die is opgesteld om bij bestaande code te passen, legt alleen vast wat er gebouwd is. Ze kan geen probleem vangen waarmee ze is geschreven om overeen te stemmen.

Eén spec, veel taken

Een spec die meer dan één echte taak beslaat, begraaft de taak die er werkelijk toe doet. Houd elke spec bij één enkel, controleerbaar stuk werk.

Wanneer je de toolkit pakt

Gewone spec of de volledige Spec Kit: kiezen

Voor één kleine build is een gewone spec in drie delen, rechtstreeks in de chat getypt, genoeg, en het gaat sneller dan iets installeren. De meeste voorbeelden in deze gids zijn precies voor dat geval geschreven.

Spec Kit begint de installatie terug te verdienen als je dit op hetzelfde project blijft herhalen, de principes automatisch wilt laten afdwingen bij elke nieuwe functie, of de structuur van de extensies voor bugfixes en ideebeoordeling wilt gebruiken in plaats van elke keer je eigen versie te verzinnen.

In beide gevallen is de eigenlijke vaardigheid dezelfde: vastleggen wat het doet, voor wie het is en hoe je weet dat het af is, voordat er ook maar één regel code wordt geschreven. De toolkit automatiseert alleen het consequent opschrijven daarvan, zodra de gewoonte zo vaak terugkomt dat automatiseren de moeite loont.

Oefen met een spec schrijven voordat je bouwt

Een heldere spec schrijven en een AI-codeeragent vaste projectinstructies geven is een vaardigheid die overdraagbaar is naar elke tool in deze gids. De gratis les van Nightschool AI over het instructiebestand van een project loopt daar stap voor stap doorheen, met Claude Code als voorbeeld.

Veelgestelde vragen

Wat is een spec precies, in deze context?

Een korte brief in gewone taal die je schrijft voordat je een codeeragent iets laat bouwen. Minimaal beschrijft hij wat het ding moet doen, voor wie het is en de klaar-wanneer-checks die bewijzen dat het af is. Het is geen technisch document en je hoeft niet te kunnen programmeren.

Moet ik kunnen programmeren om er een te schrijven?

Nee. Een spec beschrijft gedrag en uitkomsten in gewone taal, geen implementatie. Beschrijven wat een tool moet doen en hoe je weet dat het werkt vraagt geen programmeerkennis, ook al schrijft de agent die het bouwt echte code.

Wat is GitHub's Spec Kit?

Een open-sourcetoolkit onder de MIT-licentie, onderhouden in de eigen repository van GitHub. Het geeft AI-codeeragents een gestructureerd, herhaalbaar proces rond spec-driven development, met een eigen opdrachtregeltool en een benoemde reeks van zes commando's van de leidende principes van een project tot implementatie en convergentie.

Met welke codeeragents werkt Spec Kit?

Volgens de eigen installatiedocumentatie koppel je een agent bij de installatie met een integratiesleutel. De documentatie noemt zo een aantal agents, waaronder Claude Code en GitHub Copilot, en verwijst naar eigen documentatie om andere te koppelen. Controleer de actuele documentatie van Spec Kit voor de volledige, bijgewerkte lijst voordat je aanneemt dat een bepaalde tool wordt ondersteund.

Is deze gids verbonden aan GitHub?

Nee. Dit is een onafhankelijke educatieve gids, niet uitgegeven of goedgekeurd door GitHub. Spec Kit en GitHub zijn een eigen project en handelsmerk van GitHub en worden hier alleen genoemd om ze juist te beschrijven.

Wat is het verschil tussen een spec en gewoon een langere prompt?

Een langere prompt is nog steeds één bericht dat een taak beschrijft. Een spec is een gestructureerde brief met drie vaste delen, wat het doet, voor wie het is en klaar-wanneer-checks, bedoeld om te worden gelezen, bevestigd en hergebruikt, en niet om één keer te worden getypt en vergeten.

Wat zijn "klaar-wanneer"-checks precies?

Toetsbare voorwaarden die bewijzen dat een build af is: wat je controleert, het verwachte resultaat per check en wat als mislukt telt. Zonder die checks is er geen afgesproken manier om vast te stellen of de agent de taak echt heeft afgerond of gewoon is gestopt.

Moet ik Spec Kit installeren om baat te hebben bij deze gewoonte?

Nee. Dezelfde spec in drie delen als eerste bericht typen aan een codeeragent, Claude Code, Codex, Copilot, Cursor of een andere, levert het grootste deel van het voordeel op zonder dat je iets installeert. Spec Kit is een herhaalbare structuur om dit vaak te doen, geen vereiste om het te doen.

Is Spec Kit gratis te gebruiken?

Ja. Het is een open-sourceproject onder de MIT-licentie, volgens de eigen repository, en installeert via een eigen gratis opdrachtregeltool.

Wat levert het spec-commando van Spec Kit precies op?

Volgens de eigen documentatie van het project levert het het specdocument zelf op, dezelfde brief in gewone taal die in deze gids wordt beschreven, opgeslagen als herbruikbaar bestand in je project in plaats van elke keer opnieuw in een chat getypt.

Maak van een spec je eerste AI-agent

Leg vast wat het doet, voor wie het is en hoe je weet dat het af is, en bouw dan.

Nightschool AI is een onafhankelijk leerplatform en is niet gelieerd aan, onderschreven door of gesponsord door Anthropic. Claude is een handelsmerk van Anthropic, PBC. Op zoek naar de officiële Claude Academy van Anthropic? Die vind je op academy.claude.com.