From razorback
Use when the user wants two models to alternate finding, verifying, and fixing problems until none remain above an agreed bar — "have codex verify my findings and find more", "go back and forth until clean", "loop until you both agree there are no problems left", or when an audit should run to convergence under /loop or another goal-driven runner. Also use for a bounded pre-implementation Doubt Pass when a design decision needs adversarial challenge before building — architecture risk rated medium/high, or the user says "doubt this" / "challenge this decision".
How this skill is triggered — by the user, by Claude, or both
Slash command
/razorback:cross-model-convergenceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The lead — whichever agent and harness is running this skill — and an external reviewer alternate find → verify → fix rounds until a full round is clean. **Agreement is not the terminator; evidence is.** A clean round, not a compliment, ends the loop.
The lead — whichever agent and harness is running this skill — and an external reviewer alternate find → verify → fix rounds until a full round is clean. Agreement is not the terminator; evidence is. A clean round, not a compliment, ends the loop.
The reviewer must be a different model from the lead. Calling your own model's CLI is self-review; a single-model clean round never counts as double-clean.
Announce at start: "I'm using the cross-model-convergence skill with [reviewer] on [problem class]."
REQUIRED SUB-SKILLS: razorback:architecture-quality (Audit Mode), one reviewer channel (razorback:codex-cli, razorback:gemini-cli, razorback:claude-cli, or razorback:cursor-agent in read-only mode) pointing at a model that is not the lead, razorback:receiving-code-review, razorback:test-driven-development, razorback:verification-before-completion.
Write these down in the conversation before the first sweep. They cannot be changed mid-loop.
architecture-quality Audit Mode. The user can name another class (security, error handling, dead code); the sweep method changes, the loop does not.--mode ask with --trust, never --force).speculative strength; blocked by a heuristic's "do not act when" line; or a churn-heavy rewrite with marginal benefit. Disputed-but-real items are not nitpicks; they go in the report.inspect/trace evidence before sending — rigor is symmetric, not just for the reviewer's claims.create-chat/--resume).receiving-code-review rigor: confirm each reviewer finding in code before accepting it. Unconfirmable claims get pushed back with evidence, not implemented. Reviewer evidence need not be Miller-based — file:line plus reasoning counts; the lead re-verifies with Miller either way.verification-before-completion.New findings inside the approved problem class and above the floor are fixed in the next round without re-asking. Reviewer proposals beyond the approved scope (new modules, redesigns) are evaluated, ranked, and parked as candidates for the final report — they do not count as open issues and cannot hold convergence hostage.
DONE only when one full round is double-clean:
all in the same round.
Content-free approval is not a clean signal. If the reviewer replies with praise and no specifics ("all fixes look great!"), it didn't look. Re-prompt requiring per-fix verification detail before counting the round clean. One substantiated re-check is required; don't loop the reviewer for compliments.
At the cap: stop discovering, report honestly — what was fixed, what remains with severity, and a recommendation. Hitting the cap is a status report, not a failure. Exception: a verified real defect found at the cap still gets fixed, followed by one bounded confirmation pass (reviewer verifies that fix only — no new discovery sweep).
A bounded, fix-free variant for challenging a design decision BEFORE anything is built — when course-correction is cheapest. Run it during brainstorming when the architecture-quality gate rates risk medium/high, or whenever the user asks to doubt or challenge a decision. Low-risk designs skip it.
receiving-code-review rigor — verify each refutation against the codebase (Miller) and the requirements. A refutation that survives verification changes the design; one that does not gets recorded with the evidence against it.The Doubt Pass adds no user gate and no stop point: it runs inside brainstorming's existing flow, and its outcome — the decision, surviving objections, and how each was resolved — lands in the design doc that flows to the already-existing spec review. It never implements anything.
The goal predicate, for Claude Code's /loop, Codex's goal command, or any until-condition runner:
Terminal state reached: either (a) one full round is double-clean — zero new findings above the written severity floor from both the lead's re-sweep and the reviewer's substantiated re-check, all approved fixes verified — or (b) the round cap is reached and the final status report has been emitted.
The cap must be part of the predicate: a success-only goal loops forever on a codebase that does not converge.
Emit this block at the end of every round — print it in the round output and include it in the round checkpoint — so the driver (and the user) can see state at a glance; a driver's check can key on clean_round: yes or round: <cap>/<cap>:
CONVERGENCE STATUS
round: 2/4
fixed_this_round: 3
open_above_floor: 1
parked_out_of_scope: 2
clean_round: no
For unattended runs, Setup (problem class, reviewer, floor, cap) must be user-approved before the driver starts; the loop then runs to the goal or the cap without prompting, recording instead of asking.
| Rationalization | Reality |
|---|---|
| "The reviewer said it looks great, we're done" | Praise without specifics means it didn't look. Re-prompt for evidence. |
| "This finding is just a nitpick" (decided mid-round) | The floor was written in Setup. Judge against it; don't redraw it. |
| "One more round will finish it" (at the cap) | The cap is the cap. Report remainders. |
| "The reviewer suggested it, so I should implement it" | Out-of-scope proposals get parked, not implemented. |
| "We've both gone quiet, that's agreement" | Convergence is a double-clean round, not mutual exhaustion. |
| "My own findings don't need verification" | Rigor is symmetric. Verify before sending. |
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub anortham/razorback --plugin razorback