Yadda 3 ble modernisert av Claude Code på rundt én dag
Publiserte Stephen Cresswell Yadda 3.0.0 etter å ha latt Claude Code med Opus 4.8 gjøre det meste av moderniseringen på rundt én dags kalendertid.
Yadda er et BDD-bibliotek for JavaScript som, i likhet med Cucumber, kobler spesifikasjoner skrevet i vanlig språk til kjørbar kode, men med langt løsere krav til hvordan spesifikasjonene formuleres. Versjon 3 er først og fremst en opprydning: biblioteket er nå Node-only, browser-bundling og utdaterte integrasjoner som CasperJS, PhantomJS, Bower og Component er fjernet, testsuiten er flyttet til node:test, Biome og lefthook er tatt inn, kilden er skrevet om til ES6, og pakken leveres med TypeScript-definisjoner. Npm-registeret viser at forrige utgivelse før denne runden, 2.2.0, kom i desember 2021.
Arbeidsmåten er det interessante. Cresswell skriver at epicen for Yadda 3 var skrevet av Claude selv, og delt i bevisst adskilte faser: fjern utdatert funksjonalitet, oppdater verktøykjeden, gjør mekanisk formatering separat fra atferdsendringer, moderniser kilden, utforsk API-endringer, oppdater eksempler og CI, og til slutt metadata, dokumentasjon og typedefinisjoner. Hver fase ble planlagt før den ble implementert.
To forutsetninger bar arbeidet. Yadda hadde allerede en omfattende testsuite, og Cresswell nektet bevisst å la agenten endre produksjonskode og tilhørende tester i samme steg.
«Hvis en agent endrer begge samtidig, blir en grønn testsuite svakere bevis, fordi den står fritt til å endre definisjonen av riktig samtidig med implementasjonen» — Stephen Cresswell
Cresswell mener KI også snur regnestykket for BDD selv. Den dyre delen har vært å produsere og vedlikeholde spesifikasjonen, og den kostnaden faller når et referat eller en diskusjon kan gjøres om til et utkast nesten gratis. Da blir den kjørbare spesifikasjonen en kontrakt: implementasjonsagenten leser hva som kreves, testagenten leser hva som skal valideres, og CI verifiserer den kontinuerlig. Versjon 3.1.0 støtter dessuten spesifikasjoner skrevet som GitHub-flavoured Markdown, så de kan ligge sammen med resten av dokumentasjonen.
Hva bør du gjøre?
- Skill produksjonskode fra tester i hvert eneste steg du gir en kodeagent, slik at en grønn testsuite fortsatt er uavhengig bevis.
- Planlegg fase for fase og la agenten implementere én fase av gangen, med mekanisk formatering som eget steg adskilt fra atferdsendringer.
- Vurder kjørbare spesifikasjoner som agentkontekst hvis du allerede har en wiki som beskriver hva systemet skal gjøre, men ingenting som beviser at det faktisk gjør det.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.