Skip to main content
Macroscope automatically reviews every pull request for correctness. When it finds an issue, it leaves a comment on the PR describing the problem and suggesting a fix. You can also configure fully customizable AI agents that trigger on every pull request open, push, and manual check rerun by setting up Check Run Agents. 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.

Detection Mode

Detection Mode lets you tune how Macroscope code review balances finding more bugs vs. minimizing noise. There are two options:
  • Prefer Coverage: detects as many issues as possible. This gives higher bug detection rates, with an increase in overall comment volume and a higher likelihood of false positives. Recommended for teams who use coding agents to review and validate PR comments, since an agent can absorb the occasional false positive.
  • Prefer Precision: prioritizes high-confidence findings. This gives lower bug detection rates, but also a lower likelihood of false positives. Recommended for teams who review comments manually in GitHub.
Prefer Coverage is the default for new and existing repositories.

Configuring Detection Mode

Detection Mode can be set at two levels:
  • Per repository, in Settings → Repos. Select one or more repos and choose a mode. Use Defaults to set the mode applied to newly linked repos.
  • Per developer, in Settings → Personal under Code Review → Detection Mode. Choose Prefer Coverage, Prefer Precision, or Repo Default.
A developer’s Detection Mode overrides the repository setting for that developer’s pull requests. Leaving the personal setting on Repo Default defers to the repository’s mode.

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.

Code Review Activity Log

The Code Review activity log in the Macroscope web app shows all review comments across your repositories.

Source Column and Filtering

Each comment displays a Source column indicating where the feedback originated (e.g. Correctness, Check Run Agent). Use the source filter to focus on comments from a specific review type. Filters persist in the URL, so you can bookmark or share filtered views. When exporting to CSV, the export respects your current filters.

Review Type Filtering in Feedback Metrics

Feedback metrics pages support filtering by review type. Select a specific type to see metrics for that review source, or view a cross-type overview to compare feedback across all review types.

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.md

You can tell Macroscope to skip specific files during code review by adding a .macroscope/ignore.md 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.md in your repository.
  2. Add one file path pattern per line.
  3. Commit and push. Macroscope picks it up automatically on the next review.
The legacy path .macroscope-ignore at the repo root is still supported for backward compatibility, but .macroscope/ignore.md is the recommended location. This consolidates all Macroscope configuration into the .macroscope/ directory.

Example

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.

Default Ignore Patterns

Macroscope ships with a built-in set of ignore patterns covering vendored dependencies, generated code, binary assets, and test files. These are applied automatically when no .macroscope/ignore.md file exists in your repo.
Creating your own .macroscope/ignore.md replaces these defaults rather than extending them. To preserve the defaults, copy the patterns below into your .macroscope/ignore.md file and add your own on top.

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.md affects code review and Check Run Agents. It does not affect commit summaries, status, or the Slack agent.

How Does Code Review Work?

Macroscope reviews every file in a PR. For ten natively-supported languages, dedicated AST codewalkers build a reference graph for lower-latency reviews. All other languages — including Elixir, Starlark, C/C++, PHP, and more — are fully reviewed via Macroscope’s agentic analysis engine.

Native AST Codewalkers

For natively-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). Pre-building the reference graph makes these reviews lower-latency. Languages with native AST codewalkers: Go, Python, TypeScript, JavaScript, Vue.js (including Nuxt), Java, Rust, Kotlin, Swift, Ruby.

Agentic Analysis

All other languages — including Elixir, Starlark, C/C++, PHP, and more — are fully reviewed via Macroscope’s agentic analysis engine with full cross-file codebase context. Review latency is slightly higher than native-AST-walked languages, which pre-build the reference graph.

Universal File Support

Config files, documentation, scripts, and other non-code files are also reviewed. Every file in a PR gets examined. 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.