Skip to main content
← Back to list
01Issue
BugOpenSwamp CLIPublic
AssigneesNone

Relationships

#2450 verify-reviews gives no usable error when the local Claude Code predates the pinned review model

Opened by skunk-ape · 9/23/2026

swamp-club#2374 moved every review in verification/workflow-verify-reviews.yaml to claude-opus-5-5. That model requires Claude Code 2.1.280 or newer. Nothing records the requirement and nothing checks it, so an older CLI fails all three reviews at once with an error that does not name the cause.

Observed

Rebasing a branch onto main at 4c426154 and running verify-reviews on Claude Code 2.1.278:

reviews | API Error: 400 Claude Code 2.1.278 does not support this model; version 2.1.280 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
reviews | ::error::claude exited with status 1
reviews | failed ux-review in 1.4s
reviews | failed code-review in 1.4s
reviews | failed adversarial-review in 1.4s

The same branch had passed verify-reviews minutes earlier at its pre-rebase commit, because that commit predated swamp-club#2374 and still pinned claude-opus-4-6.

Why it reads as a code failure

Three reviews fail simultaneously, each in about 1.4 seconds, and the step-level message is only that claude exited with status 1. The line that explains it is buried between two unrelated warnings, one about claude.ai connectors being disabled and one about the model catalog not describing claude-opus-5-5. The first plausible reading is that the branch broke something, not that the local toolchain is too old.

Why it is latent rather than rare

The requirement is invisible until a branch is rebased past swamp-club#2374, at which point it fires for anyone whose CLI predates 2.1.280. A machine tracking the newest release is not automatically safe either. In the observed case mise had claude set to latest and was still serving 2.1.278 until told to re-resolve, so the CLI was nominally on latest and still too old.

Suggested fix

Two parts, both small.

Record the requirement next to the pins. agent-constraints/verification-conventions.md already has a table of the four reviews and their model. A minimum Claude Code version belongs beside it, so that changing a model pin prompts the author to state what the new pin needs. The same coupling applies to the model pins in .github/workflows/ci.yml and .github/actions/adversarial-review.

Check it in the setup job. verify-reviews already has a setup job that creates the worktree and runs before any review, which is the natural place to read claude --version and fail with one sentence naming the installed version, the required version, and how to update. A guard there turns three unreadable 400s into a single actionable message, and costs one shell command per run.

Note on scope

This is about the verification workflows on the host. CI runners install their own CLI, so the same mismatch is possible there but is not what was observed.

02Bog Flow
◉OPEN○TRIAGED○IN PROGRESS○SHIPPED

Open

9/23/2026, 8:54:10 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.