How /consensus works
3-stage arbiter-mediated convergence loop - up to 5 rounds
STAGE 1 - PARALLEL VERDICTS
Claude posts a blind verdict, then GPT + Gemini + Grok review the plan in parallel.
Claude (blind)
Writes own verdict
+ critical issues
before seeing externals
GPT (Codex)
APPR / RC / REJECT
+ critical issues
Gemini
APPR / RC / REJECT
+ critical issues
Grok (xAI)
APPR / RC / REJECT
+ critical issues
GUARD - Blind verdict
Claude posts its vote
BEFORE dispatching to
externals. Locked in
the transcript.
Stage 1 answers fan out as anonymized peers
STAGE 2 - BLIND CROSS-REVIEW (CONDITIONAL)
Each external rates the OTHER 2 anonymized answers: viable or not-viable + category.
Fires R1 always; R2+ on Stage 1 divergence OR previous round had an accepted not-viable issue.
GPT reviews
Response A: viable / not-viable
Response B: viable / not-viable
(its own answer excluded)
Gemini reviews
Response A: viable / not-viable
Response B: viable / not-viable
(its own answer excluded)
Grok reviews
Response A: viable / not-viable
Response B: viable / not-viable
(its own answer excluded)
GUARD - Peer review
Identity stripped
(best-effort).
Not-viable becomes a
candidate issue for S3.
Stage 1 verdicts + Stage 2 candidate issues
STAGE 3 - ARBITER ADJUDICATION
Claude reconciles everything and decides: accept, dismiss, or defer each issue. Then revises the plan.
Claude (arbiter)
Reads: Stage 1 verdicts + Stage 2 issues
+ own blind verdict from Stage 1.
For each issue:
accept - dismiss (with reason) - defer
Revises plan if any issue accepted.
Records dismissed and deferred issues in the final report.
Converged?
all responding externals APPR
+ 0 accepted issues remain
+ Claude adjudicates APPR
YES
CONVERGED
GUARD - No self-approval
Claude's vote alone
never converges a round.
At least 1 external APPR.
GUARD - No silent dismissal
Every dismissed issue
ships with a one-line
reason in the report.
NO - next round
Up to 5 rounds (hard cap)
Stage 2 cross-review pattern adapted from
karpathy/llm-council
- Stage 2 skipped when /consensus runs with sandbox: workspace-write.
/ask-* commands run a single Stage 1 + Claude synthesizer (lighter version - external advises, Claude owns the answer).