基础工具与工作流 · cursor/plugins

interrogate

Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart". Multiple LLM reviewers challenge changes from independent angles.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 cursorGitHub cursor/plugins ↗Stars 7799许可 MIT(pstack 插件自带 LICENSE,'Copyright (c) 2026 Lauren Tan';pstack/.cursor-plugin/plugin.json 声明 "license": "MIT")。注意 cursor/plugins 仓库根目录没有 LICENSE 文件,GitHub API 的 license 字段为 null——授权只落在各插件目录自身。commit df3fb154fb
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

核心机制是「模型多样性即对抗信号」:同一份 diff、同一份 prompt、同一份 rubric,交给 N 个**不同模型家族**的只读子代理各审一遍;不做 persona 扮演。

pstack/skills/interrogate/SKILL.md
Spawn one reviewer per configured model to adversarially review code changes. Each model gets the same prompt and rubric. The adversarial signal comes from model diversity, not assigned personas.
注:这里在做什么:把「对抗性」的来源从提示词人格化("你是严格的评审者")换成统计上的独立性——不同模型的盲区不同,两个模型独立提出同一条就是高置信信号(Step 4 的 consensus 判定据此)。

只读、只给结论:评审子代理以 readonly 模式拉起,本 skill 明确禁止自动应用任何改动。

pstack/skills/interrogate/SKILL.md
The deliverable is a synthesized verdict. Do NOT auto-apply changes.
注:同一份文件在 Step 3 给出子代理参数:`subagent_type`: `generalPurpose`、`readonly`: `true`。这让整条流程停在「报告」而不到「改代码」,与同仓库会写文件的 skill(如 show-me-your-work、create-verification-skill)形成分工。

评审范围由上下文决定,最典型的输入是 `git diff main...HEAD` 这条真正的 CLI 调用点。

pstack/skills/interrogate/SKILL.md
- If on a feature branch, run `git diff main...HEAD` (or the appropriate base branch) for the full changeset
注:另两条路径为「用户点名文件/片段」和「根据近期工作找相关文件」;拿到 diff 后还要把周边上下文文件一并打包给评审者('Package the diff (or file contents) plus any surrounding context files')。

评审者数量与模型由用户级配置驱动:读 ~/.cursor/rules/pstack-models.mdc 的 `interrogate reviewers` 列表,缺省才用内置四模型表。

pstack/skills/interrogate/SKILL.md
Launch all reviewers in a single message using the Task tool. Use the `interrogate reviewers` list from `~/.cursor/rules/pstack-models.mdc` when present, one reviewer per entry, extending or shrinking the Reviewer A/B/C/D labels below to the configured entry count. Otherwise use the table defaults.
注:内置默认:Reviewer A claude-fable-5-1-thinking-max、B gpt-5.6-sol-max、C grok-4.6-fast-xhigh、D claude-opus-5-thinking-xhigh——刻意跨三个厂商。这份配置由同仓库的 setup-pstack skill 生成(见 setup-pstack 侦查)。

提示词模板与验收标准都外置成 references/,其中固定了「质疑执行、不质疑意图」和 severity 三档(critical/warning/nit)与结构化输出格式。

pstack/skills/interrogate/references/reviewer-prompt.md
You are an adversarial code reviewer. Find real problems in the code below: bugs, design flaws, security issues, and maintainability concerns. You are not here to be helpful or encouraging. You are here to stress-test.
注:同文件紧接着锁死目标:'You are reviewing whether the code achieves this intent well. Do NOT question the intent itself. Assume the goal is correct and challenge the execution.'——把「要不要做这件事」排除在评审之外,避免评审者空转成产品讨论。

合成阶段不是简单拼接:按「2+ 模型独立命中 = 高信号」做共识识别,保留孤证但降权,合并同一问题的不同表述,并显式记录模型间分歧。

pstack/skills/interrogate/SKILL.md
2. **Identify consensus**. Findings raised by 2+ models independently are highest signal.
注:Step 4 的五步:Parse all findings → Identify consensus → Identify lone-model findings(降权)→ Deduplicate(合并并标注提出者)→ Note disagreements(一个说有问题、另一个明确说没事,本身就是判据)。

最后一步是「主导者判断」而不是中立聚合:人类主导评审者身份被显式写进流程,产出按 Act on / Consider / Noted / Dismissed 四桶分类,每条注明是哪些模型提的。

pstack/skills/interrogate/SKILL.md
You are the lead reviewer, a pragmatic senior engineer, not a neutral aggregator.
注:lead-judgment.md 给了过滤原则(nitpick gravity、hypothetical vs actual、premature abstraction、'I would have done it differently' 是最常见误报、missing context signals)以及刻意的产出物纪律:'If your "Act On" list has more than 5 items, you're probably not filtering hard enough.'

除通用 rubric 外还强制叠加一份很硬的代码质量 lens(对结构简化、文件大小、spaghetti 增长提出高于普通 code review 的要求)。

