mcpField
R
reflect

reflect

github.com/mdsmithaustinAgent 工作流8158 次安装1 天前更新
代码仓库

关于 reflect

reflect 是从对话中提炼长期有效经验并分流到技能修改或待办事项的 Agent 技能。它通过并行评审和综合整理形成结论,并要求获批后才应用接受的修改。

主要功能

  1. 01定位当前对话记录
  2. 02并行运行三种评审视角
  3. 03整理接受、拒绝和待办项
  4. 04技能修改须经批准

适用场景

  1. 01从会话中提取可复用经验
  2. 02评审技能变更中的长期发现
  3. 03将获批改进分配到现有或新技能

安装

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

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

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

包含的文件

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

agents/
openai.yaml
references/
divergent-reviewer.md
judgment-reviewer.md
synthesizer.md
tooling-reviewer.md

详细介绍

Reflect

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

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

1. 定位当前转录

父级在启动多个子任务前,先找到自己的转录文件:此工作区转录存储中最新的会话。使用 pstack-harness 技能定位。不要读取其他工作区的转录存储。这样会越过工作区边界,读取无关项目中的私人聊天记录。

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: general-purpose,并按下表设置 model,使用 Agent 模式(readonly: false)。审查者需要 MCP 访问权限,以便查询转录中提及的工单、聊天记录和可观测性追踪;readonly 会移除 MCP。使用 pstack-harness 技能启动。该技能的 Spawn a role 部分会解析角色并构建此 CLI 的启动调用。

每位审查者和综合者都要在 pstack 模型配置中指定角色行及默认值。使用 pstack-harness 技能解析其模型、effort 和 Agent 类型。该技能的 Spawn a role 部分还涵盖缺失配置、inherit-parent 和无效值。

视角角色行默认 model提示词模板
判断reflect judgment, divergent, synthesizeropusreferences/judgment-reviewer.md
工具reflect toolingopusreferences/tooling-reviewer.md
发散reflect judgment, divergent, synthesizeropusreferences/divergent-reviewer.md

逐字传入每个模板,并在标记处替换为转录路径或摘要。审查者会在 Task 响应正文中返回发现。

3. 综合

发起一个 Task 调用,subagent_type: general-purpose,model 使用 reflect judgment, divergent, synthesizer 角色行中的值(默认 opus),使用 Agent 模式(readonly: false)。它会通过 MCP 抽查核实引用;readonly 会移除 MCP。逐字传入 references/synthesizer.md,并在标记处内嵌每位审查者的完整输出。它会返回一份 Accepted / Rejected / Backlog 列表。

4. 结构化强制检查

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

5. 应用

展示综合器输出的完整“接受 / 拒绝 / 待办”列表,并在应用任何已接受的编辑前等待明确批准。用户选择要应用的子集,也可以重新指定路由。技能变更会影响组织中未来的所有 Agent。不要自动应用。

将每条普通待办事项提交到团队的 DevEx 或待办事项跟踪器,无需等待。安全、隐私、身份验证、数据和权限边界相关发现除外。请将这些发现保密,并直接报告给操作人员。切勿在公共跟踪器、问题、PR 或评论中发布或链接这些发现。只有已接受列表需要等待批准。

严格遵循每行获批内容中的路由:

  • 对现有技能进行简单编辑(一行要点、收紧句子、修正过时信息):由上级直接处理。
  • 对现有技能进行实质性编辑(新章节、新模式表、超过约 10 行):遵循 ../poteto-mode/playbooks/authoring-a-skill.md 中的编写指南,并执行草稿 / 测试 / 迭代循环。
  • tune description: <skill path>(技能存在,但应触发时未触发):按照 ../poteto-mode/playbooks/authoring-a-skill.md 重写描述,并执行描述优化循环(测试应该触发和不应该触发该技能的表述)。
  • new skill: <kebab-name>:按照 ../poteto-mode/playbooks/authoring-a-skill.md 创建技能。不要临时自行设计格式。

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

6. 向用户总结

简短列出,不要写引言:

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

评论

支持 Markdown