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.

srooter review β€” governed, multi-model, code-aware PR review Β· srooter