Home / All Skills / Workflow & Core Tools / interrogate
Workflow & Core Tools · 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.

L2 Local · Restricted workspaceV1 Commit-PinnedWrite FileDual-pass Audit
Author cursorGitHub cursor/plugins ↗Stars 7799License MIT(pstack 插件自带 LICENSE,'Copyright (c) 2026 Lauren Tan';pstack/.cursor-plugin/plugin.json 声明 "license": "MIT")。注意 cursor/plugins 仓库根目录没有 LICENSE 文件,GitHub API 的 license 字段为 null——授权只落在各插件目录自身。Commit df3fb154fb
Control levels describe skill capabilities and suggested control measures; they do not represent quality or safety certifications, nor do they dictate usability. Usage decisions rest entirely with users and administrators. Different agent hosts apply varying constraints; do not assume hosts provide automatic protection. Third-party skill copyrights belong to their original authors. Use at your own risk.

1How It Works & Mechanism

The core mechanism is "model diversity as an adversarial signal": the same diff, prompt, and rubric are submitted to N read-only subagents from **different model families** for independent reviews, without relying on persona roleplay.

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.
What is happening here: The source of "adversariality" shifts from prompt personification ("You are a strict reviewer") to statistical independence—different models have distinct blind spots, so two models independently raising the same issue serves as a high-confidence signal (which drives the Step 4 consensus determination).

Read-only, verdicts only: Review subagents are spawned in readonly mode, and this skill explicitly forbids automatically applying any modifications.

pstack/skills/interrogate/SKILL.md
The deliverable is a synthesized verdict. Do NOT auto-apply changes.
Step 3 sets the subagent parameters: `subagent_type`: `generalPurpose`, `readonly`: `true`. This keeps the workflow strictly at "reporting" rather than "code modification", establishing a clear division of labor with file-writing skills in the same repository (e.g., show-me-your-work, create-verification-skill).

The review scope is determined by context, with the most typical input being the actual CLI invocation point `git diff main...HEAD`.

pstack/skills/interrogate/SKILL.md
- If on a feature branch, run `git diff main...HEAD` (or the appropriate base branch) for the full changeset
The other two paths are "user-specified files/snippets" and "locating related files based on recent work". Once the diff is obtained, surrounding context files must also be bundled and passed to reviewers ('Package the diff (or file contents) plus any surrounding context files').

The number of reviewers and their models are driven by user-level configuration: it reads the `interrogate reviewers` list in ~/.cursor/rules/pstack-models.mdc, falling back to the built-in four-model list only when omitted.

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.
Built-in 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—intentionally spanning three providers. This configuration is generated by the setup-pstack skill in the same repository (see setup-pstack reconnaissance).

Prompt templates and acceptance rubrics are externalized in references/, locking in the principle of "challenge execution, not intent", a 3-tier severity scale (critical/warning/nit), and a structured output format.

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.
The same file immediately locks the objective: '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.'—keeping questions about "whether this should be done" out of the review and preventing reviewers from stalling into product discussions.

The synthesis phase is not a simple concatenation: it identifies consensus using "2+ models independently flagging = high signal", retains lone-model findings with reduced weight, deduplicates differing phrasings of the same issue, and explicitly records inter-model disagreements.

