Review the PR
An independent read of the whole diff from a context that never watched it being written. Read-only: findings only, never edits.
Pre-flight
- Resolve the PR, its base and its head:
gh pr view <pr> --json number,baseRefName,headRefOid. Every finding is bound to that SHA. - A review report for this exact SHA already exists - report it and stop.
Steps
Run the review over
git diff <base>...HEAD- the PR's whole diff, not the working tree. The reviewer comes from profilecode_review_skill:auto(default) uses the host's own code-review skill when it ships one, elsedev-review-changes. Its checks and severity ladder are the review; this skill adds the axis below and the recording.The claims axis - what a pre-commit review could not check, because the PR did not exist yet:
- every behavior the PR body claims has code in the diff that delivers it;
- nothing in the diff contradicts a step a verification report recorded as passed;
- the diff contains nothing the body never mentions - undeclared scope is a finding, not a bonus;
- the deployment-notes section (profile
release_review) names every migration, environment or secret change the diff actually contains. An unnamed one is Critical:git-create-releasereads that section, so what is missing there is missing from the release checklist.
Each finding cites
file:lineplus the body line it contradicts.Verify every finding by re-reading the code; drop what cannot be evidenced. A finding that restates a rule without a line of the diff is not a finding.
Record. One PR comment (
gh pr comment) in the report envelopegit-workflowdefines - never an inline review thread, because findings posted as threads come back throughgit-complete-prand the run starts reviewing itself in a circle:
## Code review - CLEAN | PASS-WITH-WARNINGS | BLOCK
head: <sha> - base: <base> - files N, +A/-D
### Critical
- `path/file.ts:42` - <what> - <the rule or PR-body line it breaks>
### Warning
### Suggestion
- Label. No Critical finding stands - add
ai:reviewed. Any Critical - write no label and return the findings; the outcome isgit-complete-pr's to write.
Delegation
One pass by default. Fan out by review dimension only when the diff exceeds what one pass holds: each worker gets its dimension and its slice plus the rules, never the author's account of why the change is right - a worker that inherits the rationale confirms it. Step 3 still applies to everything that comes back: a finding this skill cannot evidence itself is dropped, not forwarded.
Verify
- One comment naming the head SHA; every finding carries
file:lineplus evidence; a verdict is stated;ai:reviewedpresent only when no Critical finding stands.
Scope / hand-off
- Fixing findings, and the rounds -
git-finalize-pr; other people's review threads -git-complete-pr; behavior against the PR's own steps -git-verify-pr.
Constraints
- Read-only: never edits, stages, commits or pushes.
- Only Critical blocks the factor. Promoting warnings to blockers makes the factor unearnable and the ladder meaningless.
- A diff mixing unrelated changes - the first finding is "split it".
- One issue comment per run; never inline review comments.