坑库
“之前是这样的”先查 git
人的记忆会把想过的设计当成做过的功能。防止 agent 把“以前有过”当约束,照着不存在的旧版去“恢复”
亲历产品阶段 · 设计更新于 2026-10-16
一句话规则
谁说“之前是 X”,都先查 git 历史,再决定要不要把它当约束
发生了什么
我跟 agent 说:“以前聊天和预览是并排显示的。”它立刻把任务理解成“恢复旧功能”,准备去翻旧代码,找是哪次改动把它弄丢的。
好在动手前查了一下 git 历史:这两个区域从来没有并排过。那是我脑子里的新设计,只是被我记成了“以前就有”。
为什么会这样
人的记忆是重建出来的。想象过很多遍的画面,会和真实用过的界面混在一起,越熟悉的产品越容易混。
agent 默认把用户的话当事实。一旦接受了“以前有过”,任务的性质就变了:“恢复”意味着去找旧实现、照旧样子做,跳过新功能本该有的设计讨论。旧实现根本不存在时,它还可能从不相干的历史代码里拼出一个“原版”。
查一次 git 只要一分钟;按错误的前提干活,要搭进去几个小时。
怎么做
先查历史,再当约束:
git log --oneline -- <文件路径> # 这个文件的所有提交
git log --all --oneline -S '<关键词>' # 哪些提交加过或删过这段代码,含其他分支
git show <commit> --stat # 某次提交改了哪些文件查不到,就让人明确选:是“记错了”,还是“这是新设计”。agent 不替人选,也不默认按“恢复”处理。
选了新设计,就按新需求走:先写 spec 再动手,不要顶着“恢复”的名义直接改(见实质改动先留文档再动手)。
写进 CLAUDE.md:
- 任何人(包括我)说“之前是 X”,先用 git log 查证;查不到就按新需求处理,并向我确认