pstack/skills/interrogate/references/code-quality-review.md
1. **Do not let a PR push a file from under 1k lines to over 1k lines without a very strong reason.** Treat this as a strong smell.
注:该 lens 的基线提示词是 'Perform a deep code quality audit of the current branch's changes.',要求主动找「code judo」式重构,并有明确的 Approval Bar(默认把若干结构问题视为阻断项)——比 SKILL.md 里的通用 rubric 严厉得多,这也是本 skill 与普通「多模型 review」的分水岭。

有降级路径:模型 slug 不可解析时不阻塞评审,改选同族最强档并在错误信息里取有效 slug,同时另开 PR 修默认值。

pstack/skills/interrogate/SKILL.md
If a model slug is rejected as unresolvable when you try to spawn the subagent, check the valid slugs in the Task tool's error message, pick the closest equivalent (prefer the highest-reasoning tier of the same family), spawn with the valid slug, and open a separate PR to update the configured value or default table. Do not block the review on the slug issue.
注:`inherit-parent` / `auto` 两个别名被特别豁免:不当作坏 slug,而是省略 model 字段让子代理继承父会话模型(Auto 档用户不会被误判为配置损坏)。

2核心能力

01多模型对抗式代码评审编排(一消息内并行拉起全部评审子代理)
02评审意图锚定:先写一段 intent(来自用户消息/commit/PR 描述/代码本身),不确定时先问用户,再让评审者对着意图挑执行问题
03跨厂商模型冗余(默认 claude / gpt / grok / claude-opus 四路),且可按用户配置增删路数
04共识/孤证/分歧三态归类,附提出者溯源与去重
05主导者过滤框架:四桶分类 + 每条一句归类理由,防止把噪声当结论交付
06固定输出结构:Intent / Reviewers / Act On / Consider / Noted / Dismissed / Agreement Map
07严格代码质量 lens:结构简化优先、1k 行文件阈值、spaghetti 增长、类型/边界洁净度、无谓串行编排
08配置损坏时的自适应降级(保留评审继续,不因 slug 问题卡死)

3外部依赖

类型依赖
cligit(读取分支变动做评审输入)
apiCursor Task 子代理(多模型执行面:generalPurpose 子代理 + 指定 model slug)
network用户级配置文件 ~/.cursor/rules/pstack-models.mdc(读取 interrogate reviewers 一行)

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • 代码内容向多厂商模型外发是功能默认值 — 评审输入是 diff 加周边上下文文件,会被送进默认 4 个不同厂商的模型。私有/受合规约束的代码库需先确认允许外发的模型范围,或把 reviewers 列表收窄到已批准的那家。readonly 只约束写工具,不改变数据流向。
  • 成本与时长随模型数线性放大 — 默认 4 路评审者,每个都拿到完整 diff + rubric + code-quality lens(提示词很长),且可配置得更多(列表长度即评审者数量)。大型分支上这是显著的时间与费用开销。
  • 提示词注入面(被评审代码是外部输入) — diff 中的注释/字符串理论上可嵌入指令影响评审者。危害被限定在「评审结论被误导」——因为评审者只读、主导者要过滤、且没有任何自动应用。但用户不应把输出的 Act On 清单当作可信背书。
  • 唯一越出只读边界的指令:模型 slug 被拒时让 agent 自动开 PR 修配置 — SKILL.md 指示 'open a separate PR to update the configured value or default table'。这会在用户仓库产生实际写操作(分支+PR),尽管对象是配置值;不希望被自动开 PR 的团队需在本地约定层面覆盖该指令。
  • 模型 slug 是时效性依赖 — 默认表里的 slug(claude-fable-5-1-thinking-max 等)会随供应商迭代失效;skill 提供了降级,但降级意味着实际评审模型的组合与预期不同,评审结论的可比性下降。
  • 结论质量仍取决于主导者过滤,缺乏可自动校验的验收 — 除「Act On ≤5 条」这条软纪律外,没有任何机制验证 verdict 的完备性,也无测试资产;输出好坏的判断权在用户手里。
风险提醒:蓝色,知晓即可。理由:skill 本体是纯提示词编排——无脚本执行、无自带网络调用、无凭证/环境变量读取、无文件写入,全部动作都是本地读取(git diff / 读文件)加上宿主提供的子代理调度。需要知晓的是它的设计目的本身:把代码 diff 与周边上下文交给多个不同厂商的模型评审(默认 4 路),即「代码内容向模型供应商外发」是功能而非副作用;子代理虽标 readonly,也只约束写权限而非数据流向。触发条件:仅用户显式说 /interrogate 或「adversarial review / tear this apart」等触发词时启用(frontmatter 带 disable-model-invocation: true,模型不会自动发起)。

