Skip to content

Spec 驱动开发

Spec 驱动开发(Spec Driven Development)是一种软件开发实践,强调在编写任何实现代码之前,必须先进行详细的需求细化和规格定义^[001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md]。该方法将软件开发的起点从“直接编码”转移到“定义规格”,旨在解决需求模糊导致的方向偏离和返工问题。

在 AI 编码代理(AI Agents)的工作流中,Spec 驱动开发被视为核心基础技能,用于防止 AI 模型在需求不明确时就生成大量未经审视的代码^[001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md]。

核心目标

Spec 驱动开发的主要目的是纠正“拿到需求就写代码”的草率习惯^[001-TODO__Agent_Skills_-结构化AI编码工作流框架.md]。通过强制要求先进行澄清和定义,它确保开发人员和 AI 代理对目标的理解是一致的,从而避免在错误的假设上构建功能^[001-TODO__Agent_Skills-_结构化AI编码工作流框架.md]。

在工作流中的位置

在结构化的 AI 编码框架中,Spec 驱动开发位于生命周期的最前端,通常是 /spec 命令阶段的产出物^[001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md]。它构成了后续所有活动(规划、构建、测试、审查)的基础:

  1. 定义:通过 Spec 驱动开发将模糊的想法转化为清晰的规格^[001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md]。
  2. 规划:基于明确的 Spec 进行任务拆解(/plan)^[001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md]。
  3. 实现与验证:依据 Spec 进行增量构建(/build)和测试驱动开发(/test)^[001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md]。

实施原则

有效的 Spec 驱动开发通常包含以下关键步骤:

  • 需求细化:将初步的想法或用户故事转化为具体的技术规格。
  • 澄清模糊点:主动识别并解决描述中的歧义,确保“做什么”和“不做什么”都有明确的界定。
  • 文档化:产出结构化的文档(通常是 Markdown 格式),作为后续开发的唯一真实来源。

相关概念

  • TDD:测试驱动开发关注代码的正确性,而 Spec 驱动开发关注需求的正确性。两者常结合使用,构成“先定义,后验证”的完整闭环。
  • Agent Skills:Spec 驱动开发是 Agent Skills 框架中推荐“始终开启”的核心技能之一。
  • [[Software Requirements Specification]]

Sources

  • 001-TODO__Agent_Skills_-_结构化AI编码工作流框架.md