mcpField
R
reflect

reflect

github.com/backnotpropAgent 工作流3.1k5.9k 次安装今天更新
代码仓库

关于 reflect

reflect 是一项 Agent 技能,用于从对话中提炼持久经验,并将其路由到技能修改。它规定了审阅对话、征求批准和应用修改的流程。

主要功能

  1. 01定位当前对话的记录文件
  2. 02并行运行三种审阅角色
  3. 03综合发现并检查结构化落实
  4. 04技能修改前须获批准

适用场景

  1. 01从对话中提炼可复用经验
  2. 02将发现路由到现有或新技能
  3. 03准备获批的技能修改

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/backnotprop/pstack --skill reflect

安装后在 Claude Code 中输入/reflect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
divergent-reviewer.md
judgment-reviewer.md
synthesizer.md
tooling-reviewer.md

详细介绍

反思

从当前对话中提炼可长期复用的经验,并将其用于更新技能。

当用户说“reflect”或“/reflect”时调用。如果对话无关紧要、离题,或父级遵循的现有技能已涵盖相关内容,则跳过。一次性事件不算经验。

1. 找到当前活动对话的记录

开始并行处理前,先在当前工作区的会话目录中找到本次对话的记录。不要遍历所有项目的目录,以免跨越工作区边界并读取其他项目的私人对话。

记录的位置取决于所用的运行环境:

  • **Cursor:**系统提示中指定的 agent-transcripts/ 目录。

    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 中包含本次对话开场用户提示的文件。

  • Claude Code:~/.claude/projects/<slug>/<session-id>.jsonl,其中 <slug> 是工作区路径中所有非字母或数字字符替换为“-”后的结果。

  • Pi:~/.pi/agent/sessions/--<slug>--/*.jsonl,其中 <slug> 是去掉开头斜杠并将每个“/”替换为“-”后的工作区路径。

  • Codex:~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl。仅保留第一行中 payload.cwd 与工作区路径相同的文件。

  • **其他运行环境:**检查该工作区对应的运行环境会话目录。

Cursor 以外的环境,先检查最新的候选文件,再通过第一条用户消息中的本次对话开场提示确认。如果没有匹配项,则传递该会话的精简摘要。

2. 并行启动三位审阅者

通过一条消息并行调用三次 Task,设置 subagent_type: generalPurpose、Agent 模式(readonly: false)。审阅者需要 MCP 访问权限,以便查找记录中提及的工单、聊天线程和可观测性追踪;只读模式会移除 MCP。

**其他运行环境。**此技能中的启动方式使用 Cursor 的 Task 工具。在其他运行环境中,请使用对应的子 Agent 工具:Claude Code 使用 Agent(subagent_type: general-purpose),OpenCode 使用 task(subagent_type: general),Codex 使用 spawn_agent。保留提示词和模型;移除工具不支持的参数。如果运行环境没有子 Agent 工具(例如未安装扩展的 Pi),则自行依次完成每个角色的工作。

每位审阅者和综合者都要在 pstack 设置文件中查找角色对应的行(Cursor 为 ~/.cursor/rules/pstack-models.mdc,Claude Code 为 ~/.claude/rules/pstack-models.md,其他运行环境为 ~/.agents/pstack-models.md),并查找默认值。将 model 设为该行中的值;如果文件或对应行不存在,则使用默认值。如果值为 auto 或 inherit-parent,则不设置 model。如果子 Agent 工具不接受模型标识符,则使用默认值并说明原因。如果工具不接受默认值,则根据错误消息或运行环境的模型列表,选择同系列中最接近的有效标识符。根据工作内容,按照 poteto-mode 技能的“Subagents”部分,为每个子 Agent 选择推理级别以及快速或标准速度。

视角角色行默认 model提示词模板
判断reflect judgment, divergent, synthesizerclaude-opus-5-5-xhighreferences/judgment-reviewer.md
工具reflect toolinggrok-4.7-xhigh-fastreferences/tooling-reviewer.md
发散reflect judgment, divergent, synthesizerclaude-opus-5-5-xhighreferences/divergent-reviewer.md

将每个模板原样传递,仅替换其中标记的记录路径或摘要。审阅者会在 Task 响应正文中返回发现。

3. 综合整理

调用一次 Task,subagent_type: generalPurpose,model 使用 reflect judgment, divergent, synthesizer 行中的模型(默认为 claude-opus-5-5-xhigh),并启用 Agent 模式(readonly: false)。它会通过 MCP 抽查引用;只读模式会移除 MCP。将 references/synthesizer.md 原样传入,并在标记处内联每位审阅者的完整输出。它会返回一个 Accepted / Rejected / Backlog 列表。

4. 结构强制检查

将任何能通过 lint 规则、脚本、元数据标记或运行时检查更可靠地强制执行的 Accepted 条目移至 Backlog。参见 encode-lessons-in-structure 原则技能。

5. 应用

展示综合整理器完整的 Accepted / Rejected / Backlog 输出,并等待明确批准后再应用任何 Accepted 编辑。用户选择要应用的子集,也可以调整路由。技能变更会影响组织中的所有未来 Agent。不要自动应用。

将每个 Backlog 条目提交到团队的 devex 或 backlog 跟踪系统,无需等待。只有 Accepted 列表需要等待批准。

切勿编辑 plugins/cache/ 下的技能。批准前,展示其目标位置:Cursor 中的 .cursor/skills/<skill>/ 或 ~/.cursor/skills/<skill>/,或者你所用运行环境的项目级或用户级技能文件夹,例如 .claude/skills/<skill>/ 或 ~/.agents/skills/<skill>/。批准后,将技能文件夹复制到该位置并编辑副本。切勿创建 PR 或推送。

严格遵循每一行获批内容的 Routing:

  • 对现有技能进行琐碎编辑(一行项目符号、润色一句话、更正过时信息):由父 Agent 直接处理。
  • 对现有技能进行实质性编辑(新增章节、新增模式表、超过约 10 行):交由所用运行环境的技能编写技能处理,并运行其草拟 / 测试 / 迭代流程。在 Cursor 中使用 create-skill(内置),或使用 Anthropic 的 skill-creator。若两者都没有,请遵循 agentskills.io 上的 Agent Skills 格式。下文中的“create-skill”指你使用的其中一种工具。
  • tune description: <skill path>(技能存在,但本应触发时未触发):交由 create-skill 处理,并运行其描述优化流程。
  • new skill via create-skill: <kebab-name>:交由 create-skill 创建。不要临时自行设计格式。

如果你的运行环境提供 SKILL.md 验证器,请在宣布完成前对每个改动过的技能运行验证。

6. 向用户总结

简短列出,不要加开场白:

  • 已应用的编辑:<skill path>。每项变更用一行说明。
  • 新建的技能:<skill path>。每项用一行说明(较少见)。
  • 已提交到 devex 跟踪系统的 Backlog:<issue title>(<tags>)。每项用一行说明。
  • 已舍弃:每条被拒绝的发现单独列出,并说明综合整理器给出的理由。

评论

支持 Markdown