Spec-driven development turns specs into executable code, not just documentation
S

Spec-driven development turns specs into executable code, not just documentation

Spec-driven development turns specs into executable code, not just documentation

116,790 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

From Spec to Code: Turn Your Documentation into Executable Tests

You know the drill. You write a detailed API spec, pass it around for review, and then your team spends days translating it into code and tests. But what if your spec was the test? No more copy-pasting, no more drift between documentation and implementation.

That’s the idea behind spec-driven development. And now there’s a tool that makes it real: spec-kit.

What It Does

Spec-kit is a GitHub repository that lets you write machine-readable specifications (like OpenAPI or custom YAML) and automatically generate running code or test frameworks from them. Think of it as a compiler for your design docs.

Under the hood, it takes your spec files and spits out:

  • Stub server code (so you can prototype fast)
  • Client libraries (so integrations work out of the box)
  • Test harnesses (so you can verify compliance without manual work)

It’s not a new language or a framework. It’s a pipeline that treats specs as the single source of truth.

Why It’s Cool

The clever part is how it handles ambiguity. Most spec tools assume your docs are perfect. Spec-kit lets you tag parts of your spec as “required” or “optional” and will automatically flag mismatches. If someone adds a field to the spec but forgets to update the test, you get a warning at generation time.

Another neat feature: it supports multiple output formats. You can generate a Node.js stub today and a Python client tomorrow, all from the same spec file. No rewriting.

Use cases? Great for:

  • Teams using OpenAPI for REST APIs who want to move faster
  • Microservice projects where each service needs a consistent test suite
  • SDK generation where docs and code must stay in sync

The repo itself is well organized, with clear examples in the examples/ folder. The README links to a demo that runs in your browser, so you can try before you download.

How to Try It

The easiest path is the hosted demo on the repo’s README. But if you want to run it locally:

git clone https://github.com/github/spec-kit.git
cd spec-kit
npm install # or yarn
npx spec-kit generate --spec ./examples/petstore.yaml --output ./generated

Check the generated/ folder for your stub code and test suite. The --help flag lists all options (output format, language targets, etc.).

No complex setup. Just a spec file and one command.

Final Thoughts

Spec-kit won’t replace your code review process or magically fix design debates

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Jun 19, 2026