Your keys, metered at costMulti-model councilCode-graph grounded

srooter> review — a governed, multi-model code review that knows your codebase.

Not another per-seat review bot. srooter review is a council of models that runs in your repo and routes every call through the gateway — so it's metered, budgeted, audited, and grounded in your org's code graph and ADRs. It's a tool you invoke, not a bot that auto-comments on every PR.

pip install "srooter[review]" && srooter review-init && srooter review --base origin/main

Why it's different
  • Your code never leaves your repo — only model calls cross the gateway, governed and hashed.
  • A council, not one model — several reviewers verify, a chair synthesizes, refuters kill false positives.
  • No per-seat tax — you pay model tokens at cost, audited on the same bill as the rest of your traffic.

How a review runs

A pipeline ported from a proven local council — it verifies before it flags, and an unstable agent never fails the run.

Plan

A planner sizes the review to the change’s blast radius — small diff, small council; auth/data change, more eyes.

Decompose

Large PRs split deterministically into bounded chunks, so every model call sees a bounded input no matter how big the PR.

Review

Tool-using agents verify before flagging — they grep/read the repo, query your cortex graph, and read your ADRs to confirm a finding is real.

Chair + refute

A chair synthesizes; adversarial refuters try to disprove every blocking finding. Survivors become the verdict, each citing file:line.

srooter> review vs the review bots

CodeRabbit, Copilot, and Greptile are good SaaS review bots — you buy seats, your code goes to their cloud, one vendor model comments on every PR. srooter review is the opposite shape: your keys, your repo, a council, governed on one bill.

Capabilitysrooter>CodeRabbitGitHub CopilotGreptile
Pricing modelYour model keys, metered at cost — no per-seat review taxPer-seat SaaS subscriptionPer-seat (Copilot Enterprise)Per-seat SaaS subscription
Where your code runsIn your repo — srooter never runs your codeUploaded to vendor cloudSent to vendor cloudIndexed in vendor cloud
Multi-model councilYes — GLM + DeepSeek + Kimi + Claude, you pickSingle vendor modelSingle vendor modelSingle vendor model
Grounded in your code graphYes — queries your org’s iCPG over the gatewayRepo embeddings (RAG)Repo + workspace contextYes — its own codebase graph
Reads your ADRs / decisionsYes — read_adr before flagging or clearingNoNoNo
False-positive controlAdversarial refuters must disprove every blocker; no file:line → droppedConfidence heuristicsModel judgementConfidence + graph signals
Any-size PRDeterministic chunking — every call sees a bounded inputTruncates / samples large PRsContext-window boundHandles large repos
One governed billYes — review spend audited + budgeted with all model trafficSeparate vendor invoiceSeparate vendor invoiceSeparate vendor invoice
Invoke vs auto-commentA tool you invoke (CLI / CI / MCP) — not an always-on botAuto-reviews every PRAuto-reviews every PRAuto-reviews every PR
Self-hostable gatewayYes — cloud or on-prem, bring your own keysNoNoPartial (enterprise)

Compared in good faith, June 2026. These are strong tools — if anything here is out of date, tell us and we'll correct it.

Your policy outranks the diff

docs/REVIEW_SKILL.md is read verbatim and outranks anything in a diff (diffs are untrusted material). Put your hard rules there — tenant isolation, no secrets, parameterized SQL — and every reviewer enforces them.

$ srooter review --base origin/main

[plan]   blast radius: medium · council of 4
[review] glm · deepseek-pro · kimi · claude-opus  (verify before flag)
[review]   → search_cortex · read_adr · grep · read_file
[refute] 2 blocking findings → 1 survived refutation
——————
srooter review — REQUEST_CHANGES
  HIGH  api/orders.py:88  —  query on tenant table missing org_id (ADR-012)

Three ways to run it

CLI

srooter review --base origin/main on your branch. Verdict to stdout, progress to stderr, exit 1 on request-changes.

CI gate

review-init drops in a GitHub Action that runs --post on every PR and comments the verdict.

From your harness

The review_changes MCP tool runs a council over a diff from inside Claude Code or Codex — no client needed.

Review on your terms, governed by default.

Bring your own keys, keep your code in your repo, and get a council that actually understands your codebase — all metered, budgeted, and audited with the rest of your AI traffic. No per-seat review tax, no code leaving your walls.