--- title: What Is SDD collection: Spec Driven Development for AI Apps author: Anirudh Jwala updated: 2026-10-21 source: https://docs.chaicode.com/sdd/what --- # What Is SDD ## Spec-Driven **Development** Spec-Driven **Development** Define what correct means before writing code. Define the intended behavior before implementation Use that specification to guide development and verification Depending on the workflow, the spec may guide a single change or evolve alongside the software ## Four Questions Every Spec **Answers** A good spec answers Four Questions Every Spec **Answers** What are we building? How should it behave? What must never happen? How will we verify it? ## A Conversation Carries Context. A Spec **Preserves Decisions**. Prompt vs Spec A Conversation Carries Context. A Spec **Preserves Decisions**. A conversation carries context. A spec preserves decisions. Decisions scattered across messages → Requirements in one place Context tied to conversations → Reusable across sessions Changes through follow-up prompts → Changes recorded explicitly Requirements may be implicit → Requirements are reviewable ## SDD does not replace prompting Key idea SDD does not replace prompting It makes important decisions **explicit**, **reviewable** and **reusable**. ## Four artifacts, four **questions**. Artifacts and their jobs Four artifacts, four **questions**. Proposal: Why are we changing this? Spec: What behavior must the system provide? Design: How will we implement it? Tasks: What needs to be done? ## Your decisions belong in the **repo** Your decisions belong in the **repo** Keep important decisions alongside your code. Review them, version them, and verify the result.