AI-assisted pull request review with human-in-the-loop approval. Paste a PR URL, watch multiple specialized agents review it in parallel, then step through findings before anything reaches your team. Gets smarter with every review it runs — past reviews and team standards are injected as context automatically.
For each changed file: correctness · ticket alignment · security · performance · test coverage · documentation. Criteria live in user-configured memories — stack rules added once, applied to every future review.
Nothing reaches the PR author until you've approved it.
Signals designed for a review tool, not a generic agent harness.
| Group | Key signals |
|---|---|
| Coverage |
files_read/files_in_pr ·
lines_read/lines_in_pr ·
external_context_calls
|
| Cost |
$/review · tokens_from_context vs
tokens_from_diff
|
| Quality |
findings_accepted/total ·
findings_edited · ticket_resolvedHarvested free from the approval step — no labeling required. |
| Health |
turns_used/turns_max · tool_errors
|
Instrumented with OpenTelemetry — export to any compatible backend.
--quick skips Context Agent, runs Correctness + Security
only, surfaces BLOCKING findings in ~30 seconds.
Loop: Context Agent runs a full tool-call loop (build context → call model → run tool → append → repeat). Domain agents are single-shot structured output — no loop, predictable cost.
Tools: fetch_pr_diff ·
fetch_pr_files · fetch_ticket ·
search_past_reviews · search_codebase ·
store_review · create_memory ·
post_review_comment
Guardrails: GitHub and ticket
tracker are read-only. post_review_comment is the only
write, gated behind the approval step. File citation check, secret
pattern scan, and scope-creep budget enforced on every run.
| Layer | Default | Swap via |
|---|---|---|
| LLM | Anthropic Claude | LLM_PROVIDER=openai |
| Git host | GitHub | GitLab (planned) |
| Ticket tracker | Linear | Jira, GitHub Issues (planned) |
| Memory | SQLite (CLI) · Supabase (web) | MEMORY_PROVIDER env var |
| Hosting | Railway (web) · local Node (CLI) | Any Node 20 host |
TypeScript up and down the stack. No stack assumptions in the harness core. MVP ships with GitHub + Linear. Works for any team, any repo.