Skip to main content

How a review fires

A Qodex review starts when a connected GitHub repo sends an event for a pull request. The most common triggers are opening a PR, pushing new commits, reopening a PR, or asking manually with @qodex review.

Review sequence

  1. Someone opens or pushes to a PR. GitHub posts the event to Qodex. If the repo is not connected to any Qodex project, the event is acknowledged and dropped.
  2. Qodex posts a Check Run as in progress. A Qodex review check appears in the PR’s checks panel so the author knows a review is running.
  3. The agent reviews the diff. Qodex pulls the unified diff, reads .qodex.yaml from the PR head, loads project memory, and runs a high-precision review pass. Findings below the 0.7 confidence floor are dropped.
  4. Qodex posts comments. Findings on changed lines become inline comments. Findings outside the diff move into the walkthrough body under “Findings outside the diff.” The walkthrough also includes a summary, severity counts, and a “What Qodex checked” transparency block.
  5. The Check Run completes. In advisory mode, the conclusion is neutral. In gated mode, the conclusion is failure only when a verified finding meets block_on_severity; otherwise it is success. Unverified findings never block.
The whole flow runs in the background. The webhook returns immediately so GitHub does not retry.

Re-running a review

Comment @qodex review on the PR thread to review the current head commit again. The Check Run on that same head SHA updates in place, so manual re-runs do not stack duplicate checks. See Slash commands for the full command list.

When Qodex skips a PR

Qodex skips a PR with a neutral Check Run when:
  • The PR is a draft. Mark it ready for review to fire the next review.
  • The repo’s .qodex.yaml has pr_review.enabled: false. Set enabled: true to re-enable.
  • The PR author is a bot.
  • The changed files all match paths.exclude in .qodex.yaml.
  • The PR action is not opened, synchronize, or reopened. A labeled event, for example, is acknowledged but does not run a review.
See Troubleshooting for what to do in each case.

Walkthrough anatomy

Check Run and merge gating

Slash commands

Connect a repo