Spec Coding 调研
什么是spec coding Spec coding 是一种通过 AI 生成代码和方案的开发方式,它通过先定义"做什么",再决定"怎么做"的方式,帮助开发者聚焦在业务逻辑和架构设计上,而将重复性的编码工作交给 AI 完成。 对比 vibe coding 不同 从研发周期上看,拆解为不同的阶段或者角色,每个阶段都有对应的输入和输出要求 每个角色阶段之间没有状态,不进行上下文持久化和传递 每个阶段都有对应的规范文档,并按照特定的名称持久化在特定的工程目录中 每个阶段记录过程,人工都可以被动或主动进行澄清 文档不是静态的,需要动态变化,不断对齐现实,保持和现实的一致性 优点 通过文档建立持久化的知识库,每个独立任务保持无状态,避免上下文混乱和信息丢失。 文档代表事实真相,与代码保持一致性。文档不是静态的,而是动态变化,不断对齐现实,确保文档和实际代码的同步。 开发者可以专注于"做什么"(业务逻辑和架构设计),而将重复性的编码工作交给 AI 完成,提高开发效率。 通过明确的规范定义,AI 能够准确理解开发意图,生成高质量、可预测的代码,大大减少开发时间和沟通成本。 从研发周期上拆解为不同的阶段或角色(constitution → specify → plan → tasks → implement),每个阶段都有对应的输入和输出要求,流程清晰可控。 每个阶段都记录过程,人工可以被动或主动进行澄清和调整,保持对开发过程的控制。 总结:让 AI 辅助开发变得更加可控、可靠和高效,彻底解决了 AI 编程助手"不可控"的痛点。 spec-kit https://github.com/github/spec-kit spec-kit 介绍 spec-kit 是由 GitHub 开发的规范驱动开发(Spec-Driven Development, SDD)工具,旨在帮助开发团队专注于产品场景而非重复编码,从而构建高质量的软件。它通过先定义"做什么",再决定"怎么做"的方式,让 AI 更好地理解和执行开发任务。 spec-kit 工作流程 graph TD Start([开始项目]) --> Constitution[1. Constitution<br/>定义项目宪法] Constitution --> |核心原则<br/>技术约束<br/>协作规则| Specify[2. Specify<br/>创建项目规范] Specify --> |功能描述<br/>用户场景<br/>业务规则| Clarify{3. Clarify<br/>需要澄清?} Clarify --> |是| ClarifyProcess[澄清模糊点<br/>解决不确定性] ClarifyProcess --> Plan Clarify --> |否| Plan[4. Plan<br/>制定技术方案] Plan --> |架构设计<br/>技术选型<br/>数据模型| Tasks[5. Tasks<br/>任务分解] Tasks --> |可执行任务列表| Analyze{6. Analyze<br/>需要分析?} Analyze --> |是| AnalyzeProcess[一致性分析<br/>验证完整性] AnalyzeProcess --> Implement Analyze --> |否| Implement[7. Implement<br/>任务实施] Implement --> SelectTask[选择任务] SelectTask --> Understand[理解需求] Understand --> WriteCode[编写代码] WriteCode --> WriteTest[编写测试] WriteTest --> CodeReview[代码审查] CodeReview --> Acceptance[验收确认] Acceptance --> MoreTasks{还有任务?} MoreTasks --> |是| SelectTask MoreTasks --> |否| End([项目完成]) style Constitution fill:#e1f5ff style Specify fill:#e1f5ff style Clarify fill:#fff4e1 style Plan fill:#e1f5ff style Tasks fill:#e1f5ff style Analyze fill:#fff4e1 style Implement fill:#e8f5e9 style Start fill:#f3e5f5 style End fill:#f3e5f5 classDef optional fill:#fff4e1,stroke:#ff9800,stroke-width:2px,stroke-dasharray: 5 5 class Clarify,ClarifyProcess,Analyze,AnalyzeProcess optional spec-kit 的开发流程分为五个主要阶段: ...