Spec-driven development
Spec-driven development 指在实现之前先把持久意图写下来,并让这份意图持续参与规划、构建、检查和修改工作。它要解决的核心问题不是语法错误,而是 agent 在“看起来做对了”的情况下,仍然沿着错误目标产生局部正确结果。
- 这个概念的第一性目标是减少 agent 在执行时的自由度。很多 agent 失误并不是不会写代码,而是在没有稳定决策边界时,选择了最像正确答案的近似路径。
- 它强调的是
durable intent,也就是把关键决策从一次性 prompt 或短暂会话历史里拿出来,变成后续 session、subagent 或 reviewer 都能反复引用的持久约束。 - 从结构上看,这个概念反对把“spec”当成一个大杂烩。更稳的划分是:spec 负责约束目标和边界,plan 负责约束方法,task 负责约束顺序,tests / lint / schema / framework 负责约束行为,tooling 负责约束执行环境。
- 这使它和 Context engineering 直接相连。后者关注“什么该进入当前上下文”,而 spec-driven development 提供的是一层上下文外、跨会话、可重读的高信号意图层。
- 它也和 Agent scaffold 紧密相关,因为 spec 往往会决定 scaffold 在 session 开头暴露哪些规则、验收标准、运行命令和修改边界。
- 协议工程是这个概念最常被引用的历史参照:高质量规范的价值不在于覆盖所有实现细节,而在于给长期演化中的多种实现提供一个稳定接口。
- 好的 spec 通常是声明式的、分层的、低维护成本的。声明式能帮助 agent 对齐意图,分层能避免产品需求和技术方案相互渗漏,低维护成本则防止整个过程退化成文档仪式。
- 这个概念并不要求把所有规则都写成自然语言。凡是能机械强制执行的约束,原则上都应该从 spec 下沉到 tests、hook、lint、schema 或框架中,把文字约束换成真正可执行的边界。
- 在工作流层,这个概念既可以体现在变更附近的需求/设计/任务文件里,也可以体现在仓库内长期保留的决策记录里;关键不是放在哪里,而是它能否在真正行动前缩小搜索空间。
- 《我们如何使用 Codex 在 28 天内构建 Android 版 Sora》给了一个很贴近工程一线的例子:先让 Codex 总结系统,再共同产出一个“微型设计文档”,并在任务过长时把计划存成文件供不同实例继续执行。这正是把短时对话意图外化成可持续约束。
- 对 agentic coding 来说,它和
verification-first互补:spec-driven development 主要约束“要做什么、不要做什么”,而验证闭环负责证明“现在这样做出来是否真的成立”。
ℹ️ Conflict:
- spec-driven development 并不自动降低复杂度。把模糊代码前移成模糊 spec,只会把歧义从实现阶段搬到文档阶段。
- 如果 spec 写得足够细,它会逼近代码本身;如果又抽象过头,它会变成新的维护层。这正是 Dijkstra 批评和模型驱动开发历史都提醒过的问题。
- 它不是所有任务的默认最优做法。随着模型更强,很多小改动、快速原型和探索式设计更适合先对话、先试做、再局部收敛,而不是一开始就铺开完整 spec。
- spec 也不能替代测试、验收和人工判断。缺少验证时,系统仍然可能沿着一份“写得不错的 spec”做出看起来整齐、但实际上无效的实现。
- The Spec Layer
- Agentic engineering
- Context engineering
- Agent scaffold
- Best Practices for Claude Code
- Just Talk To It - the no-bs Way of Agentic Engineering
- Your job is to deliver code you have proven to work
- 我们如何使用 Codex 在 28 天内构建 Android 版 Sora
- Codex
- Matt Rickard, “The Spec Layer”, 2026-03-31.
- 原文摘录:[llm-wiki/raw/02_AI编程/The Spec Layer](/raw/02_AI编程/The Spec Layer.md)
- Anthropic, “Best Practices for Claude Code”.
- 原文摘录:[llm-wiki/raw/anthropic/Best Practices for Claude Code](/raw/anthropic/Best Practices for Claude Code.md)
- Peter Steinberger, “Just Talk To It - the no-bs Way of Agentic Engineering”, 2025-10-14.
- 原文摘录:[llm-wiki/raw/peter blog/Just Talk To It - the no-bs Way of Agentic Engineering](/raw/peter blog/Just Talk To It - the no-bs Way of Agentic Engineering.md)
- Simon Willison, “Your job is to deliver code you have proven to work”, 2025-12-18.
- 原文摘录:[llm-wiki/raw/01_AI/Your job is to deliver code you have proven to work](/raw/01_AI/Your job is to deliver code you have proven to work.md)
- OpenAI, “我们如何使用 Codex 在 28 天内构建 Android 版 Sora”, 2025-12-12: https://openai.com/zh-Hans-CN/index/shipping-sora-for-android-with-codex/
- 原文摘录:[llm-wiki/raw/openai/我们如何使用 Codex 在 28 天内构建 Android 版 Sora](/raw/openai/我们如何使用 Codex 在 28 天内构建 Android 版 Sora.md)