diffy

Using diffy

Reviews

What diffy posts on a pull request, how serious each finding is, and what the statuses in diffy mean

What a review contains

  • A summary of the pull request, with the findings grouped by how serious they are.
  • Comments on the lines that have a problem. Each says what is wrong, when it happens and what it causes.
  • A fix prompt on each finding: text you can copy to a coding agent, naming the file and the lines, the problem and how to check the fix. It is always written in English.
  • A suggestion block, only when diffy can give the exact replacement for the lines.

A finding about a line that is not part of the diff cannot be a comment on GitHub, so it goes in the summary instead. A review has at most 25 findings. diffy leaves style, formatting and naming alone: it reports bugs, security problems, data loss, race conditions, broken error handling and performance problems with a clear impact.

Severity

SeverityMeaning
criticalAn exploitable security hole, data loss or corruption, or a crash on a common path.
highIncorrect behavior users will hit. Fix it before merging.
mediumA bug in an edge case, or a likely future bug.
lowA minor correctness or robustness issue worth fixing.

By default diffy also reports missing error handling, untested changes and maintainability problems, as low or medium findings (the assertive profile). Set profile: chill in .diffy.yaml to keep only what matters.

Checked before it is posted

Before posting, diffy asks the model to try to prove each finding wrong and drops the ones it cannot defend. You get fewer false alarms, at the cost of a second call. The server setting VERIFY_FINDINGS turns this off.

Statuses

StatusMeaning
queuedWaiting its turn. Reviews run one at a time.
runningThe model is reading the change now.
postedThe review is on the pull request.
failedSomething went wrong, for example the key was rejected or GitHub could not be reached. The reason is shown on the review.
skippedNothing was posted: there was nothing to review, or a newer commit was pushed before this one ran. The newer commit gets its own review.

Language

The summary, titles and explanations are in English by default. Set language: th in .diffy.yaml for Thai. Code, file paths and the fix prompt stay in English.