Interrogate 是一个对抗式代码审查技能,核心思路是让多个不同模型各自独立审查同一份代码变更,再综合它们的发现形成统一裁决。对抗信号来自模型之间的多样性,而不是给审查者分配不同的人设角色。该技能的交付物是一份综合裁决,不会自动应用任何更改。
用途
Interrogate 用于对代码变更进行对抗式、多模型审查,帮助发现盲点、挑战现有实现、对代码进行压力测试。触发词包括 interrogate、adversarial review、multi-model review、challenge this、stress test this code、find blind spots、tear this apart。
主要能力
该技能会为每个已配置的模型启动一个审查者,分别对代码变更进行对抗式审查。审查者使用统一的提示模板,包含声明的意图、diff 或文件内容、评分标准以及代码质量视角。随后技能会解析每位审查者的发现,合并描述同一问题的条目,并标注哪些模型提出了哪些问题。两个或以上模型独立提出的发现被视为最高信号。技能还会记录模型之间的分歧,作为裁决的参考背景。
使用方式
第一步是确定审查范围。如果用户指向特定文件或 diff,就使用该范围;如果在功能分支上,运行 git diff main...HEAD(或适当的基础分支)获取完整变更集;如果用户消息提到近期工作,则收集相关文件。将 diff 或文件内容与审查者理解代码所需的上下文文件一起打包。
第二步是明确意图。在启动审查者之前,根据用户消息、提交信息、PR 描述(如有)和代码,用一段清晰的文字陈述意图。如果不确定意图,应先询问用户再继续。
第三步是启动审查者。在单条消息中使用 Agent 工具启动所有审查者,每个对应 pstack-models.md 中 interrogate reviewers 行的一个条目,按条目数量标记为 Reviewer A、B 等。如果该表或该行缺失,则使用表格默认值:Reviewer A 为 opus,Reviewer B 为 fable,Reviewer C 为 sonnet,Reviewer D 为 haiku。每位审查者使用 subagent_type: "general-purpose"、readonly: true,并将 model 设为其配置条目或表格默认值。对于 auto 或 inherit-parent 条目,省略 model,使该审查者运行在父模型上。如果 Agent 工具拒绝某个配置条目,则让该审查者运行在其所属家族的表格默认值上并说明;家族按模型名称划分,如 Opus、Fable、Sonnet。如果没有家族匹配,使用 Reviewer A 的默认值。如果表格默认值也被拒绝,则使用错误信息中有效 slug 里最接近的等价项(优先同家族和同推理层级),并另开一个 PR 更新默认表。不要因 slug 问题阻塞审查。绝不将别名条目视为被拒绝的 slug,也不对其应用任何回退。
读取 references/reviewer-prompt.md,为每位审查者填入相同模板,包含声明的意图、diff 或文件内容、references/rubric.md 中的评分标准,以及 references/code-quality-review.md 中的代码质量视角。
第四步是综合。随着结果返回,构建统一图景。解析每位审查者的发现,合并描述同一问题的条目,并记录哪些模型提出了每项发现。两个或以上模型独立提出的发现是最高信号。单独模型的发现也要阅读,但相应加权。记录分歧:如果一个模型标记了某问题而另一个明确表示相反,这是裁决的背景信息。
第五步是主导判断。作为主导审查者,你是一位务实的资深工程师,而不是中立的聚合器。读取 references/lead-judgment.md 获取完整框架。将每项发现放入四个桶之一,并附上提出它的模型和一行理由:Act on(真实问题,影响正确性、安全性或可维护性,会阻塞真实 PR)、Consider(合理,但不确定现在处理是否值得成本,值得用户关注)、Noted(技术上有效但不可操作,依赖上下文、过早优化或当前阶段影响低)、Dismissed(错误、吹毛求疵或缺少上下文,附简要原因)。
输出格式
输出包含:Intent(第二步声明的意图段落)、Reviewers(每位审查者一行:标签、模型名、发现数量)、Act On(每项:描述、哪些模型提出、为何重要)、Consider(每项:描述、哪些模型提出、权衡)、Noted(简要列表)、Dismissed(每项附简要理由)、Agreement Map(模型在哪里一致、在哪里分歧,以及该模式说明了什么)。
推理强度
覆盖表中的角色值可以在模型名后指定推理强度,如 opus @xhigh。Claude Code 上的级别有 low、medium、high、xhigh、max,具体适用哪些取决于模型。不带 @ 的值采用表中的默认 effort 行(一个级别或 session),表中没有该行时用 session。session 不设置强度,因此派发为常规方式。读取模型前先去掉后缀:inherit-parent 或 auto 在任何级别下仍省略 model,模型名则作为 model 传入。在 Claude Code 上,级别会选择对应 subagent_type 的 effort agent:pstack:poteto-agent 变为 subagent_type: "pstack:poteto-agent-<level>";general-purpose 或无 subagent_type 变为 subagent_type: "pstack:effort-<level>"。effort agent 只设置强度,因此传入的 model 仍决定模型。在 Codex 上,将级别作为 spawn_agent 的 reasoning_effort 传入,并保留常规指令。
平台说明
在 Codex 上,遵循该技能前先阅读平台映射,包括其按技能说明。在 GitHub Copilot 上,遵循该技能前先阅读平台映射,包括其按技能说明。
适用场景与限制
适用于需要对代码变更进行多角度对抗式审查、寻找盲点或压力测试的场景。该技能不会自动应用更改,最终裁决需要人工判断。审查者数量取决于配置的模型条目,默认最多四位。关于具体收费、价格、平台支持范围等信息,资料中暂未提供。