Greptile parity roadmap
This roadmap is for making ai-review-bot competitive with Greptile, using PR-Agent as the closest open-source reference point. The goal is not to copy either product feature-by-feature. The goal is to reach the same buyer-visible capability class: code reviews that understand the whole codebase, produce low-noise findings, learn from team feedback, integrate into developer workflows, and prove their value with metrics.
Current baseline
ai-review-bot already has a stronger review-agent core than a basic PR bot:
- Two independent GitHub Apps, one Anthropic-backed and one OpenAI-backed.
- Automatic and slash-command PR reviews.
- Five Tier 1 review agents plus conditional Tier 2 skills.
- Diff-anchor validation, cross-bot deduplication, idempotency, fallback comments, and full-repo audits.
- Feedback, improvement, trend, watch, and dashboard work already started in
src/feedback/,src/improve/,src/watch.ts, anddashboard/.
The biggest gaps versus Greptile are not model choice. They are durable repository context, adaptive noise control, user-facing controls, issue lifecycle tracking, and product-grade installation/analytics.
Parity target
| Capability | Greptile reference | ai-review-bot target |
|---|---|---|
| Whole-codebase context | Graph of files, functions, classes, dependencies, call sites, and similar patterns during review (docs) | Persistent repo index with semantic search, symbol graph, call/reference lookups, and changed-symbol context packs injected into every agent |
| Review anatomy | Summary, confidence score, files/issues breakdown, diagrams, review counter, last-reviewed commit, inline severity badges, suggested fixes (docs) | Structured review summary with readiness score, severity taxonomy, file impact table, optional Mermaid diagrams, stable footer controls, and GitHub suggested changes |
| Team learning | Learns from PR comments, replies, reactions, and whether suggestions were addressed (docs) | Feedback event store, addressed/not-addressed classifier, rule promotion, suppression memory, and per-repo/per-org reviewer tuning |
| Nitpick reduction | Suppresses ignored style/formatting patterns while never suppressing security/crash/data-loss issues (docs) | Severity-aware noise filter with category budgets, cooldowns, dismissal memory, and hard floors for P0/P1 classes |
| Custom rules | .greptile/ cascading config, rules, file references, filters, strictness, comment types, cross-repo context (config docs) | .ai-review/ cascading config with schema validation, rule packs, include/exclude filters, severity thresholds, per-path overrides, and external context files |
| Cross-repo context | Repo clusters and context.repos for related repositories (docs) | Read-only context repo clusters, explicit config references, shared package/API contract lookup, and org-level cluster suggestions |
| CLI reviews | Local branch review before push, instructions, resume, API key auth, sensitive-file guard (docs) | Local ai-review review for staged, unstaged, branch, and PR diffs; resumable runs; local cache; secret redaction; agent handoff |
| Fix with agent | Sends issue context to Claude Code, Codex, Cursor, Devin, etc. (docs) | Copyable and deep-linkable fix prompts, ai-review fix, Codex/Claude/Cursor handoff, fix-all bundle, and auto-addressed comment tracking |
| Security review | Security-focused review with badges and preventative risky-pattern findings (changelog) | Dedicated security pass, CodeQL/Semgrep/Snyk-style signal ingestion, security badge, CWE mapping, exploitability/risk rationale |
| Auto-approve | Approves low-risk clean PRs under filters (docs) | Optional GitHub review approval for clean 5/5 low-risk PRs, branch/author/path/label guardrails, and audit log |
| Analytics | PRs reviewed, merge time, addressed rate, critical bugs, reactions, filters, export (docs) | Dashboard with review volume, finding precision, acceptance/addressed rate, false-positive trends, model cost, latency, and export |
| Platform surface | GitHub/GitLab app, teams/orgs, settings inheritance, auto-enable repos (changelog) | Start GitHub-only, then GitLab. Add org/team settings, inherited defaults, repo onboarding, installation health, and admin controls |
Phase 0: Competitive benchmark harness
Build this before adding major features. Otherwise every phase optimizes by vibes.
Deliverables:
- Create a benchmark corpus of 50-100 PRs across TypeScript, Python, Go, and mixed-stack repos.
- Label expected findings by class: real bug, security, test gap, architecture, style, false positive.
- Store each candidate finding with file, line, severity, evidence, fixability, and reviewer disposition.
- Add a replay CLI:
ai-review bench run --corpus <path> --provider <provider>. - Add scorer output: precision, recall on seeded bugs, duplicate rate, addressed-rate proxy, cost, latency.
Acceptance gate:
- A new model, prompt, rule, or graph retrieval change cannot be called better unless it improves at least one measured metric without regressing false-positive rate or duplicate rate.
Phase 1: Product-grade PR review output
Make every review readable, triageable, and easy to act on.
Deliverables:
- Normalize findings into a durable schema: category, severity, confidence, evidence, related symbols, suggested fix, duplicate key, and suppressibility.
- Replace free-form summary composition with a deterministic review template: readiness score, top risks, changed files, issue table, inline comments, footer metadata.
- Add Greptile-style severity labels:
P0critical,P1high,P2medium,P3low/nitpick. - Emit GitHub suggested-change blocks when the fix is local and mechanically safe.
- Add review counters, last-reviewed SHA, command hints, and stable hidden metadata.
Why first:
- Better output immediately improves usefulness and gives later memory/analytics code clean events to consume.
Phase 2: Repository indexing and retrieval
This is the core parity gap.
Deliverables:
- Build an indexer that runs on install, default-branch updates, and scheduled refresh.
- Store file manifests, dependency edges, symbol declarations, imports/exports, call/reference edges where available, tests-to-source relationships, config/docs references, and embeddings.
- Use Tree-sitter for broad syntax coverage, TypeScript compiler API for TS precision, and Pyright/Jedi or LSP-backed extraction for Python.
- Add retrieval APIs:
getChangedSymbols,getCallers,getCallees,getSimilarPatterns,getRelatedTests,getArchitectureNeighbors,getConfigContext. - Build context packs per finding agent, with token budgets and source attribution.
Acceptance gate:
- On benchmark PRs, agents must cite at least one relevant non-diff file for issues that depend on cross-file behavior.
- Duplicate and hallucinated findings must not increase when context is injected.
Phase 3: Custom configuration and rule packs
Give teams control without requiring prompt editing.
Deliverables:
- Add
.ai-review/config.jsonwith JSON schema and validation. - Add
.ai-review/rules.mdfor natural-language standards. - Add
.ai-review/files.jsonor equivalent for required context files and external docs. - Support cascading config in subdirectories for monorepos.
- Add filters: labels, disabled labels, authors, branches, file globs, draft behavior, changed-file limits.
- Add rule packs:
security,backend-api,frontend-react,database,tests,docs,agent-generated-code.
Acceptance gate:
- A monorepo can set org-wide defaults at root and stricter rules under
api/,dashboard/, andinfra/. - Rules are visible in review output when they affect a finding.
Phase 4: Adaptive feedback and noise control
Turn existing feedback/improve work into the product differentiator.
Deliverables:
- Persist feedback events from reactions, replies, dismissals, resolved threads, commit changes, and force reruns.
- Classify outcomes: addressed, rejected, duplicate, not actionable, stale, false positive, accepted but not fixed yet.
- Add suppression memory keyed by normalized claim, path pattern, rule, category, and repo.
- Add promotion memory for high-value patterns that should be raised earlier.
- Build thresholds: style/naming/doc suggestions can decay; P0/P1 security/data-loss/crash classes never fully suppress.
- Feed repo-specific tuning into prompt construction and merge filtering.
Acceptance gate:
- Rejected findings in the same PR do not reappear on later commits unless new evidence appears.
- The dashboard can show false-positive trends by skill, model, category, and repo.
Phase 5: Fix workflows and agent handoff
Make the bot not just a reviewer, but a repair coordinator.
Deliverables:
- Add
ai-review fix <finding-id>andai-review fix --all. - Generate handoff prompts for Codex, Claude Code, Cursor, and generic agents.
- Include file paths, line numbers, evidence, relevant context snippets, tests to run, and expected diff shape.
- Track fix attempts by commit and mark comments addressed when touched files and LLM-as-judge evidence match.
- Add optional GitHub issue creation for deferred larger fixes.
- Add safe suggested patches for one-file mechanical changes.
Acceptance gate:
- A developer can go from review comment to local agent fix in one command.
- The PR summary updates addressed status after a follow-up commit.
Phase 6: Security and runtime evidence
Greptile and CodeRabbit both sell trust. ai-review-bot needs evidence, not only comments.
Deliverables:
- Add CodeQL/Semgrep ingestion and correlate static findings with AI review comments.
- Add dependency and secret scanning inputs where available from GitHub APIs.
- Add test/CI artifact ingestion: logs, failed tests, coverage reports, build output.
- Add security-specific finding schema: CWE, sink/source, exploitability, preventative pattern, confidence.
- Add optional sandboxed runtime smoke checks for small projects where CI instructions are discoverable.
Acceptance gate:
- Security comments include a concrete data/control-flow path or a cited static-analysis finding.
- Runtime/build/test comments quote or link the exact failing artifact that supports them.
Phase 7: CLI parity and local developer loop
The CLI should become the fastest path for agentic development.
Deliverables:
- Expand
ai-reviewCLI modes:review --staged,review --unstaged,review --branch main,review --pr <url>,review --resume. - Add local repo index cache and offline redaction before sending context.
- Add
--instructions,--config,--json,--sarif, and--fail-on P1. - Add agent mode that prints or dispatches fix prompts.
- Add GitHub Action parity for CI quality gates.
Acceptance gate:
- A Codex/Claude coding loop can run
ai-review review --staged --fail-on P1before pushing and receive the same finding schema as PR reviews.
Phase 8: Dashboard, org controls, and analytics
Make it operable by teams, not just Joe.
Deliverables:
- Finish dashboard installation health, repo list, review history, and feedback trends.
- Add org/team/repo settings with inherited defaults.
- Add analytics: PRs reviewed, average review latency, cost, findings per PR, P0/P1 rate, addressed rate, rejection rate, duplicate rate, model/skill quality, and merge-time impact.
- Add CSV/JSON export.
- Add auto-enable repos, branch/path filters, and per-repo status.
- Add admin-only API keys and audit log.
Acceptance gate:
- A repo owner can install, configure, inspect quality, and diagnose failures without reading Vercel logs.
Phase 9: Multi-provider and multi-platform expansion
PR-Agent's durable advantage is provider/platform breadth. Add it after the GitHub product loop is solid.
Deliverables:
- Convert hardcoded provider/bot config to a provider registry.
- Add Gemini, OpenRouter, local/Ollama, and LiteLLM-compatible providers.
- Add model routing by task, latency, cost, and benchmark performance.
- Add GitLab support next; defer Bitbucket/Azure DevOps until GitHub/GitLab abstractions prove stable.
- Package deployment modes: Vercel, Docker Compose, Kubernetes, and local webhook runner.
Acceptance gate:
- A self-hosted install can choose provider, model, and deployment mode without code changes.
Phase 10: Auto-approve and merge-risk automation
Only do this once benchmark quality, suppression, and analytics are trustworthy.
Deliverables:
- Add PR risk classifier based on changed files, ownership, test impact, dependency/security paths, and finding severity.
- Add optional approval for clean low-risk PRs.
- Add guardrails by branch, author, label, file path, repo, and required CI status.
- Add signed audit trail for every auto-approval decision.
- Add dry-run mode that reports would-have-approved for 2-4 weeks before enabling writes.
Acceptance gate:
- Auto-approve is off by default, dry-run first, and blocked by any P0/P1, failed required check, sensitive path, or missing benchmark confidence.
Sequencing
| Horizon | Focus | Outcome |
|---|---|---|
| 0-2 weeks | Phase 0 + Phase 1 | Reviews become measurable, readable, and stable enough to improve deliberately |
| 3-6 weeks | Phase 2 thin slice | Changed-symbol context, related tests, and similar-pattern retrieval improve real-bug recall |
| 7-10 weeks | Phase 3 + Phase 4 | Teams can tune behavior, and the bot stops repeating rejected/nitpicky findings |
| 11-14 weeks | Phase 5 + Phase 6 | Fix handoff, addressed tracking, security evidence, and CI artifact context close the action loop |
| 15-20 weeks | Phase 7 + Phase 8 | CLI + dashboard make the product usable outside one repo/operator |
| 21+ weeks | Phase 9 + Phase 10 | Provider/platform breadth and guarded auto-approval move from capable tool to competitive product |
Non-goals until parity is real
- Do not optimize for more agents before improving context and feedback precision.
- Do not add more hosted platforms before GitHub review quality and lifecycle tracking are strong.
- Do not ship auto-approve until dry-run metrics show it would be boring.
- Do not use dashboard work as a substitute for benchmark and feedback loops.
First five tickets to create
benchmark-corpus: Build replayable PR review benchmark and scoring CLI.finding-schema-v2: Normalize findings, severity, confidence, evidence, suggestions, and stable IDs.repo-index-thin-slice: Index TypeScript/Python symbols, imports, call sites, related tests, and semantic chunks.ai-review-config: Implement.ai-review/config.json,.ai-review/rules.md, cascading lookup, and schema validation.feedback-suppression: Suppress rejected duplicate findings within a PR cycle and across repo memory.
Definition of Greptile parity
ai-review-bot reaches practical Greptile parity when a new team can install it on a GitHub org and get:
- Automatic PR reviews with whole-repo and cross-repo context.
- Inline comments with severity, evidence, suggested fixes, and low duplicate rate.
- Configurable standards, filters, strictness, and path-specific overrides.
- Learning from reactions, replies, addressed comments, and repeated dismissals.
- CLI reviews before PR creation and agent handoff for fixes.
- Security-focused review backed by static-analysis or code-path evidence.
- Dashboard visibility into quality, cost, latency, adoption, and failure modes.
- Optional guarded auto-approval for low-risk clean PRs.