For Engineering Teams & Tech Leads

Code Reviews That Actually CatchWhat Matters

Linters catch syntax. Your CI catches tests. But who catches architectural violations, cross-service breaking changes, and security vulnerabilities that span repos? Probe does.

On-premAny LLMOpenTelemetryOpen source

Free and open source. Business and Enterprise plans available.

What changes for your code reviews
Before
Reviews miss cross-service impact
Quality varies by reviewer
Rubber-stamping when under pressure
After
Breaking changes caught before merge
Consistent review quality across the team
Architecture violations flagged automatically
Built for security and compliance
On-prem Any LLM OpenTelemetry

Why teams choose Probe for code review

Architecture-Aware

Reviews understand your entire system, not just the diff. Catches breaking changes across services that traditional reviews miss.

Security First

Automated scanning for OWASP vulnerabilities, exposed secrets, and insecure patterns. Catch security issues before they reach production.

Consistent Quality

Every PR reviewed against the same standards. No more quality variance based on who's available or how busy the team is.

Faster Shipping

First-pass review happens instantly. Human reviewers focus on business logic and design, not hunting for issues.

The Real Problem

Your reviews are inconsistent. And that's costing you.

Not every reviewer has the context. Not every PR gets the scrutiny it deserves. And the issues that slip through become production incidents.

01

The Rubber Stamp Problem

Reviewers see a 200-line PR. They spot a few style issues, approve, and move on. They don't realize this change breaks an API contract that three other services depend on. The blast radius isn't visible in the diff. It only becomes clear when production breaks.

02

The Blind Spot

Your linters catch syntax. Your tests catch regressions. But who catches the architectural violations? The security vulnerabilities hidden in dependencies? The performance anti-patterns that won't show up until scale hits? These slip through because no single reviewer has the full picture.

03

The Consistency Gap

Your senior engineer catches issues junior reviewers miss. But your senior is overloaded, so most PRs get junior reviews. Quality drifts. Six months later, you're dealing with technical debt that could have been caught at code review time — when it was cheap to fix.

What Probe catches in code reviews

Real checks teams run on every PR. Security scanning, architectural validation, cross-service impact analysis, and compliance enforcement.

