From opencode
Run a steerable adversarial OpenCode review that challenges implementation and design decisions
How this command is triggered — by the user, by Claude, or both
Slash command
/opencode:adversarial-review [--wait|--background] [--base <ref>] [--model <id> | --free] [--pr <number>] [focus area or custom review instructions]This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
Run an adversarial OpenCode review through the shared built-in reviewer. Raw slash-command arguments: `$ARGUMENTS` Core constraint: - This command is review-only. - Do not fix issues, apply patches, or suggest that you are about to make changes. - Your only job is to run the review and return OpenCode's output verbatim to the user. Execution mode rules: - If the raw arguments include `--wait`, do not ask. Run the review in the foreground. - If the raw arguments include `--background`, do not ask. Run the review in a Claude background task. - Otherwise, estimate the review size before ask...
Run an adversarial OpenCode review through the shared built-in reviewer.
Raw slash-command arguments:
$ARGUMENTS
Core constraint:
Execution mode rules:
--wait, do not ask. Run the review in the foreground.--background, do not ask. Run the review in a Claude background task.git status --short --untracked-files=all.git diff --shortstat --cached and git diff --shortstat.git diff --shortstat <base>...HEAD.--pr <N> or a PR #N reference in the focus text), use gh pr view <N> --json additions,deletions,changedFiles and base the recommendation on those numbers (large PRs almost always go to background).git diff --shortstat is empty.AskUserQuestion exactly once with two options, putting the recommended option first and suffixing its label with (Recommended):
Wait for resultsRun in backgroundArgument handling:
--wait, --background, --model, --free, or --pr yourself.--adversarial internally.--model <id> overrides OpenCode's default model for this single review (e.g. --model openrouter/anthropic/claude-opus-4-6). Pass it through verbatim if the user supplied it.--free tells the companion script to shell out to opencode models, filter for first-party opencode/* free-tier models (those ending in :free or -free), and pick one at random for this review. Restricted to the opencode/* provider because OpenRouter free-tier models have inconsistent tool-use support, and the review agent needs read/grep/glob/list. Pass it through verbatim if the user supplied it. --free and --model are mutually exclusive — the companion will error if both are given.--pr <number> reviews a GitHub pull request via gh pr diff instead of the local working tree. The cwd must be a git repo whose remote points at the PR's repository, and gh must be installed and authenticated.PR reference extraction (REQUIRED — read this carefully):
PR #390, pr #390, PR 390, or pr 390, you MUST extract the number yourself and pass it as --pr 390. Then strip the matched PR phrase from whatever you put in the focus text.#NNN tokens as comments before they ever reach the companion script (e.g. bash -c 'node ... adversarial-review on PR #390' invokes node with argv ["adversarial-review", "on", "PR"] — the #390 is gone)./opencode:adversarial-review on PR #390 challenge the caching strategynode ... adversarial-review on PR #390 challenge the caching strategy (the #390 and everything after is silently dropped by bash)node ... adversarial-review --pr 390 'challenge the caching strategy'Focus text quoting (REQUIRED):
#, *, $, ;, &, |, <, >, parentheses, backticks, etc.), wrap the focus text in single quotes so bash passes it through unchanged. Single quotes preserve everything literally except the single-quote character itself.what's wrong here), use the standard '\'' escape: 'what'\''s wrong here'./opencode:adversarial-review challenge the design → node ... adversarial-review 'challenge the design'/opencode:adversarial-review --background look for race conditions in $RUNTIME → node ... adversarial-review --background 'look for race conditions in $RUNTIME'Foreground flow:
$ARGUMENTS using the PR reference extraction and Focus text quoting rules above. Pass through --wait, --background, --base, --scope, --model, and --pr flags as-is; convert any PR #N reference in the user's text to --pr N; single-quote whatever free-form focus text remains.node "${CLAUDE_PLUGIN_ROOT}/scripts/opencode-companion.mjs" adversarial-review <flags> [--pr N] ['<quoted focus text>']
Background flow:
$ARGUMENTS transformation as the foreground flow above (PR ref extraction + focus text single-quoting).Bash in the background:Bash({
command: `node "${CLAUDE_PLUGIN_ROOT}/scripts/opencode-companion.mjs" adversarial-review <flags> [--pr N] ['<quoted focus text>']`,
description: "OpenCode adversarial review",
run_in_background: true
})
BashOutput or wait for completion in this turn./opencode:status for progress."npx claudepluginhub johnnyvicious/opencode-plugin-cc --plugin opencode/adversarial-reviewRuns adversarial Codex review challenging implementation approach, design choices, tradeoffs, and assumptions on git-scoped codebase. Supports --wait, --background, --base <ref>, --scope, focus args.
/adversarial-reviewRun a Gemini review that challenges the implementation approach and design choices
/adversarial-reviewRun a Copilot review that challenges the implementation approach and design choices
/adversarial-reviewRuns an adversarial Pi review that challenges implementation approach, design choices, tradeoffs, and assumptions. Returns raw review output from the companion script.
/adversarial-reviewRun a Qwen review that challenges the implementation approach and design choices