Skip to content
Critique

Product guide (not the blog)

Guide

How Critique fits together

Critique is a GitHub-native layer for review: the App receives events, the web app stores policy and runs, a queue runs long work, and the product UI is where you browse runs, chat about repos, and (optionally) ship fixes. This page is the map—technical docs live under /docs.

The control plane

Critique is not an IDE plugin. It sits next to GitHub: the GitHub App holds installation identity and talks to the API, while this app holds users, entitlements, review runs, chat sessions, and the policies that decide which models run and whether sandbox or API-backed evidence is used.

You can require the check named Critique / Review so merges wait on the review outcome. The review itself is still advisory in spirit; the check encodes your team's bar for "ready to merge."

GitHub App and webhooks

GitHub delivers signed webhooks to /api/github/webhooks. Each delivery is deduped and stored so support can trace what happened. Pull request events such as opened, synchronize, and ready for review enqueue work when your automation rules allow it.

After install, /github/setup walks account linking. Repository and installation records stay synced so the right token is used for checks and comments.

Async jobs (QStash)

The server cannot do all review work inside the webhook request. Outbound calls go through Upstash QStash, which invokes routes under /api/qstash/… (for example process-delivery, review run, review analysis, remedy, builder, chat runs, and repo indexing). That gives retries, signing, and separation from the interactive request path.

A weekly Vercel cron under /api/cron/weekly-email-captures is for product email flows—not for PR review timing. Reviews are event-driven from GitHub and your reruns.

A review run, end to end

For a given pull request and head SHA, the system upserts a ReviewRun and moves it through queued, in progress, and terminal states. The pipeline opens or updates a check run, gathers evidence, runs specialist and lead model passes, normalizes findings, and publishes a summary on the PR. Reruns (from the button, API, or a rerequested check) reuse the same wiring.

From the app you get deep links and dashboards; from GitHub you see the check, the review body, and threadable discussion—including later assistance that ties back to the run when you use in-thread commands.

Sandbox and API fallback

When policy allows, analysis can run in an E2B sandbox: clone, diff, search, and optional local checks, with artifacts written back for the model stages. If sandboxing is off, misconfigured, or errors, the pipeline falls back to a GitHub API scout path so a review still ships with coarser but reliable context.

Remedy is a separate track: it turns eligible findings into an OpenCode-style run in a managed environment, with validation and branch updates when your permissions and policy allow. Builder (below) is similar machinery aimed at ad hoc jobs rather than a specific review handoff.

In the product

  • Dashboard — connect GitHub, browse review runs, open automation and usage. Signed-in, private by robots policy.
  • Critique Chat — repo-grounded chat with tools, streaming, and sessions. Often the fastest way to interrogate a codebase before or after a review.
  • Builder — cloud OpenCode jobs against a repo; consumes the builder credit lane and is not the same as an automatic push from a PR review.
  • Settings and referrals — chat defaults, history preferences, and program links; policy pickers for installation and repository override API routes in the app.

Policy and models

Defaults live at the installation; a repository can override. That includes path rules, which models back the lead and specialists, Remedy settings, and whether sandbox review is in play. Entitlements gate which models you can select on your plan.

The public /models page describes the catalog; the actual resolution happens server-side with your policy snapshot at run time.

On the pull request

Mention the bot in a PR comment to trigger focused sub-runs: for example follow-up review, explain, security or test lens, and fix-oriented prompts where enabled. The exact command set is the same product surface the parser routes into chat-style responses tied to the thread.