name: interrogate description: >- Multi-reviewer adversarial review of a diff or change, with a counter-adversarial judge. Use when asked for an adversarial, multi-reviewer, or multi-model review of a change — to challenge it, stress-test it, or find its blind spots — or on /interrogate. Not the push-then-review flow (mr-link).
interrogate
Fan out 3–4 independent reviewers against the same diff, then you judge. Nothing is auto-applied — report the buckets; the user (or the routing mode) decides.
mr-link owns the push-then-review flow (one fresh-context reviewer after
the create-MR link). This skill owns reviewing any diff on request. Don't
push, don't open an MR, don't run /c//p.
When to use this
- User runs
/interrogate(optionally scoped to a path, a diff, or a PR). - Asked to stress-test, challenge, or tear apart a change.
- A single-reviewer pass already ran and you want independent second opinions, not another read of the same context.
Workflow
-
Scope. User-pointed files or a named diff win. Else, on a feature branch,
git diff main...HEAD(or the real base). Package the diff plus any surrounding files a reviewer needs to understand the change. -
State the intent as one short paragraph before spawning anything, and fence it. Derive it from the user's message, commit messages, a PR description if one exists, and the code. Reviewers judge whether the code achieves the intent well, never whether the intent is right. If the intent is unclear, ask before proceeding.
-
Fan out 3–4 independent reviewers. Same prompt, same rubric, zero shared context. Don't tell them about each other. Spawn them all at once, not sequentially. Read-only. While they run, read the diff and
references/lead-judgment.mdyourself — step 4 needs your own read of the call sites and shouldn't start from zero when they return.- Inside herdr (
HERDR_ENV=1): dispatch as panes of different agent kinds (codex, gemini, grok — real model-family diversity). Loadherdrfor pane split/wait. Launch withherdr agent start <name> --kind <kind> --pane <new-pane>, thenherdr agent prompt. Anything longer than one line goes through a file; send a one-line pointer (herdr-handoff).agent promptsubmits through the TUI;pane runmangles it. - Outside herdr: background subagents — independent fresh contexts still beat one reviewer, even when the harness only has one model family. Prefer distinct families when the harness offers them.
- Inside herdr (
-
Judge after all reviewers return (or say who timed out). You are the lead, not a fifth spawned judge. Read
references/lead-judgment.mdand bucket every finding. Act on holds only what would actually block the PR — a list the user can fix and ship, not a ranking. Never drop Dismissed. -
Report in the shape below. Then stop — no fixes until asked.
Reviewer prompt
Fill this template. Every reviewer gets the same filled copy.
You are an adversary, not a cheerleader. Find real problems: bugs, design
flaws, security issues, maintainability. "no findings" is a valid result —
never pad.
## Intent
> {INTENT}
Review whether the code achieves this intent well. Do not question the
intent itself.
## Code under review
{DIFF_OR_FILES}
For each finding:
- **Severity**: `critical` | `warning` | `nit`
- **Location**: file:line (or function)
- **Finding**: what's wrong, in concrete terms
- **Evidence**: why you believe it; show the path. Don't just assert.
Read-only. Do not edit files, commit, or "fix" anything. If you find
nothing, say "no findings" and stop.
Output
Intent
the fenced paragraph from step 2
Reviewers
- Reviewer [kind/label]: [N findings] (one bullet each)
Act On
Real issues that would block a PR. Each: description, who raised it, why it matters.
Consider
Legitimate, but you're not sure they outweigh the cost right now.
Noted
Technically valid, not actionable at this stage.
Dismissed
Rejected findings with a one-line reason each. This is a trust mechanism — never drop the section.
Agreement Map
Which findings 2+ independent reviewers raised (high confidence) vs lone-reviewer findings. Merge paraphrases of the same issue; note disagreements.
Notes
- Don't pad. An all-nits round means the code is probably fine — say so.
- Security and correctness get extra scrutiny even from a single reviewer.
- Complements
/robust-review(maintainability lens, one reviewer) and/blast-radius(prove the one safety fact by running code). Don't collapse those jobs into this one.
