SDD三技能闭环:AI编码从规格到验证的完整工具链

AI编码的效率瓶颈早已从“写代码”转向“需求对齐”。当开发者用Copilot或Cursor生成数千行代码后,却发现与业务目标南辕北辙——这正是Spec驱动开发(SDD)试图根治的顽疾。邵猛在X平台上分享的SDD实践方案,将这一抽象方法论具象化为三个可安装、可移植的Skills,并配套五步闭环流程,让AI Agent从“猜测需求”变为“按规格执行”。

核心创新在于两层规格分层:PRODUCT.md承载用户故事与不变量(invariant),TECH.md定义架构与实现策略。两者均置于specs/<issue>/目录下,随PR提交。这种设计避免了传统“一句话需求”导致的歧义——前端团队常因UI细节缺失返工,后端团队则因接口约定不明陷入联调困局。SDD通过将规格与代码版本化绑定,使AI Agent的每一次修改都有据可查。

五步流程形成完整闭环:写产品规格→写技术规格→Agent按规格实现→一致性校验→计算机操作端到端验证。前三步已是常见实践,但第五步的“计算机操作验证”是真正的杀手锏。针对Rust桌面应用这类难以通过纯单元测试覆盖UI交互的场景,Agent可自动模拟鼠标点击、窗口切换等操作,比对实际界面与规格中的行为约束。这等同于为桌面团队提供了“自动化验收测试”,且无需手动编写测试脚本——全部由Skills封装的Agent代劳。相比Selenium等传统UI自动化工具,SDD的验证粒度更贴近业务规范(如“不变量:用户注销后会话token应失效”),而非仅仅是DOM元素定位。

三个Skills的名称直接映射闭环节点:/write-product-spec(生成PRODUCT.md)、/write-tech-spec(生成TECH.md)、/validate-changes-match-specs(一致性校验与操作验证)。它们不绑定Warp终端,可移植到任何支持Shell或API调用的环境。开源仓库warpdotdev/common-skills通过npx skills add warpdotdev/common-skills即可安装,降低了采用门槛。

对AI编码团队而言,SDD的直接价值在于减少“无效代码生成”。当前主流的Chat-based Coding(如ChatGPT+IDE插件)缺乏需求形式化约束,导致Agent反复迭代却偏离核心。SDD通过强制输入规格、输出验证,将AI的试错成本转移至文档阶段。尤其对于桌面应用、嵌入式系统等难以频繁回滚的领域,第五步的UI验证能力可提前捕获80%以上由视觉或交互逻辑引发的缺陷。

量化建议:若团队正从“AI辅助编码”转向“AI主导开发”,建议优先在需求稳定、UI复杂度高的模块试点SDD。例如Rust的GUI框架(如egui、fltk-rs)或Electron/Webview应用,可结合/validate-changes-match-specs的计算机操作能力,将验收周期从小时级压缩至分钟级。长远来看,SDD指向一种“规范即代码”的AI协作模式:人类负责定义不变量和边界,Agent负责在约束空间内高效搜索实现——这或许是AI编码从“玩具”走向“工业级”的关键演化。