当我们给AI一个模糊的指令,比如“给我的应用增加照片分享功能”,AI只能猜测成千上万个实现细节,而这些猜测大多不符合我们的真实意图。这导致AI生成的代码虽然看起来能用,但无法直接运行。
与先写代码后写文档的传统模式相反,SDD要求先编写一份详尽的、可执行的“规范”(Specification)。这份规范将成为所有开发者和AI工具共同遵循的“单一事实来源”,从而弥合意图与实现之间的鸿沟,产出更清晰、安全和可靠的代码。
基于GitHub最新开源工具包 SpecKit 的深度解析
当我们给AI一个模糊的指令,比如“给我的应用增加照片分享功能”,AI只能猜测成千上万个实现细节,而这些猜测大多不符合我们的真实意图。这导致AI生成的代码虽然看起来能用,但无法直接运行。
与先写代码后写文档的传统模式相反,SDD要求先编写一份详尽的、可执行的“规范”(Specification)。这份规范将成为所有开发者和AI工具共同遵循的“单一事实来源”,从而弥合意图与实现之间的鸿沟,产出更清晰、安全和可靠的代码。
在亚马逊发布了首个专注于SDD的框架Kira之后,GitHub推出了新的竞争者——SpecKit。
SpecKit是一个开源工具包,旨在将随意的AI指令转化为结构化、可验证的开发流程。 它包含命令行工具(CLI)、项目模板和引导性提示,能与GitHub Copilot、Claude Code、Gemini CLI等主流AI编码工具无缝协作。
它的核心理念是将“意图”作为事实的来源,规范文档取代代码成为权威产物,AI模型会持续回溯规范以获取指导。
SpecKit将开发过程分解为四个“门控阶段”,每个阶段在进入下一阶段前都有一个验证点,确保开发者对过程拥有精细的控制权。
目标: 定义“做什么”和“为什么做”。您需要描述项目目标、用户旅程和预期成果。AI将基于此生成一份详细、可演进的规范文档。
目标: 定义技术栈和架构约束。您告诉AI具体的技术要求,它会构建一份遵循这些约束的技术计划。
目标: 将宏大的计划分解为可执行的小任务。AI会将规范和计划拆分成一系列可管理、可测试的单元,以便逐一实现。
目标: AI逐个处理任务。开发者可以审查每个微小的变更,而不是一次性面对庞大的代码块,从而更好地引导AI的实现路径。
视频通过一个实例展示了SpecKit的完整流程:
specify
加上项目名称和AI代理(如GitHub Copilot)来启动项目。SpecKit会自动创建所需的模板和脚本文件。spec.md
文件,包含用户故事、验收标准、边缘情况,甚至提出需要澄清的问题。tasks.md
,每个任务都有唯一的编号,非常有条理。implement 1-4
来让AI逐批执行任务。视频中提到,当前模板倾向于测试驱动开发(TDD),即先写测试再写功能代码。经过几轮迭代,成功构建了一个功能完善的宝可梦团队编辑器。界面使用了指定的 Shadcn UI 元素,API调用正常,项目结构清晰,代码质量高。
视频作者提到,AI能够自动生成详尽的用户故事、功能需求和边缘情况分析,这极大地节省了开发者的时间,因为“我懒得为模型写出所有这些细节”。
尽管SpecKit提供了一个强大的框架,但最终代码质量仍受所选AI模型的影响。视频作者在测试中发现,使用Grok模型得到的结果优于使用GPT-4.1。因此,为特定任务选择合适的编码模型是必要的。
SpecKit这类工具通过将开发流程结构化,极大地提升了AI生成代码的可靠性和准确性,让AI从一个“猜心”的搜索引擎,转变为一个能够精确执行指令的“结对程序员”。这预示着一个我们将会越来越常见到的软件开发新范式。