关于 reflect
这项技能从对话中提炼可复用经验,并将其转为技能更新建议。它规定了何时复盘、如何并行审阅和综合发现,以及经用户批准后如何按指定流程应用修改。
主要功能
- 01判断哪些对话值得复盘
- 02定位当前会话记录
- 03并行开展三路审阅
- 04综合发现并检查结构化落实方式
- 05按规定路径应用获批修改
适用场景
- 01从复杂任务中提炼可复用方法
- 02将用户纠正转为技能改进
- 03复查失败尝试和可推广工作流
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ poteto/ plugins --skill reflect安装后在 Claude Code 中输入/reflect确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/divergent-reviewer.mdjudgment-reviewer.mdsynthesizer.mdtooling-reviewer.md详细介绍
Reflect
从当前对话中提炼可长期复用的经验,并将其用于更新技能。
何时调用
- 用户说了“reflect”或“/reflect”。
- 一项复杂任务(调用工具 5 次以上)刚刚顺利完成,且其操作方法值得保留。
- Agent 遇到了死路,后来找到了可行路径,且该路径具有普适性。
- 用户在任务过程中纠正了 Agent 的做法。
- 出现了尚未被任何技能涵盖的非平凡工作流。
如果对话过于简单、偏离主题,或父级 Agent 已正确遵循现有技能,则跳过。一次性经验不值得记录。
流程
1. 定位当前活动的对话记录
父级 Agent 在并行派发任务之前,先找到自己的对话记录文件。系统提示中会注明当前工作区的 agent-transcripts/ 目录;使用该路径。不要在 ~/.cursor/projects/*/ 下搜索。这会越过工作区边界,读取来自无关项目的私密对话。
ls -t <agent-transcripts>/*.jsonl <agent-transcripts>/*/*.jsonl <agent-transcripts>/*/subagents/*.jsonl 2>/dev/null | head -10
对话记录有三种布局:旧版扁平结构(<id>.jsonl)、当前嵌套结构(<id>/<id>.jsonl),以及子 Agent 结构(<parent>/subagents/<child>.jsonl)。
对每个候选文件,读取第一行 JSONL,并检查 message.content[0].text 是否包含本次对话的开场用户提示。使用匹配的路径。如果没有找到匹配路径,则撰写一份简洁的会话摘要,并将其传递过去。
2. 并行派发三位审阅者
在一条消息中调用三次 Task,设置 subagent_type: generalPurpose,并为每个调用显式指定 model:,使用 Agent 模式(readonly: false)。审阅者需要 MCP 访问权限,以便查询上下文(对话记录中提及的工单、聊天线程和可观测性追踪);readonly 会移除 MCP。提示词禁止写入文件;由父级 Agent 应用编辑。
| 视角 | model | 提示词模板 |
|---|---|---|
| 判断 | 你配置的 reflect-judgment 模型(默认 claude-opus-4-8-thinking-xhigh) | references/judgment-reviewer.md |
| 工具 | 你配置的 reflect-tooling 模型(默认 composer-2.5-fast) | references/tooling-reviewer.md |
| 发散 | 你配置的 reflect-judgment 模型(默认 claude-opus-4-8-thinking-xhigh) | references/divergent-reviewer.md |
逐字传递每个模板,并在标记位置替换为对话记录路径或摘要。审阅者会在 Task 响应正文中返回发现。
3. 综合
调用一次 Task,设置 subagent_type: generalPurpose,使用你配置的 reflect-judgment 模型(默认 claude-opus-4-8-thinking-xhigh)和 Agent 模式(readonly: false)。综合者的质量检查包括抽样验证引用,这可能需要 MCP 访问权限;readonly 会移除 MCP。逐字使用 references/synthesizer.md,并在标记位置内联每位审阅者的完整输出。综合者会返回结构化的 Accepted / Rejected / Backlog 列表。
4. 结构化强制执行检查
检查综合者的 Accepted 列表是否合理。对于任何通过 lint 规则、脚本、元数据标记或运行时检查能更可靠地强制执行的事项,将其从 Accepted 移至 Backlog。综合者已应用此标准;这是编辑正式生效前的最后检查。请参阅 encode-lessons-in-structure 原则技能。
5. 应用
应用任何已接受的编辑前,先向用户展示综合器完整的“已接受/已拒绝/待办”输出,并等待用户明确批准。由用户选择要应用的子集,也可以重新指定路由。技能变更会影响组织内所有未来的 Agent;不得自动应用。
将待办项自动提交到团队使用的任何开发体验/待办事项跟踪系统。这些是跟踪系统提交,不是技能编辑。只有“已接受”列表需要等待批准。
对于每个获批的“已接受”项,严格遵循“路由”字段:
- 对现有技能进行琐碎编辑(一行项目符号、精简一句话、修正过时信息):由主 Agent 直接处理。
- 对现有技能进行实质性编辑(新增章节、新增模式表格、超过约 10 行):交给 Cursor 内置的
create-skill技能,并执行其起草/测试/迭代流程。 tune description: <skill path>(技能存在,但在应触发时未触发):交给create-skill,并执行其描述优化流程。new skill via create-skill: <kebab-name>:交由create-skill创建。不要临时自行设计结构。
如果你的环境提供 SKILL.md 验证器,在宣布完成前,对每个已修改的技能运行验证器。若没有,则跳过此步骤。
6. 向用户总结
简短列出,不要加开场白:
- 已应用的编辑:
<skill path>。每项变更用一行说明。 - 新建的技能:
<skill path>。每项用一行说明(少见)。 - 已提交到开发体验跟踪系统的待办:
<issue title>(<tags>)。每项用一行说明。 - 已舍弃:每条被拒绝的发现各列一行,并注明综合器给出的原因。