Introduction
Otto Detective reviews pull requests on GitHub and Azure DevOps, and ends each review with a merge-confidence score your team can act on.
What it is, who it's for, and what it never does
Otto Detective is an AI code reviewer. Install it once and it reviews the pull requests in the repositories you connect. It posts a native review with findings on the lines that changed, ranked by severity, and a merge-confidence score from 1 to 5.
It's for engineering teams on GitHub or Azure DevOps that want a careful first review on every change, including changes written with AI coding tools such as Claude Code, Cursor, or Copilot. Otto reviews the pull request, not the tool that wrote it.
Otto never commits, pushes, or merges. Your team applies fixes. On GitHub, a suggested fix only lands when someone clicks Apply.
What a review contains
Each review has a verdict: Approved, Changes requested, or Commented. On GitHub, Otto posts it as a native pull request review; on Azure DevOps, the verdict is stated in Otto's summary thread.
- Inline findings on the exact lines that changed, ranked P0–P3:
Severity Meaning P0 Critical: data loss, a security breach, an outage, or a broken build P1 A high-impact bug or security issue P2 Correctness, reliability, or missing-test issues to fix before merge P3 Non-blocking nitpicks, style, and maintainability - A summary that ends with Merge confidence: X/5 and a one-sentence reason. 4–5 is safe to merge, 3 is medium risk, and 1–2 is not safe to merge.
- A fix for each finding: a one-click suggested change on GitHub, plus a prompt you can paste into your AI coding tool.
What Otto checks
Otto reviews the way a senior engineer would. It reads beyond the diff, into definitions, callers, and tests, and works through a six-point checklist:
- Correctness: is the change logically sound, and does it do what the PR says?
- Likely bugs: off-by-one errors, null handling, race conditions, unhandled rejections
- Security: input validation, authN/authZ, injection vectors, secret leakage
- Performance: N+1 queries, accidental quadratic loops, wasted work in hot paths
- Tests: is new behavior covered, and are existing tests still accurate?
- Style: does it match your repository's conventions and naming?
How it works
- Install Otto Detective. Add the GitHub App and choose the repositories Otto can review, or connect Azure DevOps with a service principal.
- Open a pull request. Otto starts reviewing as soon as a PR opens. A status check shows its progress and never blocks a merge on its own.
- Get a verdict. Approved, Changes requested, or Commented, with findings on the lines that changed and a merge-confidence score.
- Push, reply, re-review. On GitHub, pushing a fix triggers a fresh review that updates the same summary. Reply in a thread, or comment
/otto reviewanytime.
Which pull requests Otto reviews
Otto reviews pull requests in the repositories you connect, whatever the base branch, including Dependabot and Renovate PRs.
- On GitHub, drafts wait until they are marked ready for review.
- Pull requests that change more than 100 files are skipped automatically. Comment
/otto reviewto run one anyway. - Reviews need prepaid credits. A workspace that is out of credits is skipped.
Talking to Otto
Reply to any of Otto's comments, or use one of these:
| Command | What it does |
|---|---|
@otto-detective | Ask a question in any GitHub PR comment or thread |
/otto review | Run a fresh full review, even on a large PR |
/otto re-review | The same, after you push changes |
/otto explain | Explain what the code does and why |
Otto answers in the thread and remembers what you have told it on that pull request.
Pricing
You pay per pull request, from prepaid credits, and there are no per-seat fees. New workspaces get a $10 welcome credit when they add a card; the card is verified with Stripe, not charged. See Billing.
Next steps
- Quickstart: get your first review in a few minutes
- GitHub or Azure DevOps: how Otto works on each platform
- Review configuration (otto.yml): tune reviews per repository
