关于 retro
供 Claude Code 使用的复盘 skill,分析当前会话中的摩擦并追溯根因,提出写入仓库的改进方案;获得明确批准后才修改文件。
主要功能
- 01扫描对话中的摩擦信号
- 02追溯问题根因
- 03将经验归入仓库文件
- 04提出精确修改并等待批准
- 05避免记录一次性问题
适用场景
- 01复盘反复出现纠正的会话
- 02将重复的工作流问题转为共享规则
- 03总结长任务结束后的经验
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aymericderbois/ skills --skill retro安装后在 Claude Code 中输入/retro确认已加载。
详细介绍
retro
概述
在工作会话结束时,找出摩擦点(用户与 Agent 之间卡住的地方), 逐一追溯到其根本原因,并提出具体修改建议,让后续会话进行得更顺畅——将这些改进沉淀到仓库中,因此可以进行版本管理并同步到所有机器。
核心原则:反复出现的摩擦 = 缺失的规则。回顾会将会话中的隐性反馈转化为持久化、可执行的文本,就像事后复盘一样。
此技能会分析当前对话(即已处于其上下文中的对话)。它不会解析外部对话记录文件。
适用场景
- 用户说:「回顾」「会话总结」「哪里卡住了?」「retro」,或调用
/retro - 会话结束时,或完成一项需要大量来回沟通的任务后
- 用户想把一次性的挫败转化为持久改进时
不适用场景:
- 会话很简单(只有一个问题,没有任何修正)→ 回复没有值得沉淀的内容
- 上下文经过了大幅压缩 → 说明这一点:回顾只涵盖当前上下文中保留的内容(见 限制)
限制
- 回顾只能看到当前上下文中的对话。如果发生过压缩,开头部分的摩擦可能已经丢失——要明确说明,不要凭空编造。
- 回顾不会进行度量(此处没有 OpenTelemetry 指标):它是对摩擦信号进行的定性分析。
需要识别的摩擦信号
浏览对话,并为每个信号标明相关的轮次:
| 信号 | 识别方式 |
|---|---|
| 用户纠正 | 「不」「更确切地说」「其实」「不是这样」,或重新表述指令 |
| 方向调整 | Agent 走错方向后,用户重新指引 |
| 错误假设 | Agent 对某事作出了不准确的假设(路径、惯例、意图),随后不得不纠正 |
| 反复澄清 | 为了弄清本可以一开始就提出的需求,进行了多轮沟通 |
| 放弃方案 | 事后丢弃或重做了已经完成的工作 |
| 手动返工 | 用户不得不自行修改 Agent 生成的内容 |
| 权限被拒 | 某项操作因缺少预先授权而受阻 |
| 工具摩擦 | 命令因不熟悉仓库(工具链、路径、惯例)而失败 |
工作流
1. 分析
重读对话,列出识别出的摩擦点。每个摩擦点都要说明:发生了什么、发生在什么时候,以及造成的影响 (时间浪费、返工、挫败感)。
2. 追溯根本原因
针对每个摩擦点,回答:如果一开始就存在什么,就能避免这个问题? 常见原因包括:
- Agent 本应了解但缺失的规则/惯例 → 应写入
rules/或CLAUDE.md - 缺失的流程性知识(可重复使用的一系列步骤)→ 应写入
skills/ - 用户侧的指令含糊不清 → 这不属于配置修改,而是关于如何更好地表述指令的建议
- 非反复出现的临时上下文不足 → 不要沉淀(过度沉淀会造成干扰)
不要把每个摩擦点都转化为规则。一次性的摩擦不值得制定规则。 优先处理那些有可能再次发生的问题。
3. 将每条经验路由到正确的位置
| 经验类型 | 目标位置 | 原因 |
|---|---|---|
| 可复用的技能(步骤序列、工作流) | .claude/skills/<nom>/SKILL.md | 可调用,由其 description 触发 |
| 需要记住的规则/事实,针对特定主题 | .claude/rules/<sujet>.md | 每次会话自动加载,并纳入版本控制 |
| 核心、跨领域且始终生效的约定 | CLAUDE.md | 始终处于上下文中,供整个团队查看 |
| 仅适用于一台机器的事实 | 自动记忆(~/.claude/…) | 很少使用;应避免,因为不会同步 |
所有「仓库」目标位置(rules/skills/CLAUDE.md)都纳入 Git 版本控制 → 在不同机器间同步,并与团队共享。这是默认选择。
4. 提出建议,然后停止
展示建议表格,暂不写入任何内容,然后等待用户明确确认。格式:
Frictions de la session :
1. <friction> (tour ~N)
Cause racine : <cause>
→ Proposition : <action> dans <fichier cible>
Texte exact à ajouter/modifier :
----
<le contenu précis>
----
2. …
Aucune capitalisation pour : <frictions jugées ponctuelles, listées avec une phrase de justification>
建议规则:
- 给出要写入的确切文本,绝不能只笼统地说「改进 X」。
- 指明准确的目标文件。
- 如果涉及现有规则,应提出修改(合并/更新),而不是重复添加——遵循 ADD / MERGE / DELETE 的原则,避免
rules/和CLAUDE.md越来越臃肿。 - 明确列出不纳入长期记忆的内容及原因(透明地避免噪声)。
表格后,询问:「全部应用/应用部分/都不应用?」,然后等待。
5. 应用
获得确认后,只写入获选的建议:
- 新事实/规则 → 创建/编辑
.claude/rules/<sujet>.md - 新技能 → 创建
.claude/skills/<nom>/SKILL.md(frontmatter 包含name和description,结构以该 skill 为模板) - 跨领域约定 → 编辑
CLAUDE.md
6. 收尾
- 总结已写入的内容(文件列表)。
- 提醒这些文件纳入版本控制 → 提出提交建议(不要直接提交;建议使用
/commit)。
防护措施
- 未经确认,绝不写入(必须执行步骤 4)——与
commitskill 一样。 - 不要过度沉淀:一次有效的会话可能不会产出任何规则,这也是合理的结果。
- 优先修改现有规则,而不是添加重叠的新规则。
- 未经询问,不要提交。
- 如果复盘仅涉及压缩后的/不完整的上下文,应当说明这一点,而不是声称覆盖了整个会话。
评论
支持 Markdown