Skip to main content
Macroscope automatically reviews every pull request for correctness and against your custom rules. When it finds an issue, it leaves a comment on the PR describing the problem and suggesting a fix. You can reply to any comment, give 👍 or 👎 feedback to help Macroscope learn, or ask it to fix the issue for you.

Code Review Settings

  • Enabled by default on every linked repo.
  • Toggle on/off per repo in Settings → Repos.
  • Change the default for new repos in Settings → Repos → Defaults.
  • Set always-review labels to force a review even when automatic review is off.
  • Set skip labels to prevent review even when automatic review is on. Skip labels take precedence over always-review labels.
Go to Settings → Repos in the Macroscope web app to edit code review settings per-repo or in batch.

Manually Triggering a Review

Comment “@macroscope-app review” on any PR in GitHub to trigger a review, even if automatic code review is disabled for that repo.

How Reviews Appear in GitHub

Check Runs

When issues are found, the GitHub check run completes with NEUTRAL instead of SUCCESS. Check run details show per-file exclusion reasons.

Comment Resolution

Comments link to the commit where they were resolved. Macroscope re-evaluates automatically when new code is pushed.

Issue Severity Levels

  • CRITICAL: data loss, security breach
  • HIGH: production crashes, security degradation
  • MEDIUM: broken functionality (recoverable)
  • LOW: cosmetic, edge-case issues

Excluding Files with .macroscope-ignore

You can tell Macroscope to skip specific files during code review by adding a .macroscope-ignore file to your repository. The file uses a simplified glob pattern syntax, one pattern per line. Lines starting with # are comments, blank lines are ignored.

Setup

  1. Create a file named .macroscope-ignore in the root of your repository.
  2. Add one file path pattern per line.
  3. Commit and push. Macroscope picks it up automatically on the next review.

Example

# Vendor dependencies
vendor/**

# Generated code
*.pb.go
*.generated.go

# Lock files
*.lock

# Documentation assets
docs/**/*.pdf

# Log directories
logs/**
Use ** to match across directories, * to match within a single path segment, and ? to match a single character. Patterns without a / match at any depth. Maximum 1,000 patterns.

Behavior

  • Pattern matching is deterministic. If a file matches, it is always skipped, including on manual invocations. There is no override mechanism.
  • Skipped files are listed in the check run details.
.macroscope-ignore only affects code review. It does not affect commit summaries, status, or the agent.

How Does Code Review Work?

Macroscope reviews every file in a PR. For supported languages, it uses deep AST-based analysis. For everything else, it uses an AI-powered agentic approach.

Native AST Analysis

For supported languages, Macroscope’s code walkers parse the Abstract Syntax Tree to build a graph-based representation of your codebase. This enables deep, language-aware review with per-language model tuning and framework-specific handling (e.g. parsing .vue single-file components and Nuxt conventions). Supported languages: Go, Python, TypeScript, JavaScript, Vue.js (including Nuxt), Java, Rust, Kotlin, Swift, Ruby, Elixir, Starlark.

Universal File Support

All other files (config, docs, scripts, other languages) are reviewed via an AI-powered agentic approach. Every file in a PR gets examined, just without language-specific AST parsing. Macroscope also uses web search during review to pull in up-to-date context, such as latest library documentation, API signatures, and deprecation notices.

Models

Macroscope’s auto-tune system tests multiple model, prompt, and parameter combinations per language to find the best config. An LLM-driven curator analyzes failures and proposes improvements each iteration. Learn more about our auto-tune system.