Security
Scan this PR for OWASP Top 10 vulnerabilities, exposed credentials, and insecure cryptographic practices
Found 2 security issues: 1. SQL injection vulnerability in user_service/handlers/search.go line 47 -- query built with string concatenation instead of parameterized queries. 2. AWS secret key hardcoded in config/deploy.yaml line 12 -- should use environment variable or secrets manager. No insecure crypto detected. Recommend: use prepared statements for SQL, move secret to AWS Secrets Manager.
Breaking Changes
Does this PR introduce any breaking changes to public APIs or shared interfaces? What services are affected?
Yes, breaking change detected. PR modifies the UserService.GetUser() method signature in shared/user_client/client.go -- removes the 'includeDeleted' parameter. This interface is consumed by 4 services: admin-panel, billing-service, analytics-worker, and notification-service. All 4 consumers will break at compile time. Recommend: add new method instead of modifying existing, or coordinate updates across all consumers before merging.
Performance
Check for N+1 query patterns, missing database indexes, and inefficient loops that could cause performance issues at scale
Found 1 performance issue: N+1 query in order_service/handlers/list.go lines 89-94. Iterates over orders and makes a separate DB call for each order's line items. At current scale (100 orders/page), this generates 101 queries. Recommend: use JOIN or batch fetch line items in a single query. Estimated impact at peak load: 50ms -> 500ms response time.
API Contracts
Validate that API changes maintain backward compatibility. Check for removed fields, changed types, or new required parameters.
API contract violation detected. PR removes 'legacy_id' field from the /api/v2/users response in api/schemas/user.go. This field is marked as deprecated but still consumed by mobile app v3.2 and earlier (23% of active users per analytics). Recommend: keep field for 6 months per deprecation policy, add sunset header, notify mobile team.
Dependencies
Check if this PR introduces deprecated dependencies, known CVEs, or license incompatibilities
Dependency issues found: PR adds 'lodash@4.17.15' which has known prototype pollution vulnerability (CVE-2020-8203). Recommend: upgrade to lodash@4.17.21 or later. Also adds 'GPL-licensed-lib' which conflicts with company's MIT/Apache-only policy. Recommend: find alternative or get legal approval. All other deps are clean.
Test Coverage
Identify code paths added in this PR that lack test coverage. Flag high-risk changes with no tests.
Test coverage analysis: PR adds 3 new functions in billing/calculator.go. 2/3 have unit tests. Missing: CalculateProration() -- handles refund logic, touches money, has 4 code paths, no tests. PR also modifies error handling in payment processor (5 files) with no corresponding test updates. Recommend: add tests for CalculateProration, update existing tests for error handling changes.
Security
Scan this PR for OWASP Top 10 vulnerabilities, exposed credentials, and insecure cryptographic practices
Found 2 security issues: 1. SQL injection vulnerability in user_service/handlers/search.go line 47 -- query built with string concatenation instead of parameterized queries. 2. AWS secret key hardcoded in config/deploy.yaml line 12 -- should use environment variable or secrets manager. No insecure crypto detected. Recommend: use prepared statements for SQL, move secret to AWS Secrets Manager.
Breaking Changes
Does this PR introduce any breaking changes to public APIs or shared interfaces? What services are affected?
Yes, breaking change detected. PR modifies the UserService.GetUser() method signature in shared/user_client/client.go -- removes the 'includeDeleted' parameter. This interface is consumed by 4 services: admin-panel, billing-service, analytics-worker, and notification-service. All 4 consumers will break at compile time. Recommend: add new method instead of modifying existing, or coordinate updates across all consumers before merging.
Performance
Check for N+1 query patterns, missing database indexes, and inefficient loops that could cause performance issues at scale
Found 1 performance issue: N+1 query in order_service/handlers/list.go lines 89-94. Iterates over orders and makes a separate DB call for each order's line items. At current scale (100 orders/page), this generates 101 queries. Recommend: use JOIN or batch fetch line items in a single query. Estimated impact at peak load: 50ms -> 500ms response time.
API Contracts
Validate that API changes maintain backward compatibility. Check for removed fields, changed types, or new required parameters.
API contract violation detected. PR removes 'legacy_id' field from the /api/v2/users response in api/schemas/user.go. This field is marked as deprecated but still consumed by mobile app v3.2 and earlier (23% of active users per analytics). Recommend: keep field for 6 months per deprecation policy, add sunset header, notify mobile team.
Dependencies
Check if this PR introduces deprecated dependencies, known CVEs, or license incompatibilities
Dependency issues found: PR adds 'lodash@4.17.15' which has known prototype pollution vulnerability (CVE-2020-8203). Recommend: upgrade to lodash@4.17.21 or later. Also adds 'GPL-licensed-lib' which conflicts with company's MIT/Apache-only policy. Recommend: find alternative or get legal approval. All other deps are clean.
Test Coverage
Identify code paths added in this PR that lack test coverage. Flag high-risk changes with no tests.
Test coverage analysis: PR adds 3 new functions in billing/calculator.go. 2/3 have unit tests. Missing: CalculateProration() -- handles refund logic, touches money, has 4 code paths, no tests. PR also modifies error handling in payment processor (5 files) with no corresponding test updates. Recommend: add tests for CalculateProration, update existing tests for error handling changes.
OWASP
Run OWASP compliance check on this PR. Flag injection vulnerabilities, broken auth, sensitive data exposure, and XXE attacks.
OWASP scan complete. 3 issues found: A03:2021 Injection -- SQL concatenation in search handler (CRITICAL). A07:2021 Auth Failure -- JWT token validation disabled in test mode but test flag is readable from env in prod (HIGH). A02:2021 Crypto Failure -- password hashing uses MD5 instead of bcrypt (CRITICAL). Clean: no XXE, no sensitive data logging detected. Remediation guide attached.
Infrastructure
Review infrastructure-as-code changes: Terraform security groups, missing encryption, overly permissive IAM, missing health checks
IaC review for PR #847: 1 critical issue -- security group opens port 22 (SSH) to 0.0.0.0/0 in terraform/modules/vpc/sg.tf. Should restrict to VPN CIDR only. 2 warnings: RDS instance has backup retention set to 1 day (recommend 7), ECS task definition missing health check (will cause deployment issues). IAM policies are scoped correctly. Encryption enabled on all resources.
Client Standards
Enforce agency client-specific rules: all API errors must include request_id, all database queries must have timeouts, logging must use structured format
Client standard violations: 2 new API error responses in api/handlers/orders.go missing request_id field (lines 67, 92). 1 database query in models/user.go has no timeout set (line 134 -- risk of hung connections). All logging uses structured format (zap). Recommend: add request_id to error structs, wrap query with context.WithTimeout(5s).
Dead Code
Detect dead code, unused imports, unreachable branches, and functions with no callers across the entire codebase
Dead code analysis: PR adds 2 new functions but neither are called anywhere. helpers/format.go::FormatCurrency() has no references. helpers/validate.go::ValidatePhone() also unused. 3 unused imports in the same file. 1 unreachable branch: error handler at line 89 can never execute because error is checked earlier. Recommend: remove unused code or add TODO comment if planned for future use.
Error Handling
Audit error handling: unchecked errors, swallowed exceptions, missing rollback logic, insufficient logging of failures
Error handling audit: 4 issues found. 1. payment_service/processor.go line 67: DB transaction has no rollback on error. 2. Lines 89, 104: errors returned by external API calls are ignored. 3. order_service/handlers.go line 156: panic() called instead of returning error (will crash service). 4. Missing structured logging on 3 error paths -- incidents will be hard to debug. Recommend: add defer rollback, check all errors, replace panic with error return.
Migration Check
We're migrating from REST to gRPC. Flag any code in this PR that still uses the old REST clients or patterns we're deprecating.
Migration completeness check: PR adds 2 new features. Feature A (order creation) correctly uses new gRPC client. Feature B (user lookup) still imports and uses deprecated REST client (user_client/rest/client.go). Also found 1 use of legacy error format that's incompatible with gRPC status codes. Recommend: replace REST client with user_client/grpc/client.go, migrate error handling to use status.Error().
OWASP
Run OWASP compliance check on this PR. Flag injection vulnerabilities, broken auth, sensitive data exposure, and XXE attacks.
OWASP scan complete. 3 issues found: A03:2021 Injection -- SQL concatenation in search handler (CRITICAL). A07:2021 Auth Failure -- JWT token validation disabled in test mode but test flag is readable from env in prod (HIGH). A02:2021 Crypto Failure -- password hashing uses MD5 instead of bcrypt (CRITICAL). Clean: no XXE, no sensitive data logging detected. Remediation guide attached.
Infrastructure
Review infrastructure-as-code changes: Terraform security groups, missing encryption, overly permissive IAM, missing health checks
IaC review for PR #847: 1 critical issue -- security group opens port 22 (SSH) to 0.0.0.0/0 in terraform/modules/vpc/sg.tf. Should restrict to VPN CIDR only. 2 warnings: RDS instance has backup retention set to 1 day (recommend 7), ECS task definition missing health check (will cause deployment issues). IAM policies are scoped correctly. Encryption enabled on all resources.
Client Standards
Enforce agency client-specific rules: all API errors must include request_id, all database queries must have timeouts, logging must use structured format
Client standard violations: 2 new API error responses in api/handlers/orders.go missing request_id field (lines 67, 92). 1 database query in models/user.go has no timeout set (line 134 -- risk of hung connections). All logging uses structured format (zap). Recommend: add request_id to error structs, wrap query with context.WithTimeout(5s).
Dead Code
Detect dead code, unused imports, unreachable branches, and functions with no callers across the entire codebase
Dead code analysis: PR adds 2 new functions but neither are called anywhere. helpers/format.go::FormatCurrency() has no references. helpers/validate.go::ValidatePhone() also unused. 3 unused imports in the same file. 1 unreachable branch: error handler at line 89 can never execute because error is checked earlier. Recommend: remove unused code or add TODO comment if planned for future use.
Error Handling
Audit error handling: unchecked errors, swallowed exceptions, missing rollback logic, insufficient logging of failures
Error handling audit: 4 issues found. 1. payment_service/processor.go line 67: DB transaction has no rollback on error. 2. Lines 89, 104: errors returned by external API calls are ignored. 3. order_service/handlers.go line 156: panic() called instead of returning error (will crash service). 4. Missing structured logging on 3 error paths -- incidents will be hard to debug. Recommend: add defer rollback, check all errors, replace panic with error return.
Migration Check
We're migrating from REST to gRPC. Flag any code in this PR that still uses the old REST clients or patterns we're deprecating.
Migration completeness check: PR adds 2 new features. Feature A (order creation) correctly uses new gRPC client. Feature B (user lookup) still imports and uses deprecated REST client (user_client/rest/client.go). Also found 1 use of legacy error format that's incompatible with gRPC status codes. Recommend: replace REST client with user_client/grpc/client.go, migrate error handling to use status.Error().

