/code-review: review depth is coupled to model effort, and `medium`/`high` are identical on Opus 5

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 1 comment · opened Jul 29, 2026

Summary

/code-review couples review depth to model reasoning effort, with two consequences on Opus 5:

  1. /code-review medium and /code-review high resolve to the same review prompt variant, so high changes only how hard the model thinks — not what the review does. The review's structure (single pass, no fan-out, no verify) is identical.
  2. There is no way to hold model effort at one level while running a deeper review shape. Passing a level arg raises the turn's model effort to that same level.

Request: let review depth be selected independently of model reasoning effort.

Detail

Inspecting the prompt variants shipped in the CLI (2.1.220), (level, model) maps to a review "cell". On claude-opus-5:

| level | review shape |
|---|---|
| low | 1 diff pass, no verify, ≤4 findings |
| medium | single careful diff pass, ≤15 findings, no subagents |
| high | same as medium — single careful diff pass, ≤15 findings, no subagents |
| xhigh | 10 angles worked inline, dedup, gap sweep, ≤15 findings |
| max | 10 finder subagents + per-candidate verifier + gap sweep |

On the generic/default mapping, medium and high both fan out to 8 finder subagents with a verify pass, and differ meaningfully from each other (precision-biased vs recall-biased, ≤8 vs ≤10 findings). So the "high is a real step up from medium" behavior that holds on other models does not hold on Opus 5 — the two collapse.

Separately, the command's getEffort raises the turn's model effort to the level passed. That makes the two dimensions — how thorough is the review and how hard does the model think — a single knob, and there is no setting that separates them.

Why this matters

The two are genuinely distinct axes. "Fan out across 8 review angles and verify each candidate" and "reason at xhigh" are independent choices, and more reasoning effort is not automatically better for review: there are public reports of Opus 5 scoring better on FrontierCode at medium effort than at higher effort, which — if it replicates — is exactly the case where you'd want broad review coverage without raising reasoning effort. Today that combination is unreachable.

Even setting that aside, the current mapping is surprising: asking for high and getting a structurally identical review to medium is not what the argument name suggests.

Repro

On Opus 5 (CLI 2.1.220):

/code-review medium     # single-pass review, no subagents
/code-review high       # single-pass review, no subagents — same shape
/code-review max        # multi-agent fan-out

The difference between the first two is only in reasoning effort; no subagents are spawned in either case.

Possible resolutions

Either would help:

  • Give Opus 5's high a distinct review shape from medium (e.g. the inline multi-angle pass currently used at xhigh), so the levels are monotonic in depth.
  • Allow depth and reasoning effort to be set independently — e.g. /code-review high --effort medium, or a settings key for review depth that does not move session/turn effort.

Environment

  • Claude Code 2.1.220 (native install, macOS / darwin 25.5.0)
  • Model: Opus 5
  • effortLevel: "medium" in ~/.claude/settings.json
  • tengu_review_workflow_routing: false (so the Workflow-backed review path is not in play here)

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