mcpField
R
reflect

reflect

github.com/q-qp-pAgent 工作流144 次安装2 周前更新
代码仓库

关于 reflect

reflect 是一项技能,用于从当前对话中提炼可复用经验,并将其转化为技能修改建议。它指导 Agent 检查记录、并行评审、综合结果,并在获批后应用修改。

主要功能

  1. 01定位当前对话记录
  2. 02并行运行三种评审视角
  3. 03综合并核实评审结果
  4. 04技能修改须经批准
  5. 05按改动范围分派已接受事项

适用场景

  1. 01从已完成的对话中提炼可复用经验
  2. 02区分可执行的技能修改与驳回项
  3. 03为获批的技能修改准备实施

安装

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

$npx skills add https://github.com/q-qp-p/pstack --skill reflect

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

包含的文件

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

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

详细介绍

反思

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

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

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 访问权限,以查询记录中提及的工单、聊天线程和可观测性跟踪;readonly 会移除 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,其他运行环境中为 ~/.agents/pstack-models.md)以及默认模型。将 model 设为该行中的值;如果文件或该行不存在,则使用默认值。如果该值为 auto 或 inherit-parent,则不设置 model。如果子 Agent 工具不接受该模型代号,则使用默认值并说明原因。如果默认值也不被接受,则根据工具返回的错误信息或运行环境的模型列表,选择同系列中最接近的有效代号。根据 Subagents 部分的 poteto-mode 技能,按任务要求设置每个子 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 或待办事项跟踪系统。只有 Accepted 列表需要等待批准。

严格遵循每行获批项目的 Routing:

  • 对现有技能进行简单编辑(一行项目符号、精简一句话、修正过时信息):由父级直接完成。
  • 对现有技能进行实质性编辑(新增章节、新增模式表、超过约 10 行):交由你的 harness 的技能编写技能处理,并运行其起草 / 测试 / 迭代循环。在 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