Three things that change everything

01

Architecture-Aware Review

Reviews that understand your entire system, not just the diff. Catch issues that span repos, services, and dependencies.

  • "Does this change break the API contract?"
  • "What services will be affected by this refactor?"
  • "Is this pattern consistent with the rest of the codebase?"
  • "Will this change cause a performance regression?"

Traditional code review tools see diffs in isolation. Probe understands call graphs, service dependencies, API contracts, and shared interfaces. It knows when a change in one service breaks consumers in another repo. It catches architectural violations that no single file diff could reveal.

Cross-repo impact analysisDetect breaking changes that affect services in other repositories
Call graph understandingTrace how changes propagate through the system, not just the file
API contract validationVerify backward compatibility for all public interfaces
02

Cross-Service Impact Analysis

Know what breaks when you change something, before you merge. Map dependencies across your entire architecture.

Most breaking changes aren't caught by tests. They're caught in production, when a dependent service starts failing. By then, you're debugging an incident instead of fixing a PR.

Probe maps your service dependencies, API contracts, and shared libraries. When a PR modifies a public interface, it flags every consumer that will be affected. When you deprecate a method, it shows you everywhere it's still called. It turns "did I break anything?" from a hope into a fact.

Dependency mappingUnderstand which services depend on the code you're changing
Breaking change detectionAutomatic flagging of changes that break downstream consumers
Migration trackingMonitor progress when deprecating old patterns or APIs
03

