做稍微大点的项目,文档一多就乱。我之前改个定价,散在七八个文件里,让 AI 帮改还漏了代码,上线还是老价格。根因就一个:同一件事被抄了好几份,没有唯一权威版。
很多人管文档,第一反应是建一堆文件夹:需求、设计、会议纪要……建完还是乱。问题不在分多少类,在于没想清楚「文档为什么会乱」。我把根因拆成三个,下面的每层结构都是对着它去的。
为什么是这 7 层:三个原理
同一件事,只存在一个地方
你改一个定价,如果 PRD 写一遍、代码写一遍、落地页写一遍,就等于埋了三颗雷。任何一处改了,另外两处不会自动跟着改,迟早对不上。副本越多,对不上的概率越大。
做法就一句:谁权威,谁唯一。定价只在 01-pricing.md 写权威版,代码从它读,别处只写「价格见该文件」。想抄数字?不许。这样改一次全对,AI 也不会在别处乱翻。
不同文档,老化速度不一样
这点最容易忽略。ADR 决定做了基本不动;roadmap 天天在改;logs 只追加不回改;SSOT 偶尔动。全堆一个文件夹,常改的会把不动的带乱,不动的又挡着常改的。
所以按「变化频率」分层:稳的归稳的,动的归动的。维护时只在动的层花时间,稳的层基本不用碰。
灵感是乱的,得先有个地方接住
你在别处聊出个点子,或者刷到个好思路,这时候它还没验证、没归类。直接塞进正式文档会污染权威,不记转头就忘。
加一个收件箱:点子原样丢进去,不用整理。每周捞一次,有用的升级、没用的删。它像门口的筐,邮件先进收件箱再分类,一个道理。
三个原理,就是上面 7 层的来由。理解了这个,你甚至可以自己改层数,不用照抄我。
![[文档流转图.svg]]
下面这套是我现在用的,目录、每个文件写什么、给 AI 的协议都给你,直接抄。
先建这套目录结构
docs/
00-SSOT/ ← 唯一事实源,硬事实只在这写
01-pricing.md 定价
02-config.md 配置项
03-arch.md 架构
10-decisions/ ← 每个重要决定一条
20-roadmap/ ← 规划、backlog
30-inbox/ ← 外面聊来的点子,原样丢
40-ops/ ← 上线清单、事故
50-logs/ ← 每日追加,不回改
README.md ← 地图 + AI 协议建完这 7 样,项目的文档骨架就有了。
SSOT 里具体写什么
00-SSOT/01-pricing.md 直接长这样:
# 定价(权威版)
最后更新:2026-07-29
| 方案 | 价格/月 | 额度 | 支付 |
| Free | ¥0 | 50次/天 | - |
| Pro | ¥49 | 无限 | 微信 |
| Plus | ¥99 | 无限+优先 | 微信 |
代码引用:src/config/pricing.ts 从这里同步,不要手写数字。
落地页、PRD 只写「价格见 01-pricing.md」,不准抄数字。关键就一句:别的地方想引用,只写一句话链接过去,不准把数字再写一遍。配置、架构同理,各占一个文件。改价格,只动 01-pricing.md 加代码,AI 改文档也只让它去这。
一条 ADR 怎么写
每次做了重要决定,在 10-decisions/ 建一个文件,模板照抄:
# ADR-003 注册验证邮件用 ZeptoMail 替代 Resend
日期:2026-07-29
状态:采纳
背景:Resend 免费版只给 1 个域名,多站点不够用
决定:注册验证邮件走 ZeptoMail
否决:继续用 Resend(域名受限)、自建 SMTP(维护贵)
影响:邮件配置写到 02-config.md;落地页更新接入说明以后你看代码好奇「当时为啥这么选」,不用猜,读对应的 ADR 就行。AI 接手项目也一样。
收件箱条目长啥样
你在别处 AI 聊出个优化点子,或者社群看到个好思路,丢进 30-inbox/,原样写:
# 2026-07-28 想法
来源:和 Codex 聊出来的
原始想法:把常用提示词做成可一句话触发的流程
状态:待评估不用整理、不用想放哪。每周捞一次,有用的升级成 ADR 或 roadmap,没用的删。这样点子不丢,也不会污染正式文档。
给 AI 的协作协议写进 README
README.md 里加一段,以后把项目丢给任何 AI,它照着来就不会乱动:
## AI 协作协议
- 改价格 / 配置 / 架构 → 只改 00-SSOT 对应文件,别处改链接
- 新点子 / 优化 → 丢 30-inbox,不要进 PRD
- 看不懂某个决定 → 读 10-decisions 里对应的 ADR
- 事实变了 → 改 SSOT,日志顶部加「以 SSOT 为准」这段是我踩坑后补的。之前让 AI 改定价,它乖乖把 PRD 里的数字改了,代码里那份没动,上线还是老价格。协议写死「改价格去 SSOT」,它就不会再去别处翻数字。
每月花十分钟做这件事(防漂移)
文档会过期,是因为引用文件还在抄旧数字。每月做一次:
- 打开所有引用了定价的文件,确认没有手写数字,只有链接
- 对比 00-SSOT 和代码配置,数字对得上
- 收件箱本周 triage 了吗
文件名锁死、带日期戳,不随便改名;文档和代码放一起提交,两边不会各走各的。
之前是怎么乱的(真实对照)
aitoexcel 之前:定价写在 PRD 一段、代码配置一份、落地页一份、还有 3 个功能内页各顺手写了一份,一共 7 处。每次调价像捉迷藏,AI 改还漏。现在收成 1 处 01-pricing.md + 代码读它,调价一分钟搞定。
你开新项目,别先写厚 PRD。先把上面目录建出来,SSOT 和收件箱两个文件夹先用上,剩下的链接过去。这套今晚就能搭好。