u/johns10davenport

Specification: the most overloaded term in software development

Andrew Ng just launched a course on spec-driven development. Kiro, spec-kit, Tessl - everybody's building around specs now. Nobody defines what they mean by "spec."

The word means at least 13 different things in software. An RFC is a spec. A Kubernetes YAML has a literal field called "spec." An RSpec file is a spec. A CLAUDE.md is a spec. A PRD is a spec.

When someone says "write a spec before you prompt," what do they actually mean?

I've been doing SDD for a while and it took me way too long to figure this out. Most SDD approaches use markdown documents - structured requirements, architecture notes, implementation plans. Basically a detailed prompt. They tell the agent what to do. They don't verify it did it correctly.

BDD specs do both. The same artifact that defines the requirement also verifies the implementation. The spec IS the test. It passes or it doesn't.

If you want the agent to verify its own work, you want executable specs. That's the piece most SDD tooling skips.

What does "spec" actually mean in your setup?

reddit.com
u/johns10davenport — 4 days ago