ARTICLE · 1284416
第二篇:需求不是一次性文档:AI 团队如何管理会变的规格
AI NATIVE · SDLC
需求一变,Agent 为什么还在照旧做?
规格不是一次性交付物,
它是可版本化的意图合同
spec · plan · tasks · tests · PR · converge
6 PARTS + ONE TEAM ASSET
PART 01
旧意图
如何继续跑
PART 02
规格合同
不是 PRD
PART 03
影响追踪
跨产物
PART 04
收敛检查
发现缺口
PART 05
何时不用
避免仪式
PART 06
变更单
可复制模板
先给结论
规格不是一份写完就存档的长文档。它应当是一个会跟随决定变化、能连接计划、任务、测试和发布证据的意图合同。
周二下午,产品补了一句话:“老客户不必再重新授权。”
对人来说,这像是一句小补充。对一个已经分配给三个 Agent 的功能来说,它可能同时改变了迁移脚本、鉴权逻辑、验收用例、灰度策略和客服话术。
最糟的情况并不是有人改错了一行代码。
最糟的情况是,每个人都在正确地执行自己手里的旧版本。
Agent 会忠实地沿着上下文向前走。它不知道 Slack 里的新结论,不会自动判断设计稿旁边的一句备注是否推翻了昨天的任务拆分。只要团队没把变化写成可追踪的产物,旧意图就会以极高效率继续扩散。

01PART规格不是 PRD 的新名字
这里说的规格,不是要求产品经理写一份更长的 PRD,也不是为了让仓库多一堆 Markdown。
它至少要回答四个可判定的问题:
用户或系统行为要变成什么样? 哪些边界不能被改变? 什么证据说明这次变更成功? 如果假设变化,哪些已完成工作需要重新判断?
这四件事合起来,才像一份“意图合同”。
合同的重点不在措辞漂亮,而在它可被不同角色使用:产品能检查是否仍符合目标;工程能据此选择实现;测试能构造反例;审查者能判断这次 PR 是否偏题;运行负责人能知道上线该观察什么。
GitHub Spec Kit 的当前流程把这种链条明确拆成 specify → plan → tasks → implement → converge。它的价值不在于命令本身,而是提醒我们:规格、实现计划和任务列表是不同层的产物,彼此发生冲突时需要被发现。
截至 2026-10-21,Spec Kit 的 converge 被设计为跨规格、计划、任务与当前代码做一致性检查;发现缺口时追加可追溯任务,再回到实现。它并不声称能自动证明业务价值,更不能替代对需求本身的判断。
02PART一次变化,至少经过五个地方
很多团队把“需求变更”理解成改一下标题或补一条验收标准。
AI 参与后,变化更像在一张网里传导。
业务决定 ↓规格:行为、例外、验收条件 ↓计划:方案、接口、迁移与风险 ↓任务:谁做什么、顺序和依赖 ↓实现与测试:代码、测试数据、回归用例 ↓PR / 发布:审查范围、灰度、监控与回滚“只改代码”通常是最后一步,不是第一步。
例如“老客户不必重新授权”可能意味着:
• 规格新增一个兼容性例外; • 计划要确认旧 token 的识别方式; • 任务要多一条数据迁移或回退策略; • 测试要补“旧客户、旧 token、新版本”的组合; • 发布要观测登录失败率和续期异常; • 客服或运营要知道这次没有触发重新授权是预期行为。
少了其中一个,仍可能写出“代码正确但交付错误”的结果。
03PART收敛不是自动宣布胜利
规格驱动工具常被误解成一种魔法:有了 spec.md、plan.md 和 tasks.md,Agent 就不会跑偏。
这不成立。
规格本身会模糊、会过时、会被业务决定推翻。工具只能帮助你把不一致露出来,不能替你选择要不要改变意图。
我更愿意把收敛理解成一个停下来问的问题:
现在的代码、未完成任务和验收证据,仍然在服务同一个决定吗?
如果答案是否定的,最好的动作通常不是让 Agent 继续补丁式修复,而是先写清楚“这次变了什么”。

04PART给变化一个编号,而不是一条口头消息
小团队最容易说:“这事很小,直接改吧。”
有时确实如此。文案、无行为影响的样式调整、孤立且可验证的修复,不需要启动一整套变更治理。
但只要变化会影响既有行为、接口、数据、权限、验收或发布判断,就值得留下一张极短的变更单。它不是流程负担,而是给人和 Agent 一个共同的重新对齐点。
下面这个 spec-change.md 模板够小,也足够开始使用:
# SC-2026-014:老客户续期兼容## 为什么现在改原决定:升级后所有用户重新授权。新决定:2025-12-31 前创建的有效客户保持原授权。## 意图与边界- 目标:减少老客户升级后的中断。- 不包含:不延长已过期的授权;不改变新客户流程。- 例外:企业 SSO 租户走现有迁移方案。## 影响清单- 规格:AUTH-12、AUTH-14- 计划:token 识别与迁移步骤- 任务:T-18、T-23;新增 T-31- 测试:旧 token / 新版本组合;SSO 回归- 发布:观察登录失败率、token 刷新失败率## 验收与决定- owner:产品负责人 + 安全负责人- 必须证据:迁移演练、回归结果、灰度看板- 回滚决定:兼容判断异常时关闭功能开关,不撤销已完成数据迁移- 生效日期与复核人:关键字段不是格式,而是 原决定、新决定、影响范围、验收增量、owner 和回滚决定。只要这六项在,Agent 的任务上下文就不会只剩一段过期聊天记录。
05PART别把所有工作都规格化
规格适用于高歧义、高影响、跨角色、持续时间长的变更。它不适合把每个拼写修正都变成一次委员会审议。
可以用一个简单判断:如果在实现前,两个合理的人可能对“完成后应该怎样”给出不同答案,那么它值得写明行为与反例。
如果边界明确、影响封闭、能靠一个快速检查验证,就直接做,别把速度浪费在形式上。
本篇的团队资产
`spec-change.md` 的 owner 是发起变更的产品负责人和受影响技术 owner;触发条件是行为、接口、数据、权限、验收或发布判断发生变化;证据是更新后的规格、计划、任务与回归结果;例外是无行为影响且可立即验证的小修复。
06PART结尾
Agent 没有让需求变化变少。
它只是让旧需求更容易被高速、并行、连续地执行下去。
所以真正需要升级的不是“写文档的习惯”,而是团队处理变化的方式:让每个新决定都能一路追到任务、测试、PR 和发布。
下一篇我们往更底层走一步。规格要放在哪里、谁来维护、怎样避免它和实际仓库一起过期?答案不在聊天记录里,在仓库这份会被人和 Agent 共同读取的协作记忆里。
下一篇:仓库不只是代码仓库,它是团队与 Agent 的协作记忆。
LIKE · WOW · SHARE
资料来源
GitHub Spec Kit:https://github.github.com/spec-kit/ · Agentic SDD 参考:https://github.github.com/spec-kit/reference/agentic-sdd.html · 既有项目中的规格演进:https://github.github.com/spec-kit/guides/evolving-specs.html · 事实核验时间:2026-10-21。















































































