AI 协作 · 记忆体系与取回纪律(神山秘境项目)
编制:小齐 2026-09-17 23:1x (刘总问「你的记忆是不是有限制?大型项目怎么处理」→ 立此文)
适用:所有 AI 席位(小齐 / 小冈 / 一号 / 二号 / 波波 / 阿仁 / 小渔),非小齐专属。
时效:长期有效,随体系演进更新。
一、前提:AI 的记忆是有限的
- AI 单次上下文窗口有上限,超出后早期内容会被压缩或丢失。
- 推论:任何"只在某个 AI 脑子里"的信息,都是高风险资产——会话一断、上下文一换就没了。
- 唯一解法:状态外部化。不靠记住,靠用时取回。
二、三层记忆体系
| 层 | 位置 | 存什么 | 特性 |
| ① 个人档案层 | ~/.workbuddy/:SOUL.md / GUARD.md / USER.md / TRUST.md / LESSONS.md / MEMORY.md | 我是谁 · 什么绝不做 · 帮谁 · 信谁 · 摔过的坑 | 重启不丢,随人走 |
| ② 项目库层 | docs/NOW.md(纪律口径)· docs/TASKS.md(工单判据)· docs/plans/(方案)· docs/delivery/evidence/(证据)· docs/receipts/(回执) | 项目的唯一事实源 | 谁都能取回,不依赖任何单个 AI |
| ③ 工作记忆层 | .workbuddy/memory/YYYY-MM-DD.md / MEMORY.md | 当日进展 · 近因上下文 | 超 30 天提炼进长期记忆后删除,不堆积 |
原则:长期事实进 ②,人格与教训进 ①,近因流水进 ③。
三、取回纪律(开工 / 收工)
开工三步(每次会话、每次换活)
git fetch origin main(或 pull --rebase)拿最新——不凭记忆判断当前状态- 读
docs/NOW.md 找顺序 → 打开对应 WIP 工单行 → 读到行尾(裁决写在行尾,行头状态可能滞后) - 需要历史背景时读
docs/plans/ 与 docs/delivery/evidence/,不靠回想
收工三步
- 改动先 commit,再切分支/推送(顺序:
commit → checkout → cherry-pick → push) - 落证据(有实测就落
evidence/)与回执(docs/receipts/<名字>.md) - 更新 TASKS 状态列(状态列是派工岗唯一看的,滞后=活在他眼里不存在)
四、🔴 易失区清单(这些东西不能当记忆用)
| 易失区 | 后果 | 正确做法 |
| 未提交的改动 | git checkout -f 一清就没(本项目已发生 3 次,含 6 页返工) | 做完立刻 commit |
| 口头派工未入库 | 断线即失,无人接得住 | 立 WIP 号 + 写进行尾 |
| AI 的口头结论/推断 | 下次不复现,且无人可核对 | 写进文档并给出处(纪律 9:数字须可复跑) |
| 行内注释后的变量定义 | shell # 会吞掉同行后续语句(已致 pre-receive 崩溃、全队阻塞) | 注释独立成行 + bash -n + 试推 |
| 只更新行尾不更新状态列 | 派工岗只看状态列 ⇒ 已交付的活视为未做 | 两处同步 |
五、已发生事故(立规来源)
checkout -f 丢改动 ×3:6 页做完未 commit 即切分支 ⇒ 全清重做。- pre-receive 钩子被行内注释改坏:
D1_EXC="coze1" # 注释; D1_RE=... ⇒ D1_RE 未定义、set -u 崩溃 ⇒ 全队无法推送(同款第二次,首次在 D7 行)。 - 状态列滞后:364 行尾早已逐件登记完成,状态列仍挂"进行中"。
- 判据只信代码自洽:372 三例实测 + tsc 全过,但"部分更新"路径从未真跑 ⇒ 回归时抓出 422。
六、检查清单(换手 / 交付前)
- [ ] 所有结论都能在库里找到出处(不是"我记得")
- [ ] 关键数字/状态可用一条命令复跑验证
- [ ] 改动已 commit 且推上远端(
git merge-base --is-ancestor 校验) - [ ] 证据已落
evidence/,回执已更新 - [ ] TASKS 状态列与行尾一致
七、一句话
别指望 AI 记住。 进了库 = 永远在;留在脑子里 = 一次断线就没。