Post a PR review to GitHub with inline comments via the gh API. Use when ready to submit a review from PR_REVIEW_<number>.md.
From pr-reviewnpx claudepluginhub app-vitals/marketplace --plugin pr-reviewThis skill uses the workspace's default tool permissions.
Post a review from PR_REVIEW_<number>.md to GitHub using the reviews API.
PR_REVIEW_<number>.md exists with review contentAlways diff against the PR's actual base branch, not main:
base=$(gh pr view <number> --json baseRefName -q '.baseRefName')
git diff "$base"...HEAD
PRs targeting feature branches will show wrong diffs if compared to main.
The PR_REVIEW_<number>.md is a draft for the reviewer. The posted review is from the reviewer to the PR author. Reframe the tone accordingly. Be direct — no filler language ("FYI", "Note:", "Just a heads up").
gh pr view <number> --json headRefOid -q '.headRefOid'
gh pr view <number> --json baseRefName -q '.baseRefName'
For each issue with a specific file:line reference:
Check the diff to verify line numbers:
git diff <base>...HEAD -- <file>
Create pr_review_<number>.json:
{
"commit_id": "<head_sha>",
"body": "<review body>",
"event": "APPROVE|COMMENT",
"comments": [
{
"path": "path/to/file.ts",
"line": 123,
"side": "RIGHT",
"body": "Comment text"
}
]
}
The review body should be brief — the inline comments carry the detail. A good body is just the verdict and a sentence of context. Don't enumerate what was addressed, list strengths, or repeat inline comment content.
If all issues have inline comments, the body needs only: verdict + one-liner + signature. Don't duplicate inline feedback in the body — the PR author sees both.
gh api -X POST /repos/{owner}/{repo}/pulls/{number}/reviews --input pr_review_<number>.json
Show the link to the posted review from the API response html_url.
Use this heuristic when deciding between APPROVE and COMMENT:
When in doubt: if it's something that should be fixed before shipping, use COMMENT.
For approvals, prefer concise messages:
Don't repeat the entire review summary for approvals — the inline comments speak for themselves.