Four Review Phases
1
Setup and Classification
The engine identifies the diff under review, its base, the related issue’s acceptance criteria and the risk profile of the changed files.
2
Verification Checklist
PRFlow builds a checklist of the claims this specific change makes: dependency interactions, test and mock alignment, data-format assumptions, API contracts and absolute claims. It removes overlapping checks. Simple presence or absence claims are resolved directly. Deeper claims go to a reviewer for evidence-based evaluation.Each item comes back as pass, fail or inconclusive. A failed item and an inconclusive item both prevent a clean approval.
3
Specialized Reviewers
PRFlow dispatches reviewers with different focus areas, in separate contexts, so they do not inherit each other’s conclusions. Four always run and two run only when the change warrants them.Findings identify a file, a line and a defect type where possible. PRFlow uses that signature to count independent corroboration: when several reviewers report the same defect, confidence in the finding rises. A finding from a single reviewer stays visible for closer human scrutiny.
4
Verdict
PRFlow combines the checklist results, the findings, which reviewers completed and the configured severity threshold into one verdict. It reports incomplete checklist items and any reviewer that did not complete.
Which Reviewers Run
Four reviewers run on every review:
Two more run only when the diff warrants them:
A reviewer that does not run is not a reviewer that found nothing. When two or more reviewers fail to return results, PRFlow adds a partial review coverage note to the verdict so you can see the gap.
The Verdict Vocabulary
Every review reports one of five verdicts.What Drives a Rejection
Any one of these produces aREJECT:
- A verification-checklist item that failed.
- A verification-checklist item that was inconclusive. An unknown result is treated as blocking, not as a pass.
- A finding at or above the configured severity threshold. The default is
critical, so only critical findings reject. Setprflow_review.verdict_severity_thresholdtoimportantorsuggestionto make more findings reject. See Review Settings.
The Rules That Surprise People
Further rejection rules do not read the severity threshold at all. “Untrue” here means the added or modified line contradicts the code as it now stands, is already stale or contradicts another part of the same change. PRFlow treats this as a correctness principle rather than a severity grade: a change that documents itself incorrectly is wrong regardless of how minor the wording looks.Why this rule is absolute
Why this rule is absolute
A wrong comment or a wrong documentation line survives the pull request and misleads every reader afterwards, including the next automated run. A severity threshold exists so a team can decide how much polish blocks a merge. It is not meant to let a change ship a statement about itself that is false. Rating that as a suggestion, and then letting the default threshold ignore it, is exactly how such lines used to reach the default branch.
APPROVE WITH CAVEAT, because no checklist was generated.
Review and Fix
/prflow:review-and-fix runs the same engine inside a correction loop. It evaluates each finding, applies the corrections it can justify, verifies each correction and reviews the result again. The configured default cap is five fix iterations.
Before an approval-side result stands, a shadow pass reviews the diff again without seeing the primary reviewers’ conclusions. It can send a missed finding back into another iteration. It also reports which planned reviewers completed and any coverage gap it knows about.
A report with no gaps means only that PRFlow recorded no known gap. It does not mean every defect was found.