Coding · Read + Write

Code review on PRs

Augment Rep · High Reason · High

The problem

Senior engineers spend 30–40% of their week reviewing PRs. Junior PRs queue for days. Common issues (style, missing tests, obvious bugs) eat reviewer time.

The AI approach

AI does the first pass: style, type errors, missing tests, common bug patterns, security smells. Human does the architectural review.

The outcome

~50% faster

First-review SLA from ~2 days → ~4 hours. Senior reviewer's time goes to design questions, not nits.

Try itInput → Process → Output

Input — pull request diff
checkout/promo.py +12 / −3 · PR #421
def apply_promo(code, cart): discount = lookup(code) discount = lookup(code.upper()) if discount is None: return cart cart.total -= discount.amount log.info(f"applied {code} for {cart.user.email}") return cart
Process — AI pipeline
1Parse diff + load file contextReadGenerative
2Static checks (lint, types, tests)RulesSymbolic
3Pattern check (bugs / security / perf)ReadPredictive
4Write review comments + suggestionsWriteGenerative
Output — review comments
Click Run demo to scan the diff and post review comments.
3 review comments PR #421
promo.py · line 5bug · medium
Discount can be 0 (not None) for legitimate stacking edge case. Suggest if discount is None or discount.amount == 0: — or pull the early-return into a guard clause.
promo.py · line 7privacy · high
PII in log line. Logging cart.user.email violates the new GDPR retention rule (T-141). Use cart.user.id.
promo.py · filetest · low
No test added for the lower-case promo input case (the upper() call is the change). Suggest a unit test in tests/test_promo.py.
Status: 3 actionable comments · 0 style nits filtered · senior reviewer can focus on architecture.

Three AI types in this use case

SymbolicLinter / formatter / type-checker (deterministic); test-coverage threshold gates; CI must-pass rules.
PredictivePattern matchers for common bug shapes (off-by-one, null deref, race, SQL injection).
GenerativeLLM reads diff in context, writes per-line comments, suggests fixes as code blocks; explains why.

The stack

  • Code host · GitHub / GitLab API
  • Parse · Tree-sitter
  • Static · Semgrep / CodeQL
  • LLM · Claude / GPT-4

When this works

  • Code in a mainstream language with good tooling
  • Team wants AI as first-line, not final arbiter
  • Repo has reasonable test coverage to start

When it fails

  • Architecture issues — the LLM doesn't see the system, only the diff
  • Style nits become noise — needs filtering by severity
  • Auto-merge on AI approval — risky
  • False security flags drown the real ones