Build1 publisher3 min readPublished
Yadda 3's real artifact is not the code, it is the rules the agent could not rewrite
Stephen Cresswell rebuilt a 2012 test library in about a day with Claude Code. The transferable part is the commit discipline: a phased issue, formatting kept apart from behavior, tests off limits.
The Engineer · Build desk
Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction
What happened
- Stephen Cresswell published Yadda 3.0.0 on August 15th after using Claude Code to modernize the JavaScript testing library in roughly one day, then followed it with version 3.1.0 and support for executable specifications written as GitHub-flavored Markdown.
- GitHub's tags page lists both versions 3.0.0 and 3.1.0 on August 15th, the current package file identifies 3.1.0, and the later release added Markdown feature files allowing specifications to render alongside documentation while remaining executable.
- Cresswell says Claude Code, running Opus 4.8, wrote most of Yadda's modernization with few interventions from him; that account has not been independently audited, though the public repository documents the scale and sequence of the changes.
- The Yadda 3.0 tracking issue, opened on August 13th, divided the work into phases covering obsolete integrations, development tooling, formatting, source modernization, API exploration, examples, continuous integration, documentation and TypeScript definitions.
- Cresswell kept mechanical formatting separate from behavioral changes.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
Stephen Cresswell published Yadda 3.0.0 on August 15th after using Claude Code to modernize the JavaScript testing library in roughly one day, then shipped 3.1.0 with support for executable specifications written as GitHub-flavored Markdown [1]. The one-day number is the least useful fact in the release; the process constraints around it are the part another team can copy.
Start with the scaffolding. The Yadda 3.0 tracking issue was opened on August 13th and split the work into phases covering obsolete integrations, development tooling, formatting, source modernization, API exploration, examples, continuous integration, documentation and TypeScript definitions [4]. That is two days between the plan and the first tag [14]. The issue is doing work a prompt cannot: it fixes the order of operations before any code moves, so a phase can be reviewed, reverted or abandoned without dragging the rest of the rebuild with it.
Then the two rules that matter. Cresswell kept mechanical formatting separate from behavioral changes [5], and he did not let Claude change production code and its corresponding tests in the same step [6]. The reasoning behind the second rule is the sharp bit: an agent allowed to edit both can make a broken implementation look correct by adjusting the tests around it [7]. Yadda's existing suite, roughly 200 tests against just over 2,000 lines of source [11], instead functioned as an external definition of acceptable behavior [8] - about one test per ten lines of source [15], which is why it can carry that load. Formatting separation serves the same end. A diff that reflows every file is a diff nobody reads, and unreadable diffs are where behavior changes hide.
The scope was real. The modernization removed browser bundling and integrations for CasperJS, PhantomJS, Bower and Component; Yadda 3 requires Node.js 20 or newer, moves its own tests to node:test, adopts Biome and lefthook, updates the source to ES6, adds Playwright and Puppeteer examples, and ships TypeScript definitions [10]. Cresswell says Claude Code, running Opus 4.8, wrote most of it with few interventions from him; that account has not been independently audited, though the public repository documents the scale and sequence of the changes [3]. Note what the constraints do to that credibility problem: you do not have to trust the agent's output if the thing judging the output was written by a human in 2012 and left untouched during the run. Cresswell has maintained Yadda since 2012 according to the repository documentation [9].
This is a compact library, not a platform - zero runtime dependencies and roughly 410 GitHub stars at publication [11][12], plugged into runners like node:test, Mocha and Jasmine rather than shipping one of its own [13]. The regime scales better than the codebase does. Cresswell's broader argument is that agents can draft specifications from transcripts and requirements, leaving people to judge the language, after which the same artifact guides implementation, review and testing agents and runs in continuous integration [16].
Watch whether the separation holds when tests themselves need to change, which is the case the rule does not cover. Watch, too, whether the Markdown feature files added in 3.1.0 [2] get used as agent input rather than documentation, since that is the claim the release is meant to support.