Chapter 0 · Sprint Zero · Lesson 0.3

Spec-Driven Development & the Toolkit Trio

Write down what you want before the agent writes code - and see how Spec Kit, OpenSpec, and agent-skills each bring that discipline to your agent.

What spec-driven development is

The tempting way to use a coding agent is to type a wish and hope: "build me a login page." That's vibe coding - fast, fine for throwaways, and unreliable for anything real, because the agent quietly fills every gap you left with its own guesses.

Spec-driven development (SDD) flips this. You first write a short, structured spec - what you're building, why, and how you'll know it's done - and the agent generates code from that spec. The core idea:

Treat the specification as the source of truth, with code as the generated output that serves the spec - rather than the other way around. GitHub Spec Kit

Most SDD tools use the same gated chain, each step reviewed before the next:

SPECIFY  →  PLAN  →  TASKS  →  IMPLEMENT
  (what)   (how)   (steps)   (code)

Why bother? A vague request forces the model to guess, and guesses compound into wrong code. Nailing the decisions up front is the single cheapest quality lever there is - one write-up puts it at roughly a 33× improvement from planning alone versus one-shot prompting, per My Experiments With AI. The rule of thumb: vibe-code for prototypes, spec-drive for anything you'll keep. OpenSpec's README says the same in one line: "Generating code is now cheap. Correctness is still expensive."

The trio - three ways to bring SDD to your agent

You asked about Spec Kit, OpenSpec, and agent-skills. Good news: all three are genuinely spec-driven - they're not rival agents, they're three ways to add the SDD discipline to whatever agent you already use. The real difference is packaging and weight:

The three, in one line each
 Spec KitOpenSpecagent-skills
What it isGitHub's SDD toolkit (agent-neutral)Fission AI's lightweight SDD frameworkSDD packaged as a drop-in skill
Unit of worka feature: constitution → specify → plan → tasks → implement"the change" - a delta: propose → apply → archivea spec doc: specify → plan → tasks → implement
Weight & setupHeavier, rigid phase gates; Python/uv, ~30-min setupLightweight, actions not gates; no Python, ~5-min setupMinimal - just load the skill, no separate CLI
Best atBig, long-lived, greenfield projects wanting full ceremonyExisting (brownfield) codebases; reverse-engineers baseline specsHarnesses that already load skills (e.g. Claude Code)
How you run itspecify CLI installs slash commands into 30+ agentsopenspec CLI adds /opsx:* commands to 20+ agentsThe harness invokes the skill - nothing else to install
Reach for it whenYou want a thorough, repeatable, structured processYou want fast, iterative SDD on a codebase that already existsYou're in a skill-capable agent and want SDD without new tooling

The honest summary: all three make "spec = source of truth" their purpose - the split is packaging. Spec Kit is the heavyweight, phase-gated toolkit; OpenSpec is the lightweight, change-based toolkit built for existing code; agent-skills is the same discipline clipped straight into a harness you already run. Per OpenSpec's own comparison, the headline contrast is Spec Kit's thoroughness vs OpenSpec's 5-minute, no-Python lightness.

All three are ways to shape the harness so the agent works from clear intent instead of guessing. That habit of turning intent - and failure - into durable structure is the ratchet, which opens Chapter 1.

Check yourself

The central idea of spec-driven development is that -

In SDD the spec is the durable source of truth and code is generated output that serves it - the reverse of writing code first and documenting later.

Spec Kit, OpenSpec, and agent-skills are all -

All three are spec-driven development approaches, not rival agents. They differ in packaging: two standalone toolkits (Spec Kit, OpenSpec) and one drop-in skill (agent-skills).

OpenSpec's distinctive unit of work is -

OpenSpec centres on "the change" - a bounded, reviewable delta (propose → apply → archive) - and is built brownfield-first, unlike Spec Kit's heavier feature-level phase gates.

Do this now (5 min)

Pick a small thing you'd ask an AI to build. Before prompting, write a five-line spec:

Objective: [what + why, one sentence]
In scope:  [what to build]
Out of scope: [what NOT to touch]
Done when: [a testable condition]
Constraints: [language, style, anything fixed]

Notice how much guessing you just removed. That five-line habit is 80% of the benefit of every tool in the table - before you install any of them.

I'm your teacher - ask freely. Want a walkthrough of installing Spec Kit or OpenSpec, or the full six-section spec template from the agent-skills skill? Just ask - and this closes Sprint Zero, so tell me if any of 0.1-0.3 felt too dense to simplify.

Go deeper

Primary sources: GitHub Spec Kit (the most-adopted, structured SDD toolkit) and OpenSpec (the lightweight, change-based alternative). Skim both READMEs side by side to feel the heavy-vs-light contrast.

Wisdom: r/ChatGPTCoding - active, cross-tool debate on spec-driven vs vibe workflows.