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
| Severity | Meaning |
|---|---|
critical | An exploitable security hole, data loss or corruption, or a crash on a common path. |
high | Incorrect behavior users will hit. Fix it before merging. |
medium | A bug in an edge case, or a likely future bug. |
low | A 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
| Status | Meaning |
|---|---|
queued | Waiting its turn. Reviews run one at a time. |
running | The model is reading the change now. |
posted | The review is on the pull request. |
failed | Something went wrong, for example the key was rejected or GitHub could not be reached. The reason is shown on the review. |
skipped | Nothing 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.