Spec驱动开发三技能闭环:从规约到UI验证的AI编码实战

当AI编码工具逐渐从“补全代码”走向“理解业务逻辑”,如何让大模型输出真正对齐产品意图成为行业核心痛点。邵猛提出的Spec驱动开发(SDD)方法,通过三个结构化Skills将“规约→实现→验证”闭环标准化,并在开源仓库warpdotdev/common-skills中提供可安装方案。这一实践将AI Agent从被动辅助升级为主动遵循规格的协作者,尤其对桌面应用开发(如Rust + Tauri)具有直接参考价值。

SDD的核心是两层规格文件:PRODUCT.md聚焦用户故事与不变约束(例如“悬停时3秒内弹出提示”),TECH.md定义架构选型与实现策略(如“使用Observer模式管理状态变更”)。两类文件均存放于specs/<issue>/目录,随PR提交,确保每次代码变更都有对应规格追溯。整个流程分为五步:

  1. 写产品规格:通过Skill /write-product-spec自动生成基于用户需求的PRODUCT.md;
  2. 写技术规格:利用/write-tech-spec将产品规格转化为技术实现文档;
  3. Agent按规格实现:编码Agent读取TECH.md后生成对应代码;
  4. 一致性校验:借助/validate-changes-match-specs对比代码与规格的不变量;
  5. 计算机操作端到端验证:在隔离环境中通过UI自动化工具(如Playwright)验证行为是否符合用户故事。

第五步尤为关键——传统的AI编码验证多止于单元测试,而SDD引入的“计算机操作”环节,可在真实桌面应用窗口上模拟点击、输入、等待等行为,直接检验产品规格中定义的交互流程是否跑通。这一设计对Rust桌面应用团队是“降维打击”,因为Tauri等框架的界面测试长期缺乏轻量级端到端验证方案。

三个Skills不绑定Warp终端,具备高度可移植性——任何支持Skill插件的AI工具(如Continue.dev、Cursor)均可通过npx skills add warpdotdev/common-skills安装使用。Zach Lloyd在X平台上指出,这套方法将SDD从概念变成可下载的实操工具,“做AI coding的可以直接抄作业”。

从行业视角看,SDD的难点从来不在“写规格”,而在于保持规格与实现的持续一致。邵猛的方案通过两大机制破解这一痛点:一是将规格文件作为Agent的唯一输入源,限制模型“自由发挥”;二是引入验证闭环强制对齐,防止deviation积累。这恰好呼应了当前AI编码领域从“代码生成”向“全流程可控生成”的演进趋势。

对于正在寻找结构化AI开发工作流的团队,建议立即尝试以下步骤:1. 在项目中初始化两个规格文件模板;2. 针对一个中等复杂度功能完整跑一遍五步流程;3. 收集验证阶段的失败案例,反哺PRODUCT.md中的不变量定义。SDD的本质不是约束创造力,而是让AI的创造力始终在业务边界内安全迭代。