交接文档是一次对话换一个还是专门准备一个交接文档,然后如果我要进行阶段记录这种如何保证两份文档内容不会乱以及有漏记
交接文档不是一次对话一份,是一个任务一份。而且更省事的做法是:别维护两份内容不同的文档。 一、先分清三种东西 任务状态:现在到哪了、下一步干什么。这个是覆盖式更新,永远只描述"此刻"。 过程日志:什么时候做了什么、哪次尝试失败了。这个是追加式,写完不改。 交接文档:本质就是"当前状态"的一个快照,不是第三份内容。 所以文件只建两个: PROGRESS.md,只写现在,每次更新是覆盖,不保留旧内容 LOG.md,只追加,每条带时间戳,写完不再改 交接的时候不新建文件,新会话直接读 PROGRESS.md。这就是为什么不会乱——同一份信息只有一份副本。 二、为什么会乱和漏记 乱的根源就是你把状态和日志混在一份文档里。写的时候既要保留历史又要反映现状,最后变成一份几百行、自己都懒得看的流水账。 漏记的根源是有两份文档要同步。人一旦要维护两份,必然有一份落后。 所以规则定死:PROGRESS.md 是唯一真相,LOG.md 只做追溯,两者不重复内容。状态里不写"我试过 A 失败了",那是日志的事;日志里不写"当前剩 12 个文件",那是状态的事。 三、具体长什么样 PROGRESS.md: 任务:src 迁移到 TS,运行时行为不变 更新:09-08 21:30 已完成:src/api、src/hooks,tsc --noEmit 通过 进行中:src/components,剩 12 个文件 下一步:从 Button.tsx 开始,先迁无依赖叶子组件 约束:不动 utils,不升级依赖,保持 CommonJS 已知问题:X.tsx 有一处用 any 临时绕过 未验证:还没跑端到端测试 LOG.md: 09-08 18:10 完成 hooks 迁移,tsc --noEmit 通过 09-08 19:40 尝试批量 rename,引入 3 个循环依赖,已回滚 09-08 21:30 components 目录开工,先做 Button.tsx 新会话第一句话:「读 PROGRESS.md,从下一步继续。需要背景再看 LOG.md 最后 5 条。」 四、怎么保证不漏 把更新时机固定化,别靠记性。每完成一个能验收的小单元就更新一次,不允许攒到最后一起写。给 Agent 的指令可以写死: 每完成一个阶段,先更新 PROGRESS.md 再继续,不要重写历史。 更新时保留模板字段,只改内容,不许删字段。 收尾时必须回答三件事:改了什么、实际验证了什么、还有什么没验证。 最后一条最重要,未验证项是最容易漏的,也是新会话最容易误以为"都验过了"的地方。 五、如果必须单独一份交接文件 比如你要把内容粘给一个全新的会话,那就让它是 PROGRESS.md 的一次性快照,文件头写清日期和来源,用完即弃,别长期维护第二份。要长期维护两份,一定会有一份是错的。