用状态文件接续任务
State File as Sole Continuity
把恢复任务所需的进度和决策保存在唯一的状态文件中。
以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。
使用场景
目录迁移跨越多个会话,压缩后容易重做已完成条目或信任旧结果。教学任务已有计划版本 v2,已完成 ID 10、11,下一项是 12;输出文件及检查记录应保存在这项计划的 progress.json,不借用另一项任务的台账。
具体做法
每批完成后记录计划标识、输入版本、完成 ID、产物路径与散列、检查命令/结果和下一项。状态分开写为正在处理、已修改、已验证,不能用一个 completed 隐藏检查未做。恢复时读取正确台账,核对产物和当前输入;相符才跳过对应工作,不相符则重新检查受影响项。写入采用临时文件后替换,避免半写 JSON。
反例
记住已经完成目录的哪些项,压缩后凭对话回忆继续。不确定就全部重做,或使用找到的任意 progress.json。
改进写法
为计划 v2 更新它自己的 progress.json:记录 ID 10、11 的文件路径、实际 SHA-256、修改状态、检查命令和结果,下一 ID 为 12。未验证的条目明确标未验证。恢复时先核对台账的计划标识与输入版本,再重算产物散列;匹配且检查仍适用才跳过,差异只触发受影响项复验。通过临时文件加替换保存,不从对话回忆推断完成。
为什么这样改
对话记忆不稳定,而一个没有任务身份或产物校验的文件同样可能过期。版本化台账把完成状态连到可核对的对象,既减少重复工作,也不把记录的成功当作当前环境的永久事实。
如何验证
使用教学台账恢复时,应从 ID 12 继续;修改 ID 11 的产物后,散列不匹配应让 11 回到待核查,而不是仍跳过。换成别的计划台账应先拒绝沿用。
检查未验证状态能被识别、文件可完整解析,报告引用的是当前产物而非旧会话的“通过”。本例没有给虚构散列冒充真实校验。
适用边界
台账是证据入口,不是执行授权或绝对真相。输入或共享代码变化可能使旧检查失效,重算散列也只证明字节相同。多写入者还需协调所有权或锁;只有临时替换不能解决所有并发冲突。
原文与版本
- obra/superpowers · Conversation memory does not survive
查看此版本的文件8ca22dba9a94 - obra/superpowers · Brief and report file handoff
查看此版本的文件8ca22dba9a94 - obra/superpowers · Setup ledger ownership
查看此版本的文件8ca22dba9a94 - addyosmani/agent-skills · restart only recorded complete task boundaries
查看此版本的文件9d0c60d406b4