Skip to content
FoxBot Industries

FoxBot Industries

explore & discover tech, science, and AI!

Menu
  • Blog
  • Videos
  • Publications
  • Curriculum
    • Consulting
    • Professional Development
  • About Us
    • Educational Philosophy
    • Press
    • Testimonials
  • Contact
Menu

Spec-Driven Development (SDD): Using AI to write functional code

Posted on September 22, 2025January 11, 2026 by jenfoxbot

What is SDD?

Spec-Driven Development (SDD) is a form of AI prompting for software development. Instead of starting with code and documenting later, SDD starts with documentation and then generates code. In this technique, the documentation uses one or more files called specifications (“specs”) that define basic criteria for a desired outcome, such as:

  • What the system should do (features, behaviors, user stories)
  • How it should behave (acceptance criteria, edge cases, instrumentation)
  • Why it matters (user goals, experience outcomes)

The specs become the source of truth for both humans and AI agents, guiding code generation, testing, and validation throughout the software development lifecycle. This means a human only needs to review specs and completed code, they do not need to be part of the code generation process.

Why SDD Matters

Software developers who delegate tasks to AI agents increasingly rely on specs to articulate intent and validate outcomes. SDD is a learned behavior, shaped by tools like Claude, GitHub Copilot, and internal frameworks. It’s not always intuitive, especially when design and architecture documents aren’t always the engineer’s domain, but it’s becoming essential as AI becomes a core collaborator in creating software.

There are two main ways to leverage SDD:

  • High-trust developers use specs to guide AI agents toward outcomes and then “peace out” until code generation is done.
  • Low-trust developers use specs to break down and scrutinize tasks and code generated by the AI.

Specs serve as both anchors for collaboration and contracts for automation.

The SDD Process

SDD typically has four stages:

  1. Specify: Define the software product or feature in natural language, including personas, user stories, and success criteria.
  2. Plan: Translate the spec into technical contexts, research tasks, and architectural constraints.
  3. Tasks: Break down the plan into categorized tasks (setup, core, tests, polish).
  4. Code & Validate: Use AI agents to generate code, run tests, and validate against the spec.

How is this different than prompt engineering?

SDD vs. Prompt Engineering

Aspect SDD Prompt Engineering
Goal Structured, testable specs guiding the software development lifecycle Precise prompts for LLM outputs
Focus System-level planning, automation Task-level interaction with LLMs
Output Living documents (contracts) Immediate responses (text, code, etc.)

SDD is all about system-level planning and automation, while Prompt Engineering focuses on crafting inputs for specific outputs from language models.

Methodology & Workflow

  • SDD: Write specs (user stories, constraints, validation), generate code via agents, validate outputs, track progress.
  • Prompt Engineering: Design effective prompts, iterate on structure and tone, refine outputs using specialized tools.

Cognitive Model

  • SDD: Treats LLMs as collaborators executing against a spec.
  • Prompt Engineering: Treats LLMs as tools responding to instructions.

Use Cases

  • SDD: Building products, features, or agentic systems, coordinating multi-agent workflows, ensuring traceability and testability.
  • Prompt Engineering: Rapid prototyping, exploratory analysis, enhancing LLM reliability.

Hybrid Approaches

Advanced teams blend both SDD and prompt engineering:

  • Use prompt engineering to bootstrap specs.
  • Feed specs back into prompts for better grounding.
  • Create feedback loops where LLMs validate and refine their own outputs.

Tools like Kiro IDE or Lovable bridge the gap, analyzing requirements in “spec mode” before generating code.

Summary Table

Feature Spec-Driven Development Prompt Engineering
Scope System-level Task-level
Artifacts Specs, plans, tests Prompts, completions
Validation Automated tests, metrics Human-in-the-loop
Tools GitHub Spec Kit, Kiro, SDD frameworks Copilot Playground, T-Prompt, Prompt Report

How does SDD compare with traditional product design processes?

One common method for defining and delivering a new product or feature is to use a Product Requirements Document (PRD). PRDs are foundational artifacts in product development that outlines what a product should do, why it matters, and what features or capabilities must be included in a release.

These documents are a shared reference for teams—product, engineering, design, and QA—ensuring alignment on goals, user needs, and success criteria. By clearly defining the “why” and “what” (but not the “how”), a PRD helps teams build the right solutions efficiently and avoid miscommunication or scope creep.

SDD vs. Traditional Product Requirements Documents (PRDs)

Dimension PRD (Product/Design) SDD (Engineering/QA)
Audience Product/design Engineering/QA
Focus Experience outcomes Executable behavior
Detail Lightweight Deep, testable
Validation Usability/playtesting Automated tests
Change Management Flexible Guardrails, traceability
Outcome Shared understanding Living, testable contract

SDD complements PRDs by offering stronger technical rigor and automation, while PRDs remain more accessible for non-technical stakeholders.

Example

GitHub open-sourced a spec kit that provides an overview and samples for getting started with SDD. Click this link or use the direct URL: https://github.com/github/spec-kit

There are 4 samples in the kit:

  1. Spec template: this is for specifying details about the technical and functional implementation of the product, such as how the system flow works, what pieces it has (backend, frontend, etc.), user scenarios and testing requirements, and acceptance criteria.
  2. Plan template: this outlines technical choices (e.g. programming languages and versions, dependencies, target platforms, performance goals, etc.), defines the product structure and source code formats, and defines the overall research, testing, and task planning approach.
  3. Tasks template: this spec is where the Spec and Plan documents get converted into specific, technical tasks that result in code generation, testing, and validation.
  4. Agent Tile template: this spec defines what AI technologies (e.g. LLMs, coding platforms, etc.) are use, how they are used, and what commands/actions they can perform.

Final Thoughts

Spec-Driven Development is rapidly gaining traction as a robust, automation-friendly approach to software creation. By centering the process around detailed, testable specs, SDD enables human developers to use AI tools with clarity, rigor, and traceability. While PRDs and prompt engineering remain valuable, SDD offers a source of truth, or a “living contract” that drives quality, reliability, and repeatability in modern development workflows.

 

 

Hackster IO
Instructables
© 2026 FoxBot Industries | Powered by Superbs Personal Blog theme