用途:Reflect 用于挖掘当前对话中对未来仍有价值的可持续经验(durable learnings),并将其转化为对已有技能的具体修改。当用户说出“reflect”或“/reflect”时触发;若对话内容琐碎、偏离主题,或已由父级正确遵循的现有技能覆盖,则跳过。一次性事件不算经验。
使用方式:开始前,每个会话需先读取一次宿主适配器(host adapter),它将上游 Cursor 专用的工具、模型、路径和权限说明映射到当前宿主,并设定权限边界。
第一步,定位活动对话记录。在系统提示指定的 agent-transcripts/ 目录中查找本次对话的记录,不要跨其他工作区进行通配匹配,以免越界读取不相关项目的私密对话。示例命令: ls -t <agent-transcripts>/.jsonl <agent-transcripts>//.jsonl <agent-transcripts>//subagents/*.jsonl 2>/dev/null | head -10 该命令覆盖旧版扁平布局、当前嵌套布局与子代理布局。对每个候选文件读取首行 JSONL,选取 message.content[0].text 包含本对话开场用户提示的文件;若无匹配,则改为传入本次会话的精简摘要。
第二步,并行启动三个审查者。在一条消息中发起三个 Task 调用,subagent_type 为 generalPurpose,agent mode 为 readonly: false,因为审查者需要 MCP 访问来查询对话记录中引用的工单、聊天线程和可观测性追踪,而 readonly 会剥离 MCP。三个视角分别为:判断(Judgment)、工具(Tooling)、发散(Divergent),各自使用对应的提示模板(references/judgment-reviewer.md、references/tooling-reviewer.md、references/divergent-reviewer.md),按标记替换对话记录路径或摘要,并将模板原样传入。模型按模型规则中对应的角色行取值,缺失时用默认值;当值为 auto 或 inherit-parent 时不设置模型;若 Task 工具拒绝某个标识,则改用默认值并说明,若默认值也被拒,则使用其错误信息中同族最接近的有效标识。
第三步,综合。发起一个 Task 调用,subagent_type 为 generalPurpose,模型取“reflect judgment, divergent, synthesizer”角色行的值(默认 claude-opus-5-5-xhigh),readonly: false,以便通过 MCP 抽查核实引用。将 references/synthesizer.md 原样传入,并把各审查者的完整输出内联到标记处,返回可接受(Accepted)、被拒(Rejected)、待办(Backlog)三类清单。
第四步,结构性约束检查:若某个可接受项更适合由 lint 规则、脚本、元数据标记或运行时检查来强制执行,则将其移入待办。
第五步,应用。先完整展示综合器的可接受/被拒/待办输出,等待用户明确批准后再应用任何可接受修改;用户选择子集并可改变分派方向,不得自动应用。待办项无需等待,直接提交到团队的 devex 或积压跟踪器。
分派规则:绝不编辑 plugins/cache/ 下的技能;批准前展示目标位置(.agents/skills/<skill>/ 或 ~/.agents/skills/<skill>/),批准后把技能文件夹复制到该位置并编辑副本;不得创建 PR 或推送。对已批准条目按其分派方式执行:琐碎的已有技能修改(单行要点、收紧句子、更正过时事实)由父级直接完成;实质性修改(新增章节、新模式表、超过约 10 行)交给 skill-creator 技能并运行其草拟/测试/迭代循环;若技能存在但未在应当触发时触发,使用 tune description: <skill path> 交给 create-skill 运行描述优化循环;若需新技能则用 new skill via create-skill: <kebab-name> 交给 create-skill 创建。若环境提供 SKILL.md 校验器,则在所有被触及的技能上运行后再宣告完成。
最后向用户简要汇总:已应用的修改(技能路径与每项变化一行)、新建技能(每项一行,少见)、已提交到 devex 跟踪器的待办(问题标题与标签,每项一行)、被丢弃项(每个被拒发现一行及综合器给出的原因)。
适用场景:需要从已完成对话中沉淀经验并改进组织内技能时。限制:不适用于琐碎或已正确覆盖的对话;必须遵守宿主适配器与权限边界;不得跨工作区读取记录;未经用户批准不得自动应用技能修改;不得编辑缓存目录中的技能或创建 PR。