pstack/skills/interrogate/SKILL.md
2. **Identify consensus**. Findings raised by 2+ models independently are highest signal.
Step 4 follows five steps: Parse all findings → Identify consensus → Identify lone-model findings (downweighted) → Deduplicate (consolidate and attribute source models) → Note disagreements (one model reporting an issue while another explicitly says it's fine is itself a decision criterion).

The final step is "lead judgment" rather than neutral aggregation: the role of the human lead reviewer is explicitly built into the workflow, producing outputs categorized into four buckets (Act on / Consider / Noted / Dismissed), with each item annotated with the models that raised it.

pstack/skills/interrogate/SKILL.md
You are the lead reviewer, a pragmatic senior engineer, not a neutral aggregator.
lead-judgment.md provides filtering principles (nitpick gravity, hypothetical vs actual, premature abstraction, 'I would have done it differently' as the most common false positive, missing context signals) and deliberate artifact discipline: 'If your "Act On" list has more than 5 items, you're probably not filtering hard enough.'

In addition to the general rubric, a rigorous code quality lens is forcibly layered on (imposing standards on structural simplification, file size, and spaghetti growth far above standard code reviews).

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.
The baseline prompt for this lens is 'Perform a deep code quality audit of the current branch's changes.', requiring proactive identification of "code judo" refactoring and featuring an explicit Approval Bar (treating several structural issues as blockers by default)—far stricter than the general rubric in SKILL.md, serving as the dividing line between this skill and standard "multi-model reviews".

Graceful degradation is supported: when a model slug cannot be resolved, the review does not block; it falls back to the strongest tier within the same family, extracts a valid slug from error messages, and opens a separate PR to fix default values.

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.
The aliases `inherit-parent` / `auto` are specially exempted: instead of being treated as invalid slugs, the model field is omitted to let the subagent inherit the parent session model (preventing users on Auto tier from being falsely flagged for broken configuration).

2Core Capabilities

01Multi-model adversarial code review orchestration (concurrently launches all review subagents in a single message)
02Review intent anchoring: drafts an intent statement first (derived from user message/commit/PR description/code), prompts user if uncertain, then directs reviewers to audit execution issues against that intent
03Cross-provider model redundancy (default 4-way setup: claude / gpt / grok / claude-opus), with configurable reviewer count
04Tri-state classification (consensus / lone-model / disagreement) with source model attribution and deduplication
05Lead reviewer filtering framework: 4-bucket classification + single-sentence rationale per item to prevent delivering raw noise as conclusions
06Fixed output structure: Intent / Reviewers / Act On / Consider / Noted / Dismissed / Agreement Map
07Strict code quality lens: prioritizes structural simplification, 1k-line file threshold, spaghetti growth, clean types/boundaries, and unnecessary serial orchestration
08Adaptive degradation upon broken configuration (continues review without stalling on slug issues)

3External Dependencies

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

4Recommended Governance & Evidence

Suggested Controls for Safe Operation
For Agent Runtime
Restrict working directory
For Administrators
Retain operation logs
Evidence & Triggers (File Paths & Excerpts)
  • 本地文件: Operate on local project files or workspace artifacts
Audit Notes: . Reason: The skill itself is purely prompt orchestration—no script execution, no native network requests, no reading of credentials/environment variables, and no file modifications. All actions consist of local reads (git diff / reading files) combined with subagent dispatch provided by the host. Note its inherent design purpose: diffs and surrounding context are sent to models from multiple external providers for review (defaulting to 4 paths); transferring code content to model providers is an intended feature rather than a side effect. While subagents are marked readonly, this restricts write permissions only, not outbound data flow. Trigger condition: Activated only when users explicitly invoke /interrogate or triggers like "adversarial review / tear this apart" (frontmatter includes disable-model-invocation: true, preventing automatic invocation by models).

5Second-Pass Verification

  • [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 插件目录)」有据。

6Verdict & Scenarios

  • Turns "adversariality" into a reproducible engineering mechanism rather than persona roleplay: same prompt and rubric × diverse model families, quantifying signal strength via consensus/lone-model/disagreement states.
  • Exceptionally strict output discipline: 4-bucket categorization, model attribution per item, maximum of 5 Act On items, and mandatory rationales for Dismissed items (defined as a trust mechanism).
  • Review scope is anchored (intent is drafted first and cannot be challenged), drastically reducing stalling and scope drift common in multi-model reviews.
  • The code quality lens is sufficiently rigorous to yield architectural improvements rather than style noise (1k-line threshold, spaghetti prevention, canonical layer enforcement, code judo).
  • Zero-side-effect read-only posture + composable configuration (shares the same role-model mappings with arena/swarm/poteto-mode).
  • Best for: Best for: Engineering teams with the Cursor plugin ecosystem (pstack family) configured, who have real diffs (feature branches / PRs) and want multi-model stress-testing prior to merging. Especially suitable for teams that have experienced single-model reviews missing obvious issues and are willing to invest time and cost into multi-vendor redundancy. Naturally pairs with /architect and /arena during the "design finalized, implementation pending review" phase.
    Not for: Not suitable for: ① Compliance environments where code cannot be sent to multiple external model providers (unless reviewers are restricted to approved models); ② Scenarios requiring automated fixes—it explicitly provides verdicts only without modifying code; ③ Budget- or time-sensitive small changes (single-model or standard review is more cost-effective); ④ Pipelines requiring machine-verifiable results (no test assets or structured schemas; outputs a human-readable report); ⑤ Users with unclear intent who are unwilling to answer intent questions—the workflow halts at Step 2 to wait.
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload interrogate.tar.gz
    sha256: 8282cc302a8de1c3…
    Option B · Copy Guide for Agent
    install.json
    Agents automatically download and verify mirrors from this JSON guide.
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit df3fb154fb.