Fetching from the wire…
Public story · 2026-08-16 · high
The maintainer argues cheap-to-write specs turn BDD into a contract between implementation, testing, and review agents.
Why now: Yadda 3.0.0 shipped on August 15, and the argument about specs becoming contracts is why it's worth reading past the changelog.
Claude Code rewrote a 12-year-old BDD testing library into a modern Node package in about a day, according to its maintainer.
That's the real test for teams betting on agents to maintain old code, not just write new features. A 12-year-old library, rewritten start to finish in a day, is one data point.
The maintainer shipped Yadda 3.0.0 on August 15, with Opus 4.8 writing most of the code. The release drops CasperJS and PhantomJS in favor of Playwright and Puppeteer support. The migration itself is mechanical: Node-only, ES6, TypeScript definitions, node:test in place of the old test runner, Biome for linting. A follow-up release, 3.1.0, added GitHub-flavored Markdown so specs can live directly in project docs.
The maintainer's real argument is about economics, not speed. Behavior-driven development always promised executable specs written in plain English, but writing them by hand cost enough that most teams skipped it. Once specs get cheap to write, the maintainer argues, they turn into contracts: a shared reference that implementation, testing, and review agents all read from. Natural language carries the domain understanding the agents need, and the executable steps keep the spec tied to real behavior.
Whether that argument holds outside one BDD library is the open question. Yadda is a small, single-maintainer project. The maintainer's post doesn't say whether the same day-long rewrite can work on a codebase with more history or more contributors.
Each link below shares sources, entities, or timing with this story.
Yadda built by Claude Code / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Yadda built by Claude Code); both cover August, Claude Code, GitHub, Opus; overlapping topics (agent, between, claude, code).
Yadda built by Claude Code / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Yadda built by Claude Code); both cover August, Claude Code, GitHub; overlapping topics (agent, august, claude, code, spec).
Yadda built by Claude Code / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Yadda built by Claude Code); both cover August, Claude Code, GitHub, TypeScript; overlapping topics (agent, august, code).
Linked by a graph relationship (Yadda built by Claude Code); both cover August, Claude Code, GitHub; overlapping topics (august, carry, claude, code, executable).
Yadda built by Claude Code / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Yadda built by Claude Code); both cover August, Claude Code, GitHub; overlapping topics (august, claude, code).
Linked by a graph relationship (Yadda built by Claude Code); both cover Claude Code, GitHub, Opus; overlapping topics (agent, claude, code).
Linked by a graph relationship (Yadda built by Claude Code); both cover Claude Code, GitHub, TypeScript; overlapping topics (agent, claude, code).
Yadda built by Claude Code / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Yadda built by Claude Code); both cover August, Claude Code, GitHub; overlapping topics (agent, august, code, spec).