Prompt 1: 你是个软件工程专家,也是个AI工程师。请在英文互联网检索研究相关信息:那请综述一下 OpenSpec 到底实践了哪些传统的工程方法,为什么。
Prompt 2: 请结合下其他 AI 研究的结果,相互辩论、核实、融合,形成最后的结论,更详细一些辩论下 OpenSpec 的独创性和兼容性、以及这么做的巧妙之处,以及 AI Ready 的原因,人和 AI 对齐开发,以及更多改进建议。OpenSpec 本质上是把一套“传统工程方法”做成了可落地的文件结构 + 工作流(特别适配 AI coding)...
近期在 AI 辅助编程领域(尤其是与 Claude Code、Cursor、Devin 等结合时),一种被称为 “Vibe Coding”(随性编程/按直觉编程) 的反模式开始泛滥:开发者通过非结构化的自然语言与大模型对话,需求散落在冗长的聊天记录中,导致上下文丢失、AI 出现“幻觉”以及代码库逐渐失控。
正如提案中所言,OpenSpec 绝不仅仅是一个简单的 Spec(规范)定义,它实际上是一个**精心设计的混合体(Hybrid Framework)**。它的核心本质,是用传统且成熟的软件工程方法论,去“规训”和管理 LLM 的不可预测性。本文将从 AI 工程的视角,深度辩论、核实并剖析 OpenSpec 背后的工程哲学。
OpenSpec 本质上是把一套“传统工程方法”做成了可落地的 文件结构 + 工作流。它主要实践并融合了以下经典方法:
Given/When/Then,使其可验证、可转验收测试。它不是纯 BDD 框架,但借用了其可验收的表达方式。MUST/SHALL/SHOULD/MAY 强度关键词,提升需求表达的可执行性与边界清晰度。ADDED/MODIFIED/REMOVED,而不是重写整份规范。design.md 专门承载技术方案(HOW),与 spec(WHAT)解耦。tasks.md 作为明确的实现清单(checkbox),是典型的 WBS 落地形式。在 AI 工程界,对这类框架存在争议:传统派认为它只是老概念的生搬硬套;而前沿派认为这是一次认知革命。
融合结论:独创性在于“工程范式的 Prompt 化”。
传统的 SDD、BDD 是写给 人 看的,解决的是“跨团队沟通和人类记忆衰退”;而 OpenSpec 的独创性在于它的 高阶兼容性——它建立了一种人类开发者与 AI Agent 都能理解的 “中间层协议(Boundary Object)”。它将理念层面的工程方法,物理化为了机器可解析的文件结构。它证明了:管理 LLM 不确定性的最好方法,不是无休止地调优 Prompt,而是复用经过几十年工业界验证的软件工程约束。
结合前沿 AI 研究(长文本衰减、ReAct 框架、幻觉率测试),OpenSpec 的做法极其精妙地契合了 LLM 的神经网络特性:
WHAT(Spec) -> HOW(Design) -> 分解(Tasks) -> 写代码(Code) 的路线,在工程层面实现了完美的 Plan-and-Solve(先计划后解决) 范式。RFC 2119 和 Given/When/Then,在数学本质上是利用严密的逻辑结构词,大幅缩小了下一个 Token 生成的概率分布空间,将“创造性写作”降维成“受控逻辑生成”。在 OpenSpec 框架下,开发过程实质上变成了一场人机契约的签核(Sign-off)过程:
proposal.md 和 spec.md,将隐性知识转化为显性的行为契约,解决“AI 不知道你要什么”的问题。tasks.md 时,人类是在 Review AI 的“思维过程”。任务拆解错了,可以在不改一行代码前纠正方向。MUST 边界,人机拥有了共同的“判分标准”,让 Vibe Coding 正式升级为 Contract-Driven Coding(契约驱动编程)。尽管 OpenSpec 已经极好地适配了当前阶段的 AI 编码助手,但结合最新的 Agent 研究,它仍有以下进化空间:
目前 Given/When/Then 仍是 Markdown 文本。结合自动化测试生成(Verification-Driven Development),确立 Spec 后,第一步应强制 AI 将 BDD 文本转化为 Cypress/Jest 测试脚本。然后进行 AI的测试驱动开发(TDD for AI),直到跑通测试,形成绝对闭环。
目前变更依赖人类将文件归拢。未来系统应结合代码知识图谱(Code Graph RAG),当确立了 design.md 后,自动检索受影响的隐式依赖文件,动态打包成精准沙盒提供给 AI。
打破“人类审阅 + 单一 AI 执行”的模式。在 OpenSpec 不同阶段分配不同 AI:Spec Agent 负责沟通需求,Architect Agent 负责设计方案,Coder Agent 负责编码,Reviewer Agent 负责对照 RFC 2119 标准严格审查 MUST 条款的执行情况。
大量遗留项目没有 Spec。可以引入“逆向工程工作流”:AI 读取现有祖传代码,反向生成符合 OpenSpec 标准的 project.md 和全局 specs,从而将不具备 AI Ready 条件的旧项目转化为可被纳管的状态。