mcpField
T
thermos

thermos

github.com/christofferbergj测试与质量156 次安装今天更新
代码仓库

关于 thermos

thermos 是用于审查代码变更的 Agent 工作流,可执行正确性与安全性审查,以及可维护性审查;在特定条件下可只做后者。它要求审查者独立检查相同范围和证据,再汇总结果与限制。

主要功能

  1. 01并行执行独立审查
  2. 02检查正确性与安全性
  3. 03评估代码可维护性
  4. 04按审查范围准备证据
  5. 05合并并核实审查发现

适用场景

  1. 01审查分支、提交或工作区改动
  2. 02在已有正确性审查后检查可维护性
  3. 03整理多份代码审查结果

安装

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

$npx skills add https://github.com/christofferbergj/agent-skills --skill thermos

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

包含的文件

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

LICENSE
MAINTENANCE.md
README.md
UPSTREAM.md
agents/
openai.yaml

详细介绍

Thermos

对同一组更改进行两次独立审查并综合审查结果;如果 /review-loop 已覆盖正确性,则仅进行可维护性审查。宿主支持子 Agent 时,此工作流会明确为每次审查委派一个子 Agent。

准备

  1. 根据用户提供的分支、PR、提交范围或工作区更改确定审查范围。阅读仓库指南,并记录仓库路径、基准和最新修订,以及纳入范围的工作区更改。审查分支时,使用与指定或已验证基准分支的合并基点;不要假定基准是 main。只有未跟踪文件属于指定范围时,才将其纳入。每位审查者都能识别出相同的更改时,准备工作即告完成。
  2. 检查 /review-loop 是否已覆盖正确性。如果其最后一轮(在当前会话中或 PR 引用的内容中)针对你确定的最新修订给出 Clean,且第 1 轮已在此范围内完成 /thermo-nuclear-review 审查,那么除非用户要求两项审查都做,否则只运行可维护性审查者。该循环已应用正确性审查标准,后续各轮也已审查每项修复。若在该最新修订之后又有提交,或范围更广,则需要运行两位审查者。只有确定了要运行哪种情况(两位审查者,或仅运行可维护性审查者,并记录对应的结论行和修订)时,检查才算完成。
  3. 为第 2 步保留的每位审查者解析已安装的审查标准:正确性审查使用 /thermo-nuclear-review,可维护性审查使用 /thermo-nuclear-code-quality-review。每项保留的审查标准都是必需依赖。向每位审查者提供对应 SKILL.md 的绝对路径,并让其读取该文件;如果子上下文无法访问该技能,则提供完整的审查标准文本。子 Agent 可能无法继承技能发现能力或父上下文。如果缺少依赖,请指出缺少项,并在给出 Thermos 结论前停止。只有每位审查者都获得其审查标准的绝对路径或完整文本后,解析才算完成。
  4. 收集差异、变更文件列表、相关文件的完整内容,以及已知约束。为每位审查者提供相同的范围和证据,并开放仓库访问权限,以便追踪调用方和相关代码。对于大型差异,提供可访问的产物路径,而不是被截断的摘录。列出已读取的仓库指南文件,以及其中与审查范围相关的规则,这样审查者只需继续阅读这些文件未涵盖路径的其他指南。只有在所有审查者都能访问证据和指南列表后,准备工作才算完成。

委派

根据当前会话中提供的工具,选择对应分支。使用实际工具架构;不同宿主版本中的工具名称和参数可能有所不同。使用内置 Agent,不要要求注册自定义 Agent、安装插件、使用特定模型或建立 Agent 团队。

Codex

使用原生 spawn_agent 工具(也可能通过协作命名空间提供)启动审查者。在每项任务消息中附上审查标准和范围。宿主支持时,使用不同的任务名称。先启动所有审查者,再等待任何一个。使用宿主的原生等待或完成机制收集所有结果;如果宿主提供关闭工具,则关闭已完成的 Agent。

Claude Code

使用原生 Agent 工具;旧版本中称为 Task,并将内置 subagent_type: "general-purpose" 用作 subagent_type。支持时,同时提交调用并设置 run_in_background: true。否则,使用该工具支持的并发派发方式。不要覆盖模型,以继承当前会话的选择。通过完成通知或工具返回的输出/任务句柄,收集每项审查的结果。

无法委派

如果子 Agent 工具不可用、受到阻止,或没有足够的名额分配给每位审查者,请报告这一限制。在允许的情况下,按顺序分别完成各项指定的评审标准,并将结果标注为顺序评审,且未使用独立子 Agent。如果某位已派出的审查者失败,且故障可恢复,则重试该审查者一次;否则,请报告缺失的评审环节,或在本地完成该环节并说明相应限制。只有一项独立审查完成时,绝不要声称完成了两项独立审查。

审查者任务

分配以下任务;只有在 Prepare 步骤 2 确认正确性审查已覆盖相关内容时,才分配可维护性审查。向每位审查者提供准备好的范围和证据:

  • 正确性与安全性: 使用提供的评审标准调用 /thermo-nuclear-review。追查差异引入的错误、破坏性行为、安全风险、开发者体验退化,以及功能门控泄漏。如果评审标准要求,先完成独立审计,再检查现有 PR 讨论。
  • 可维护性: 使用提供的评审标准调用 /thermo-nuclear-code-quality-review。评估差异引入的结构简化、分支复杂度、抽象、类型与所有权边界、规范化辅助工具,以及文件增长。

每位审查者均应独立工作,不得进一步委派、编辑、提交或发布评论。阅读周边代码以核实影响,但只报告限定改动范围内引入的问题。按优先级返回发现,并提供文件和行号、证据、影响及可执行的解决建议。区分已核实的发现与因无法核实而受限的部分。如果没有剩余的、有依据的发现,请明确说明。所有审查完成前,各项审查应保持独立。

综合

等待所有已启动的评审完成,或明确说明失败情况。对照代码核查重叠的发现,合并重复项,并依据证据解决分歧。仅仅达成一致并不会提高严重性。将正确性缺陷与可维护性建议区分开,并保留评审标准对结构性阻碍的说明理由。

先列出发现,并按影响排序,随后给出简短结论和重要限制。说明哪些评审环节已完成,以及它们是否由独立并行子 Agent 执行。如果正确性审查跳过了 Prepare 步骤 2,请引用 /review-loop 的结论行以及覆盖该结论的 head。如果审查进行期间范围发生变化,请在给出结论前重新核对受影响的发现。如果各审查者的摘要已对用户可见,请勿大篇幅重复;只需给出综合结论、最重要的发现和任何尚存的不确定性。

评论

支持 Markdown