Quickstart
Install, open a pull request, read the review. About five minutes, most of which is GitHub's installation screen.
Install the app
- Open the SuperDiffs GitHub App and choose Install.
- Pick the account or organisation, then select repositories. Start with one repository. There is nothing to undo later, but a first impression on a repository you know well is worth more than coverage.
- Approve the permissions. They are read access to code and metadata, plus write access to pull requests and checks — enough to read a diff and post a review, and nothing that can push a commit to your branches.
Get your first review
Open a pull request, or push a commit to one that is already open. A review starts within a few seconds of the webhook and normally posts in one to three minutes, depending on how much changed.
To review a pull request that is already open and untouched since installation, comment on it:
@superdiffs reviewCommands are honoured from people with write access to the repository. A command in the diff or in a code comment does nothing — see commands.
Read the review
You should see up to three things:
- A summary comment — the change in a paragraph, a file walkthrough, and counts by severity. On the next push it is edited in place, so the thread does not fill with stale summaries.
- Inline comments — one claim each, with the concrete scenario that makes it a defect. If the fix is unambiguous, a
suggestionblock you can commit from GitHub. - A check run — the review status, linked to the comments. Neutral by default: it reports, it does not block, until you make it required.
Disagree with a comment? Reply in the thread, or resolve it. A resolved finding is matched by content rather than by line number, so it stays resolved through rebases and force-pushes.
Add a config file
Defaults are usable without any configuration. When you want to change them, commit this file at the repository root and open a pull request with it — the new settings apply from the moment it merges into the base branch.
# .superdiffs.yaml — commit this at the repository root.
# Everything is optional. These are the four knobs that matter on day one.
profile: balanced # quiet (1 pass) | balanced (3) | thorough (5)
severity_threshold: minor # critical | major | minor | nit
review:
drafts: false # don't review while the PR is a draft
max_comments: 15 # lowest severities are dropped first
paths:
filters:
- "!**/dist/**"
- "!**/*.gen.ts"
Every key is optional, and unknown keys are an error rather than a shrug: a typo in this file is reported on the pull request that introduced it instead of silently doing nothing. The full reference is in configuration.
Tune it in the first week
If it says too much
- Raise
severity_thresholdtomajor. This is the single most effective change and it takes effect on the next push. - Drop
profiletoquiet: one find pass, major and above, at most ten comments. - Filter paths that are not really yours to review — generated clients, fixtures, migrations — with
paths.filters.
If it misses things you care about
- Raise
profiletothoroughfor five passes and nit-level output. - Write the rule down in
paths.instructions. “Every handler undersrc/api/**must be organisation-scoped” is the kind of thing a reviewer cannot infer from the diff, and the kind of thing it catches reliably once told. - Run
@superdiffs full-reviewon a pull request you already know has a bug in it. If we do not find a defect you can point at, that is a data point we want — the repository link plus what we missed, to the contacts on this site.
When nothing was posted
In order of likelihood:
- Nothing was wrong. A clean pull request gets a summary and no findings. Check the summary comment exists — if it does, the review ran.
- The pull request is a draft. Drafts are skipped by default. Mark it ready, or set
review.drafts: true. - Every changed file was skipped. Lockfiles, generated code, vendored trees and binaries never get comments. See limits and skips.
- The title or author is on an ignore list.
wipand[skip review]in the title are ignored by default. - The pull request is too large. Above the file limit we post the summary and ask you to opt in rather than reviewing 900 files badly.
@superdiffs config answers most of these directly: it posts the effective configuration for the repository, including which layer set each value.