Configurable Review Rules

Define standards once, enforce them everywhere. Different rules per repo, per team, per client.

Every team has standards. Some are documented. Most live in senior engineers' heads. New people don't know them. Busy reviewers forget to check them. Technical debt accumulates because the guardrails aren't automated.

Probe lets you codify your standards. Define rules per repo, per language, per team. Agency working with multiple clients? Different rules per client. Platform team supporting app teams? Different rules per service tier. The rules evolve with your codebase, versioned alongside the code.

Custom review policiesDefine and enforce team-specific, client-specific, or project-specific standards
Multi-tier enforcementDifferent rules for core services vs. experiments, prod vs. staging
Evolving standardsRules version with your code, updated through PRs like any other policy

Workflow packs for every review scenario

Pre-built workflows for security, quality, compliance, and more. Deploy in minutes, customize to your needs, improve over time.

Every PR

Automated First-Pass Review

Every PR gets a comprehensive first-pass review the moment it opens. Security scan, architecture check, test coverage analysis, and style consistency. Human reviewers see a pre-reviewed PR with issues already flagged.

  • OWASP security vulnerability scan
  • Cross-service breaking change detection
  • API contract validation
  • Test coverage gap identification
Pre-Merge Gate

Blocking Quality Checks

Define a set of non-negotiable checks that must pass before merge. Security issues block automatically. Missing tests for high-risk code block. Breaking changes without migration plan block. No exceptions.

  • Critical security issue blocking
  • Required test coverage enforcement
  • Breaking change approval requirement
  • Compliance policy validation
Weekly

Quality Audit

Weekly audit of all merged code. Check for patterns that slipped through, accumulating technical debt, drift from standards, and areas where test coverage is declining. Early warning system for quality erosion.

  • Technical debt accumulation report
  • Standards compliance drift detection
  • Test coverage trend analysis
  • Code smell aggregation
Scheduled

Security Sweep

Scheduled security scans across the entire codebase. Check for newly disclosed CVEs in dependencies, OWASP vulnerabilities that may have been introduced, exposed secrets, and insecure configurations. Report posted to security channel.

  • Dependency CVE monitoring
  • Secret exposure detection
  • OWASP compliance verification
  • Security policy drift alerts

Built for security and compliance

On-Premises Deployment

Runs entirely in your infrastructure. Your code never leaves your network. Full data sovereignty and compliance with SOC 2, HIPAA, and regulatory requirements.

Any LLM Provider

Use your preferred model -- Claude, GPT, open-source, or self-hosted. No vendor lock-in. Switch models without changing workflows or losing review quality.

Full Audit Trail

OpenTelemetry instrumentation captures every review, every check, every decision. Complete traceability for compliance audits and security investigations.

Open Source Core

The core review engine is open source and auditable. Your security team can inspect how reviews work and verify no code is sent to external systems.

Open Source vs Enterprise

Start with the open-source core for single-repo review. Scale to enterprise when you need cross-repo analysis and workflow automation.

Probe Open Source

Free forever

The core review engine. Perfect for evaluating the technology on a single repository or for individual developers reviewing their own code.

  • Single-repo code review -- Review PRs in one repository at a time
  • Security vulnerability scanning -- OWASP checks, exposed secrets, insecure patterns
  • Basic test coverage analysis -- Flag code paths without tests
  • MCP integration -- Use with Claude Code, Cursor, or any MCP-compatible tool
  • Any LLM provider -- Claude, GPT, open-source models -- your choice
  • Privacy-first -- Everything runs locally, no code sent to external servers

