让AI当你的设计文档“敌对评审员”:揪出藏在聊天记录里的模糊假设
你写完一份系统设计文档,信心满满——接口定义清楚、架构图也画好了,连流程边界都标了颜色。
但等真正让 AI 编码时,它却“自由发挥”出了一个你完全没想过的模块……
问题往往不出在代码,而出在文档根本没真正独立存在过。
这篇文章讲的不是“怎么用 AI 写文档”,而是:
怎么逼 AI 拿起红笔,像一个刚入职、谁也不认识、连 Slack 历史都没翻过的新同事,一字一句地挑你文档的刺。
🚫 别再让 AI 当“捧场同事”,要它当“陌生工程师”
默认状态下,AI 会记住你前 20 轮对话里说过的所有背景、口头约定和临时脑补——这让你的文档看起来“很连贯”。
但真实世界没有记忆:新同事不会读你上周的聊天记录;编码 Agent 不会猜你心里那句“其实这里应该走异步”。
所以第一步很简单:
✅ 新开一个干净对话(或新建项目)
✅ 只上传你打算交付给团队/Agent 的那几份文件(比如 design.md、api-spec.yaml、glossary.md)
✅ 一句话关掉它的“礼貌模式”:
请以完全陌生的工程师身份阅读这些材料。你没看过任何聊天记录,没听过我的口头解释,也没见过我画的草图。
请严格基于上传的文件内容回答,做到:
- 不填补空白(没写的就当不存在)
- 不美化表达(模糊=缺陷,不叫“留白”)
- 不猜测意图(没明说的假设,一律标为“隐含风险”)
- 把所有歧义、矛盾、未定义术语,当成 bug 一样列出来
🔍 它该帮你揪出什么?(普通人也能看懂的 6 类硬伤)
- 术语乱飞:同一个词(比如 “用户”)在三处定义不同,一处指登录人,一处指租户,一处指 API 调用方
- 边界消失术:写着“订单服务负责状态流转”,但没写清“谁触发它?失败谁兜底?超时怎么算?”
- 假设隐身了:文档说“数据最终一致”,但没提“用什么机制保证?延迟上限多少?业务能容忍吗?”
- 接口缺胳膊少腿:只写了
POST /v1/order,却漏了请求体字段约束、错误码含义、幂等键规则 - 流程自相矛盾:A 文档说“支付成功后发消息”,B 文档说“消息队列失败时降级为轮询”,但没写轮询触发条件
- 决策藏在聊天里:你曾在对话中说“用 Redis 不用 Kafka”,但文档里只字未提,也没写理由
这些不是“细节问题”,是文档还没真正完成的信号——它还在你脑子里活着,没落地成可传递、可执行的文字。
💡 怎么问,才能得到“真·毒舌反馈”?
别问:“你觉得这文档怎么样?”(AI 会回:“结构清晰,很有启发性!”)
换成这几个直球问题,它才敢说实话:
- 请只用上传的文件,完整复述这个系统的输入、输出、核心状态和关键约束。
- 哪些词你必须查外部资料/问人才能懂?请列出并说明缺什么定义。
- 哪些地方看起来很精确,但实际一推敲就发现没说清(比如“实时”“高可用”“自动重试”)?
- 如果现在让一个编码 Agent 基于这些文件生成代码,它最可能误解哪三点?
- 哪些重要决定(比如技术选型、容错策略、数据一致性模型)在文档里根本没出现,只存在于我们的聊天中?
✅ 这招为什么特别适合开发者?
- 不依赖新工具:你 already have ChatGPT/Claude/Copilot——只要换个提问姿势
- 零学习成本:不用学新语法,只需记住一句口诀:“删掉上下文,锁死文件,要它当陌生人”
- 省下后期巨坑:一个模糊的“超时”定义,可能让 AI 生成出 3 种不同重试逻辑,等联调才发现全错
- 文档即契约:当你的设计文档能经得起“敌对评审”,它才真正具备指导开发、对齐团队、驱动 Agent 的能力
最后送你一句提米哥的实战心得:
AI 最珍贵的价值,不是帮你把想法变成文字,而是帮你发现——那个你以为已经写清楚的想法,其实还卡在你自己的脑子里。
直达网址:https://dev.to/forgemechanic/i-dont-start-with-code-anymore-17in
