Spec
一种描述跨多个 Session 工作的交接产物——说明要构建什么,而不是每个 Session 如何完成自己的部分。它会随着工作推进而变化,由多个 Ticket 组成。
Spec 存在的原因是:Session 可以随时丢弃,大型工作却不能。任何需要投入超过一个上下文窗口的工作,都需要在上下文之外有一个归宿——位于 Agent 环境中、清空后仍然存在的地方,无论是仓库里的文件、GitHub issue,还是 Agent 能访问的任务跟踪系统。Spec 就是这个归宿:其中包含目标、约束、截至目前作出的决策,以及带状态的 Ticket 列表。任何新 Session 都能阅读它,了解工作进展,而不必继承上一个 Session 累积的噪声。
Spec 有一些容易辨认的形式,大多沿袭自团队现有的记录方式。产品需求文档(PRD)偏重面向用户的“做什么”和“为什么”——功能、行为、验收标准。设计文档或 RFC 偏重技术——选定的方案、被否决的备选方案和取舍。规模较小时,一份带有 Ticket 检查清单的普通 plan.md,也能为跨 Session 功能承担同样职责。形式没有角色重要:对 Agent 来说,这些都是同一种东西——它在每个 Session 开始时读取的、可持久保存的意图说明。
用法:
“这些应该全放在一个 Session 里做吗?”
“不,写成一份 Spec——拆成多个 Ticket,每个 Ticket 在独立 Session 中运行。试图在一个上下文里完成全部工作,还没做到一半就会进入低效区间。”