先设计再构建
AI 智能体实现速度快,但容易忽视设计的退化。解决方法是:在代码存在之前就先商定决策,这样每个 PR 因为已经获得批准而与预期一致,评审起来就很快。你需要起草每个阶段;用户负责评审和批准。
1. 确定工作规模并选择阶段
| 工作规模 | 阶段 |
|---|---|
| 中等功能、包含在内部的重构 | 程序设计 → 切片 |
| 大型功能、跨切面的重构 | 架构 → 程序设计 → 切片 |
| 新项目、多仓库或问题不够清晰 | 产品 → 架构 → 程序设计 → 切片 |
用一行说明你选择了哪个规模以及原因。用户可以增删阶段。
2. 先收集上下文
在起草任何内容之前:阅读 docs/README.md 及其指向的活文档、docs/designs/ 中所有公开的设计、相关代码和该区域的历史。对于工具或方案的选择,应进行调研(文档、基准测试、已知问题),并给出具体的选项及来源。不要基于假设进行设计。
3. 逐步执行每个阶段
创建设计文件 docs/designs/YYYY-MM-DD-<slug>.md,并基于 template.md(如果仓库还没有 docs/ 布局,则先根据全局规则建立该布局)。对于每个阶段,读取该阶段对应的阶段文件(位于本技能的文件夹内),在设计文件中起草该阶段的内容,然后停止:
product.md:问题、用户、行为、不在范围内architecture.md:组件、合约、数据模型、约束program-design.md:类型、签名、文件布局、调用流程slices.md:构建顺序、仓库、PR 以及每个切片的检查点
停止时,向用户展示:
- 在适当的地方提供示意图,以及一段简短摘要(而不是粘贴整篇文档的聊天内容)
- 你所做的决策和待解决的问题,并编号以便用户回答“2:同意”
在用户批准当前阶段之前,不要开始下一阶段。如果用户做了修改,请更新设计文件,而不仅仅是在聊天中修正。
4. 逐个切片构建
切片计划获批后:
- 一次只构建一个切片;每个切片结束时,其约定的检查点必须通过,并展示证明。
- 每个切片对应一个 PR(或者如果用户不使用 PR,则对应一个提交),按照全局规则描述。
- 如果实现过程中发现设计有误,请停下来向用户提出修改设计的建议,而不是悄然偏离原设计。在达成修改共识后,更新设计文件。
- 随着切片的落地,在设计文件中将其标记为已完成,以便后续会话可以从这里继续。
5. 完成
当最后一个切片落地后,将结果反馈到活文档中,使其始终保持真知:
- 更新仓库的
docs/product.md、docs/architecture.md以及任何主题文档(不是本技能的阶段文件),以描述系统的当前状态,遵循全局规则中的文档编写规则。 - 将任何新增的、困难的或项目特有的术语添加到
docs/glossary.md中。 - 将每个重要决策转化为
docs/decisions/NNNN-<slug>.md笔记。 - 将设计文件标记为已完成,并添加到
docs/README.md中。此后不再重写它。 - 向用户展示活文档中发生了什么变化。