retro · git:20260820.16d82f8 · 2026-08-20 · sha256 e5623de6e489bb94
retro git:20260820.16d82f8A
Immutable. This exact content is served forever at /api/v1/blob/e5623de6e489bb94.
--- name: retro description: 任务磕磕碰碰才做成、被纠正了好几次之后用;用户说「复盘」「总结经验」「记下来」时也用。回顾这次会话的纠错轨迹,筛出下次还会犯的错,沉淀进 AGENTS.md 或技能,同类任务下次不用再教一遍。 --- # 复盘并沉淀经验 这次对话结束后你什么都不会记得。刚才的纠正、试错、最终跑通的路径, 不现在写下来,下次同类任务用户还得从头再教一遍。 用户指定了复盘重点的话优先照它来:$ARGUMENTS ## 1. 回顾轨迹 从对话开头到现在过一遍,列出: - 用户纠正过你几次,每次纠正的是什么——你当时的(错误)假设 vs 实际; - 失败过的工具调用和命令:症状(报错原文)→ 真因; - 最终跑通的路径,和你最初的计划差在哪几步。 ## 2. 筛选 同时满足三条的才值得记: - **反直觉**:下次靠推理和读代码还是会犯同样的错; - **grep 不到**:代码和文档里查得到的不记——那是下次自己找得到的东西; - **是规律不是偶然**:只见过一次的现象,把适用条件写清楚再记。 一条都筛不出来就直接说「这次没有值得沉淀的经验」,到此为止。硬写出来 的空话不是零收益,是负的——它占清单位置,稀释真正有用的经验。 ## 3. 决定去向 **默认进项目级。** 编码任务里摸出来的经验十有八九是这个仓库的规律—— 这里的构建顺序、这里的报错、这里的约定。放错方向的代价不对称:该全局 的放成项目级,大不了换个项目再沉淀一遍;该项目级的放成全局,是让所有 项目付上下文税,还可能在别处是错的。 - **一句话纪律** → `<项目>/AGENTS.md`。保持短:那个文件每一行都在对 所有会话收上下文税。 - **某一类任务的完整打法** → 项目 `.riot/skills/`。**先看已有技能的 清单**:这次的坑落在某个已有技能的范围内,就更新它,不要另开一份 近似的——两份互相抢,哪份都不完整。 - **只对这一次有效的细节** → 不记。 例外才进全局(配置目录那层):跟仓库代码无关、跟用户本人或他的机器 有关的——工作习惯、环境坑(「Dock 起的应用继承不到 shell 环境变量」 属于这类)。拿不准就项目级;要写全局,先问用户一声。 ## 4. 写 - 写新技能:加载 skillify 技能,照它的写法来。要点是 description 写 「什么时候用」——那是模型下次想起它的唯一线索;正文只写模型猜不到 的。目录和 frontmatter 的机制细节见 extend-riot 技能。 - 更新已有技能或 AGENTS.md:新坑写成「症状 → 真因」,报错原文照抄 进去——下次撞到症状才对得上号。 ## 5. 收尾 报给用户:改了/新建了哪个文件,每条经验一句话。值不值得留由用户把 关——经验库是他的,不是你的。改动下一轮对话生效。