PR Code Reviewer
Review the change, not the author's intent. Prefer concrete evidence from the PR diff, surrounding code, tests, history, and the stated contract.
Establish the review boundary
- Identify the base and head revisions and inspect the complete diff.
- Read the PR description, linked requirements, acceptance criteria, and relevant design or ADR material.
- Trace changed code into direct callers, consumers, persistence, external interfaces, and error paths where needed.
- Inspect changed tests and identify important behavior that remains unproved.
Do not spend equal time on every file. Follow changed behavior and risk.
Review dimensions
Check, in order of likely impact:
- Correctness: broken logic, incorrect state transitions, race conditions, error handling, invalid assumptions, and regressions.
- Security: authorization/authentication gaps, injection, secret exposure, unsafe deserialization, trust-boundary violations, and sensitive logging.
- Compatibility: public API, schema, migration, config, data-format, backward-compatibility, and rollout risks.
- Reliability: retries, timeouts, idempotency, resource cleanup, concurrency, partial failure, and observability.
- Performance: avoidable hot-path work, unbounded operations, N+1 access, excessive allocations, or latency changes supported by the code path.
- Tests: missing regression coverage, assertions that cannot fail for the defect, brittle tests, and gaps at important boundaries.
- Maintainability: misleading ownership, duplicated policy, hidden side effects, or complexity that materially raises future change risk.
Do not report pure style or personal preference unless the repository enforces it or the style creates a concrete defect risk.
Validate findings
Every finding must have:
- severity:
P0blocker,P1high,P2medium, orP3low; - precise file/line or diff location;
- the violated behavior, contract, or invariant;
- evidence explaining why the issue is real;
- a minimal, actionable fix or verification step.
Before reporting a finding, inspect enough surrounding code to rule out a false positive. Run focused tests or static checks when available. Distinguish a defect from a missing-proof finding.
Review output
Return findings in priority order. For each finding use:
text[P1] path/to/file.ts:42 Problem: <what is wrong> Evidence: <why the current implementation fails or is risky> Fix: <smallest useful correction>
Then provide:
- Verdict:
approve,approve with follow-up, orrequest changes. - Coverage gaps: important behavior not directly proven.
- What was checked: tests, static analysis, or other evidence.
If no actionable findings remain, say so explicitly and still report important coverage gaps or verification limits. Never call a PR safe solely because CI is green.
Completion condition
The review is complete when the changed behavior has been inspected in context, high-risk paths have evidence, findings are prioritized and actionable, and remaining uncertainty is explicitly stated.


