PR Quorum
Sign inStart free
Product

How PR Quorum reviews a pull request

From the moment a PR opens, PR Quorum reads the diff like a disciplined review team: specialists fan out, noisy findings get filtered, and GitHub receives one focused review that maintainers can act on.

01 · Anatomy

The review pipeline

Each PR triggers a fan-out across specialist reviewers. They return typed findings, the aggregator removes repeats, and only the strongest comments reach GitHub.

GitHub webhookpull_request.opened | synchronize
Inngest functionconcurrency 5/repo · 2 retries
Reviewers (parallel)OpenRouter chat-completions
AggregatorZod-validated · dedupe · severity sort
Single review postsummary body + inline at diff position
PR opened
acme-payments/api · #2841
0.0s
Webhook received
pull_request.synchronize
0.2s
Diff fetched
46 files · +1,284 / −188
0.8s
Reviewers · 3 in parallel
~22s
Correctnessdeepseek-v4-flashfound 3
Securitydeepseek-v4-flashfound 1
Architecturedeepseek-v4-flashclean
Aggregator
filter < min_confidence · dedupe · sort by severity
< 0.1s
Posted to GitHub
POST /pulls/n/reviews · event=COMMENT
0.3s
total23.9s
02 · Why teams ship faster

Built for signal, not volume

DEDUPE
One signal per defect

Multiple reviewers can spot the same issue. PR Quorum merges duplicates, ranks by severity and confidence, then posts only the comments worth reading.

min_confidence: 0.75
max_inline_comments: 10
POLICY
Repo-specific review taste

.ai-review.yml lets every repo decide what strict means: hotter auth paths, quieter generated files, draft skips, and per-reviewer model overrides.

.ai-review.yml
├ trigger: [opened, synchronize]
├ skip.draft_prs: true
└ rules.min_confidence: 0.85
ADVISORY
Advisory by design

PR Quorum posts as 'COMMENT', gives maintainers a clear verdict signal, and leaves merge control exactly where it belongs: with humans.

event: "COMMENT"
verdict: "needs_attention"
03 · Capabilities

Everything that makes it usable in real repos

Inline + summary review

A single POST /pulls/n/reviews carries the summary body and inline comments at lines that map to a diff position.

OpenRouter through-routing

Reviewers call OpenRouter chat-completions in parallel. Default model: deepseek/deepseek-v4-flash.

Per-repo .ai-review.yml

Trigger events, skip.draft_prs, rules.min_confidence, rules.max_inline_comments, per-reviewer model overrides.

Confidence floor

Findings below min_confidence (default 0.75) are dropped before posting.

Inngest workflow

Background job with concurrency 5/repo and 2 retries. Status persists in review_runs.

Webhook signature check

GitHub webhooks are HMAC-verified before any DB writes.

Quota enforcement

review_runs counted per calendar month against your stripe_subscriptions row. Hard-stop when over.

BYOK key routing

OpenRouter keys are stored AES-256-GCM encrypted and used at review runtime on Developer and above.

Put PR Quorum on your next PR

Install the GitHub App, choose the repos, and let the next pull request show you the signal quality.

Start free on GitHubRead the docs