主线课程/9

9 课:用 AI 写文档、设计说明与交接材料

把代码变化沉淀为可协作资产

文档设计说明交接2h

代码改完之后,最容易被拖到最后的往往不是实现,而是文档、设计说明和交接材料。结果就是功能看似上线了,别人却看不懂你为什么这样改、边界在哪里、哪些风险还留着、出现问题时该先看哪里。AI 在这一课真正有价值的地方,是帮助你把真实变更转成可协作资产,而不是凭空写一篇“看起来很完整”的文档。

真实研发场景

最常见的事故不是“没有文档”,而是“文档不可信”

很多项目并不是完全没有说明,而是说明总比真实代码落后一拍。设计意图留在聊天记录里,交接重点只在口头讲过,发布摘要只写“优化了一些逻辑”,真正会影响接手者判断的信息却没进仓库,例如:这次为什么选这个方案、哪些边界故意没做、当前风险点在哪里、验证做到了什么程度。

当这些信息缺失时,后续协作者要么不敢改,要么在不了解前提的情况下继续加逻辑,最终文档债和代码债一起增长。

本课真正要做的是“把变更翻译成别人能接住的说明”

AI 很适合做这种翻译工作,因为它擅长把 diff、测试结果、设计碎片和风险点整理成结构化章节。但前提是你必须先提供真实事实,而不是让模型凭空脑补“设计意图”。

传统做法的痛点

文档滞后不是形式问题,而是协作成本问题

缺失的信息短期看似没事长期真实成本
设计取舍当事人自己记得其他人无法判断为什么这样做
边界说明当前提测还能推进后续改动容易越界
风险与验证上线前大家口头同步过复盘和交接时无法追溯
变更摘要PR 合进去了发布记录和后续定位都困难

文档真正的作用,不是满足形式要求,而是降低未来协作的不确定性。

AI 参与文档时最常见的三个问题

  • 没有真实 diff 和决策记录,就让 AI 凭空生成设计说明
  • 文档只写“做了什么”,不写“为什么这样做、没做什么、风险在哪里”
  • 草稿生成后不对照代码和测试校正,最后文档比代码更假

AI 能提效到哪一步

AI 最适合承担的文档动作

  • 结构整理:把零散变更整理成背景、方案、边界、验证、风险几个固定部分
  • 代码翻译:把实现变化翻成更适合协作阅读的说明
  • 交接草稿:列出模块现状、依赖、风险和接手建议
  • 发布摘要:从真实变更中提炼出适合同步的重点

必须人工补上的内容

内容为什么必须人工补
方案取舍只有工程师知道为什么放弃其他路线
风险接受涉及责任与后续动作
验证结论需要基于真实测试、构建或联调结果
未完成项模型无法判断哪些是刻意不做

一个简单规则是:AI 可以整理说明,但不能替你承担说明背后的决策责任。

推荐工作流

先准备“变更事实包”

在让 AI 起文档草稿前,先收集:

  • 相关代码 diff 或改动文件
  • 测试、构建、联调结果
  • 做出关键取舍的原因
  • 已知风险、限制和后续事项

五步文档沉淀法

步骤AI 产出人工要做什么验证方式
1. 收事实变更摘要草稿补齐缺失的设计前提是否能回答“改了什么、为什么改”
2. 起结构设计说明 / 交接材料章节删除空章节,补关键边界是否贴合真实受众
3. 补取舍风险、边界、未做项草稿写清为何这样取舍是否能支撑后续协作
4. 对照代码文档与代码差异检查修正文档口径文档是否与实现一致
5. 入库沉淀最终说明、发布摘要、交接记录放进仓库,而不是聊天窗口未来是否可追溯

一个适合文档阶段的输入模板

md
本次改动涉及:
关键代码路径:
关键决策:
验证结果:
已知风险或限制:
请输出:
1. 设计说明结构
2. 交接重点
3. 发布摘要草稿

与仓库代码和模板的映射

常见误用与风险

误用一:让 AI 凭空写文档

没有真实变更事实时,模型最容易写出一篇语气正确但内容空心的说明。

误用二:只写结果,不写取舍和边界

这会让接手者知道“发生了什么”,却不知道“为什么这样做”和“哪里不能碰”。

误用三:交接材料里没有验证方式

没有验证路径的交接说明,别人很难判断当前状态是否可信。

误用四:文档不入库

只存在聊天窗口里的说明,几乎等于未来无法追溯。

课后练习

建议直接在 ../课后练习/第9课/练习.md 中完成本课练习,并使用 ../课后练习/通用提交模板.md 保留 AI 输入、人工删改和验证结果。

如果你只做最小版交付,也至少保留四样东西:结构化输入、AI 产出摘要、人工判断记录、最终验证结果。

基础题

选一个最近的模块改动,先整理一份变更事实包。

进阶题

让 AI 基于事实包生成设计说明或交接草稿,再人工补上取舍、风险和未做项。

挑战题

把最终说明放进仓库,并让另一位同学仅凭该文档复述这次改动的目标、边界和验证方式。