现在AI编程工具越来越普及,看起来门槛很低,但在真实项目中并不好用。需求一旦复杂,单靠对话描述很容易产生理解偏差,最后得到的代码和预期相差甚远,甚至根本没法直接用。
这种「凭感觉式编程」本身就缺乏稳定性,我们更形象地把它称为「抽卡式编程」。也正因为结果难以复现、过程不可控,OpenSpec、Spec-Kit和BMAD等规范驱动开发工具逐渐受到关注。在这些模式下,规范不再是写完就放一边的文档,而是直接用来约束实现、驱动代码产出的工具。
本文将深入分析这些开发工具的技术特点和实战表现,帮助你在不同场景下选择最合适的方案。在正式展开之前,我们先简单回顾一下规范驱动开发的基本概念。
规范驱动开发(Specification-Driven Development, SDD)是一种以规范为核心的开发方法。它的核心理念是把规范从传统的指导性文档升级为可执行工件,直接参与代码生成、测试验证等开发环节
在SDD模式下,规范成为单一可信源(Single Source of Truth),贯穿整个开发生命周期。开发流程从传统的「编码-文档」模式转变为「规范-实现」模式,确保生成的代码严格符合既定标准。
核心价值:
总的来说,规范驱动开发和AI辅助编程很搭:只要规则清晰,AI就能更稳定、更高效地发挥。接下来,我们将详细介绍这三款主流的规范驱动工具,并从技术特点和选型角度进行对比分析。
Spec-Kit是GitHub推出的开源规范驱动开发工具包,主要目的是为AI辅助编程提供结构化的开发流程。它兼容GitHub Copilot、Claude Code、Gemini CLI等主流AI编码工具,通过标准化命令引导开发过程。
和多智能体框架不同,Spec-Kit采用工具无关的设计,开发者始终掌握流程的主动权,AI只是作为执行工具参与实现。这样的设计让Spec-Kit成为规范驱动开发的入门级工具,尤其适合新项目或新团队快速搭建规范体系。
Spec-Kit的核心流程大致如下:
/specify命令生成完整项目规范,包括功能需求和技术约束/plan命令制定详细的技术实施方案整个流程依赖斜杠命令驱动,操作简单一致,同时保证开发者始终对流程保持掌控。
Spec-Kit适合以下情况:
总的来说,Spec-Kit特别适合已经在用AI编码工具,但希望提升开发质量和一致性的开发者。同时,GitHub官方的持续支持也保证了工具的长期维护和更新。
传送门:从零理解 GitHub Spec Kit:开发者必看的入门指南
OpenSpec是一款轻量级的规范驱动开发工具,专门针对现有代码库的维护和演进设计。它的核心理念是在编码前锁定开发意图,让输出结果更可预测,也更容易审查。
和其他规范驱动工具不同,OpenSpec采用以变更为中心的设计,通过文件夹分离机制管理规范的当前状态和变更提案,避免把新项目的开发方式硬套到已有代码库里。
OpenSpec使用清晰的文件夹分离架构:
openspec/specs/:存放当前生效的规范文件,是系统的单一可信来源openspec/changes/:管理变更提案,记录具体修改内容和实施计划这种设计让变更可追踪、易管理。每个变更都会包含提案文档、任务清单和规范差异,完成后通过归档机制更新主规范。
整个工作流程遵循「提案 → 实施 → 归档」三步循环,保证变更管理既简单又可追溯。
OpenSpec适合以下情况:
简单来说,对于大多数在维护现有代码库的开发者来说,OpenSpec提供了一条低侵入、可控的规范驱动开发路径,几乎不需要对现有流程做大幅调整。
传送门:从规范到代码:OpenSpec驱动的可迭代AI开发实践
BMAD-Method是一个面向企业级项目的智能体敏捷开发框架,采用多智能体协作模式,模拟完整软件开发团队的角色分工和协作流程。
和其他规范驱动工具不同,BMAD不只是一个工具包,而是一个完整的多智能体系统,能够应对复杂项目需求,甚至涵盖传统软件开发之外的场景。
BMAD基于多智能体协作技术,通过不同的AI代理来模拟传统开发团队的各类角色:
各智能体通过标准化接口传递信息、交接任务,形成完整的开发流水线。这样的架构让BMAD在处理大型、复杂的企业级项目时更加高效,也更可控。
BMAD主要适合需求复杂的项目:
简单来说,如果你的项目不仅需要规范管理,还希望有一个完整的项目管理体系,从需求分析到部署上线都能得到智能化支持,BMAD就很适合。
使用BMAD时,需要注意几个成本因素:
所以,BMAD 更适合确实需要其强大功能的大型项目。对于小型项目来说,投入产出比可能不够划算。
传送门:从零理解 BMAD-METHOD:一套可落地的AI敏捷开发工程方法
| 初始化成本 | |||
| 适用项目类型 | |||
| 技术复杂度 | |||
| 工作流程 | |||
| 控制模式 | |||
| 资源开销 |
对于从零开始的新项目,主要在Spec-Kit和BMAD之间选择:
如果是维护或演进已有代码库:
对于大型企业级项目:
结合实际工程经验,可以参考以下优先级来选择工具:
如果主要工作是维护现有代码库,OpenSpec是最实用的选择。它轻量、以变更为中心的设计与日常开发需求高度契合,投入产出比很高。
启动新项目或组建新团队时,Spec-Kit能帮助快速搭建结构化的规范体系。加上GitHub官方支持,也让工具的长期稳定性更有保障。
对于企业级复杂项目,且团队有充足资源学习和维护,BMAD是合适的选择。它功能强大,但同时也带来了更高的复杂性和成本。
规范驱动开发之所以受到关注,很大程度上是因为它让开发过程变得更有章法、更可控。相比过去更多依赖零散经验和临时判断,现在的开发流程开始被系统地梳理出来,团队也在不断摸索,如何更高效、更稳定地使用这些工具。
以规范为中心的结构化流程,让开发不再靠反复试错,而是变得更可控、更高效。这不只是工具或流程的升级,更是开发方式上的一次转变。
在规范驱动的环境里,开发者的关注点也在发生变化:
在这种模式下,规范文档不再是写完就放一边的材料,而是逐渐承担起类似「源代码」的角色,成为贯穿整个开发流程的核心资产。
在大多数情况下,我们习惯凭直觉做事,但结果往往很难预测。放到开发场景里,这种做法就变成了非结构化的「凭感觉编程」,也是当前AI辅助开发中最棘手的问题之一。
规范驱动开发的价值在于,它通过明确的标准和流程,把这些不确定性收敛起来。规范本身就像一份操作指南,让AI和人都知道该怎么做、做到什么程度,从而让整个开发过程变得更可控。
我们选择规范驱动开发工具,一定要结合项目实际情况和团队能力来决定:
关键是要避免过度设计,选择与项目复杂度匹配的工具,确保投入产出比的合理性。
我们可以看到,规范驱动开发并不能解决所有问题,也不可能一劳永逸。但相比完全依赖提示词和直觉,它至少让AI编程变得更可控一些。
通过合理选择和使用OpenSpec、Spec-Kit、BMAD这些工具,你可以在不牺牲AI编程效率的前提下,把需求、实现和结果管住,代码质量和项目稳定性也会随之提升。
至于我们要不要用、用到什么程度,还是要看项目复杂度和团队情况。但在当前这种越来越依赖AI写代码的环境下,我认为这可能是一条值得尝试、也比较稳妥的工程思路。
既然看到这里了,如果觉得有启发,随手点个赞、推荐、转发三连吧,你的支持是我持续分享干货的动力。