5第二遍独立确认

  • [ok] 「每模型一个评审者」是否真按配置读 — SKILL.md Step 3 明写从 ~/.cursor/rules/pstack-models.mdc 的 `interrogate reviewers` 取列表,'one reviewer per entry, extending or shrinking the Reviewer A/B/C/D labels';配置缺失才落回四模型默认表。setup-pstack 的 SKILL.md 第 55 行确实生成 'interrogate reviewers: claude-fable-5-1-thinking-max, gpt-5.6-sol-max, grok-4.6-fast-xhigh, claude-opus-5-thinking-xhigh',两端严丝合缝。
  • [ok] 只读与「不自动应用」两个断言 — SKILL.md 第 11 行 'The deliverable is a synthesized verdict. Do NOT auto-apply changes.';第 48 行子代理参数 '`readonly`: `true`'。仓库其他位置(docs/guide/04-design.md)亦复述 'applies nothing automatically'。无写文件指令。
  • [ok] 外部依赖清单的完备性(是否有漏网 CLI/API) — token 扫描仅 `git diff main...HEAD` 一处命令;其余依赖都是宿主的 Task 工具与本地配置文件。不存在壳脚本、curl、MCP 端点或第三方 SaaS 调用。
  • [ok] 安全面:有无凭证读取或隐蔽网络 — 六个文件对 API_KEY/token/secret/env/curl/requests/http 零命中;无脚本文件可执行任何东西。第一遍判定的 blue 档依据(本地读写 + 宿主调度)成立。
  • [ok] 功能声明是否有夸大('Multiple LLM reviewers challenge changes from independent angles.') — Step 3 用同一模板喂所有评审者(reviewer-prompt.md 明确 placeholders),所以「independent」指的是模型家族不同而非提示词不同——SKILL.md 自己在第一段就澄清 'The adversarial signal comes from model diversity, not assigned personas',措辞与实现一致,未夸大。
  • [ok] 配置损坏时的降级行为是否可能造成意外(自动开 PR) — SKILL.md 指示 'open a separate PR to update the configured value or default table'——这是让 agent 在仓库里另开 PR 的动作指令,属跨出「只读评审」范围的唯一指令。它只在模型 slug 被拒时才触发,且对象是配置仓库;用户若不希望自动开 PR,应在使用前知悉。已在 risks 中列出。
  • [ok] installs 数值可信度 — installs=3 直接取自池内 pool.json(source 'skills.sh-hot',同时 github_stars/license/last_push 为 null);该数字明显是 skills.sh 热度榜的低值采样,不代表真实装机量,故 meta 中照录池值、stars 与 last_push 用 gh api 实采(7799 / 2026-09-15T03:14:54Z)。
  • [ok] 授权归属 — 仓库根无 LICENSE(gh api license=null);MIT 只存在于 pstack/LICENSE(Copyright (c) 2026 Lauren Tan)与 pstack/.cursor-plugin/plugin.json 的 "license": "MIT"。结论「MIT(限 pstack 插件目录)」有据。

6结论

  • 把「对抗性」做成可复现的工程机制而非人格设定:同 prompt 同 rubric × 不同模型家族,再用共识/孤证/分歧三态量化信号强度。
  • 输出纪律罕见地严格:四桶分类、每条溯源到模型、Act On 上限 5 条、Dismissed 必须给理由(被定义为信任机制)。
  • 评审目标被锚定(先写 intent,且不许质疑 intent),极大降低多模型评审最常见的空转与跑偏。
  • 质量 lens 足够硬,能产出结构性改进而非 style 噪声(1k 行阈值、spaghetti、canonical layer、code judo)。
  • 零副作用的只读姿态 + 配置可组合(与 arena/swarm/poteto-mode 共享同一份角色-模型映射)。
  • 适合:适合:已经把 Cursor 插件生态(pstack 系)装好、手里有真实 diff(feature 分支 / PR)并希望在合并前多模型压测的工程团队;尤其适合那些吃过「单模型评审漏掉明显问题」亏、且愿意为多供应商冗余支付时间与费用的场景。与 /architect、/arena 组合用于「设计已定、实现待审」阶段最自然。
    不适合:不适合:① 不能把代码外发到多家模型供应商的合规环境(除非把 reviewers 收窄到获批模型);② 想要自动修好问题的场景——它明确只给 verdict,不改代码;③ 预算/时间敏感的小改动(单模型评审或普通 review 更划算);④ 需要机器可验证结论的流水线(无测试资产、无结构化 schema,输出是给人读的报告);⑤ 意图不清且不愿先回答 intent 提问的用户——流程会在 Step 2 停下等人。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 interrogate.tar.gz
    sha256: 8282cc302a8de1c3…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit df3fb154fb;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库cursor / cursor/plugins
    原始 GitHubcursor/plugins ↗
    Stars7799
    最近推送2026-09-15
    本 skill commitdf3fb154fb
    许可MIT(pstack 插件自带 LICENSE,'Copyright (c) 2026 Lauren Tan';pstack/.cursor-plugin/plugin.json 声明 "license": "MIT")。注意 cursor/plugins 仓库根目录没有 LICENSE 文件,GitHub API 的 license 字段为 null——授权只落在各插件目录自身。
    本站信息
    收录日期2026-09-06
    分类基础工具与工作流
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近