interrogate
Interrogate
Section titled “Interrogate”给每个配置好的模型开一个评审者,对代码改动做对抗性评审。每个模型拿到同样的提示词和评审标准。对抗性来自模型之间的差异,而不是给它们分配不同的角色。
交付物是一份综合后的 verdict(结论)。不要自动应用任何改动。
第 1 步:确定范围
Section titled “第 1 步:确定范围”根据上下文判断要评审什么:
- 用户指了具体文件或某个 diff,就评审那些
- 在 feature 分支上,就运行
git diff main...HEAD(或对应的基础分支),拿到完整的改动 - 用户的消息提到最近做的工作,就把相关文件找齐
把 diff(或文件内容)打包,再加上评审者理解代码所需的周边上下文文件。
第 2 步:写明意图
Section titled “第 2 步:写明意图”开评审者之前,先把意图明确写出来。依据这些来源:
- 用户的消息
- commit 信息
- PR 描述(如果有)
- 代码本身
写一段清楚的话。如果拿不准意图,先问用户,再往下走。
第 3 步:开出评审者
Section titled “第 3 步:开出评审者”用 Task 工具在一条消息里启动全部评审者。用 ~/.cursor/rules/pstack-models.mdc 里的 interrogate reviewers 这一行,每个条目一个评审者,把下面 Reviewer A/B/C 的标签按配置的条目数增减。如果没有这条 rule 或没有这一行,用表里的默认值。
| 子代理 | 默认模型 |
|---|---|
| Reviewer A | claude-opus-5-5-max |
| Reviewer B | gpt-5.6-sol-max |
| Reviewer C | grok-4.7-xhigh-fast |
每个评审者:
subagent_type:generalPurposemodel:配置的interrogate reviewers条目;没有配置这一行时用表里的默认值。条目是auto或inherit-parent时,省略model,让这个评审者跑在父模型上。readonly:true
如果 Task 工具拒绝某个配置的条目,这个评审者改用同一模型族在表里的默认值,并说明这件事。模型族按前缀分:claude-*、gpt-*、grok-*。哪个族都对不上时,用 Reviewer A 的默认值。如果连表里的默认值也被拒,就看 Task 工具报错信息里列出的有效 slug,挑最接近的等价模型(优先同一族里推理档位最高的),用它开评审者,另开一个 PR 更新默认值表。不要因为 slug 的问题卡住评审。别名条目绝不当作被拒的 slug,两种回退都不用在它身上。
读 references/reviewer-prompt.md,把模板填上:
- 写明的意图
- diff 或文件内容
references/rubric.md里的评审标准references/code-quality-review.md里的代码质量视角
所有评审者拿到的是同一份填好的模板,所以每个模型都会用上代码质量视角。
第 4 步:综合
Section titled “第 4 步:综合”结果陆续回来时,拼出一张完整的图:
- 把评审者的所有 finding(评审发现的问题)拆出来
- 找出共识。两个或更多模型各自独立提出的 finding,信号最强。
- 找出只有一个模型提的 finding。仍然值得读,但权重相应调低。
- 去重。不同模型可能用不同说法描述同一个问题。合并它们,并注明是哪些模型提的。
- 记下分歧。一个模型指出某个问题,另一个明确说相反的话,这对下 verdict 是有用的背景。
第 5 步:主审裁定
Section titled “第 5 步:主审裁定”你是主审,是一个务实的资深工程师,不是不偏不倚地汇总意见的人。
完整的判断框架见 references/lead-judgment.md。
把每条 finding 归进下面几类:
- 要处理。结合真实目标看,确实影响正确性、安全或可维护性的问题。放在真实的 PR 里会挡住合并。
- 可以考虑。说得有道理,但不确定它值不值得现在就花成本去处理。值得用户看一眼。
- 记下即可。技术上成立,但没什么可做的。要看具体情况、属于过早优化,或者以目前的阶段影响很小。
- 驳回。说错了、吹毛求疵,或者缺少上下文。简短说明理由。
每条 finding 都写上:
- 哪个或哪些模型提的
- 归在哪一类(要处理 / 可以考虑 / 记下即可 / 驳回)
- 一行话说明为什么这样归类
按下面的结构给出 verdict:
[第 2 步写明的意图段落]
- Reviewer [标签]:[模型名],[N 条 finding](每个评审者一条)
[应该处理的 finding。每条写:问题是什么、哪些模型提的、为什么重要。]
[值得想一想的 finding。每条写:问题是什么、哪些模型提的、涉及什么取舍。]
[成立但优先级低。简短列出。]
[被驳回的 finding,附简短理由。]
[模型在哪里一致、在哪里分歧,这种一致和分歧的规律说明了什么?]