Probe Enterprise

Contact for pricing

Everything in Open Source, plus cross-repo analysis, architecture awareness, custom review rules, and workflow automation.

  • Multi-repository architecture -- Review changes across your entire service mesh
  • Cross-service impact analysis -- Detect breaking changes that affect other repos
  • Architecture-aware reviews -- Understand call graphs, dependencies, and API contracts
  • Custom review policies -- Per-repo, per-team, per-client standards enforcement
  • Workflow automation -- Pre-built workflows for security, compliance, quality audits
  • API contract validation -- Verify backward compatibility on every PR
  • Performance regression detection -- Flag N+1 queries, missing indexes, inefficient patterns
  • Dependency analysis -- CVE scanning, license compliance, deprecation warnings
  • GitHub / GitLab integration -- Inline PR comments, status checks, blocking gates
  • On-premises deployment -- Runs in your infrastructure for maximum security

How to evaluate Probe for code review

Recommended approach: validate the core technology with open source on a single PR, then pilot the enterprise features on a real project.

Phase 1

Technical Validation

~10 minutes

Get automated code review running on a real PR before your next meeting. No account required.

~5 min

Add GitHub Action for PR Review

Add a GitHub Action to your repo. Every PR automatically gets a first-pass review: security scan, breaking change detection, test coverage analysis. Fully customizable per project.

You get: Automated PR review on every pull request. Configure multiple checks (security, performance, dependencies) and customize rules per repository.
~2 min

Review Code in Your Editor

Add Probe to Claude Code or Cursor. Get architecture-aware code review directly in your editor. Ask questions about the review, drill into specific issues, understand the full context.

You get: An AI code review agent that understands your codebase structure. Review your own code before opening a PR, or audit someone else's PR with full context.
AI code editor setup →
~10 min

Run a Security Audit

Run a one-time security audit on your entire repository. Scan for OWASP vulnerabilities, exposed secrets, insecure patterns, and known CVEs. Get a detailed report with remediation steps.

You get: A comprehensive security audit report. Understand your current security posture and prioritize fixes based on severity and impact.
Security audit guide →
Phase 2

Pilot Project

2-4 weeks

Once you've validated the core technology, run a pilot on a real project to test cross-repo analysis, custom review rules, and workflow automation.

1
Pick a pilot project

Choose a project with multiple repositories, active development, and where code review quality matters. Ideally a project where you've had production incidents from code review gaps.

2
Architecture mapping session

We'll work with your team to map service dependencies, define API contracts, and configure cross-repo analysis. This sets up the foundation for architecture-aware reviews.

3
Define review standards

Codify your team's review standards. Security requirements, architectural patterns, testing expectations, performance guidelines. These rules will be enforced on every PR.

4
Measure impact

Track issues caught before merge vs. after, time saved in human review, and reduction in review-related production incidents. Compare to your baseline before Probe.

Success criteria: Measurable reduction in production incidents from code review gaps. Faster PR cycle time. Consistent review quality across all reviewers.

Want to discuss how a pilot would work for your team?

Schedule a Technical Discussion

What teams ask us about AI code review

How is this different from GitHub Copilot or linters?

Copilot suggests code. Linters check style. Neither understands your architecture. They don't know that this change breaks an API contract, or that this pattern violates your team's standards, or that three other services depend on the interface you're modifying.

Probe understands your entire system -- dependencies, contracts, patterns, and historical decisions. It reviews code the way a senior engineer would, with full context.

Does this replace human code review?

No. It replaces the first pass -- the mechanical checking for security issues, missing tests, style violations, and obvious bugs. Human reviewers focus on what they're good at: design decisions, business logic, and architectural trade-offs. Not hunting for missing error checks.

Can we customize the review rules?

Yes, extensively. Define rules per repo, per team, per language. Different standards for core services vs. experiments. Agency working with multiple clients? Different rules per client. Rules live as code, versioned alongside your codebase, updated through PRs.

What about false positives?

Every automated review system has false positives. Probe minimizes them by understanding context -- it knows the difference between a security vulnerability and a safe pattern. When it does flag something incorrectly, you can tune the rule or suppress that check. Over time, your review quality improves as the rules learn from your feedback.

Ready to catch what matters?

Let's talk about how Probe can improve your code review process. We'll show you how it works on a real PR from your codebase and discuss how to structure a pilot.