with one click
github-review
// Review a GitHub pull request by collecting PR context, analyzing risks, and publishing one structured review.
// Review a GitHub pull request by collecting PR context, analyzing risks, and publishing one structured review.
| name | github-review |
| description | Review a GitHub pull request by collecting PR context, analyzing risks, and publishing one structured review. |
Use this skill when you need to review a pull request, identify the highest-signal findings, and publish one structured GitHub review.
gh CLI authentication is required.GITHUB_TOKEN/GH_TOKEN needs permissions to read PR data and publish reviews/comments.GITHUB_OUTPUT_DIR: output artifacts directory (caller-provided preferred; otherwise temp dir).GITHUB_CONTEXT_DIR: context directory (default ${GITHUB_OUTPUT_DIR}/github-context).Preferred input when already available:
${GITHUB_CONTEXT_DIR}/manifest.jsonOptional inputs:
status=present in manifest.json.If no manifest is provided, collect PR context directly with gh:
gh pr view <pr_number> --repo <owner/repo> --json number,title,body,state,url,baseRefName,headRefName,headRefOid,author,createdAt,updatedAt,mergeable,reviews,changedFiles,additions,deletions
gh pr view <pr_number> --repo <owner/repo> --json files
gh pr diff <pr_number> --repo <owner/repo>
gh api repos/<owner>/<repo>/issues/<pr_number>/comments --paginate
gh api graphql -f query='
query($owner:String!, $repo:String!, $number:Int!) {
repository(owner:$owner, name:$repo) {
pullRequest(number:$number) {
reviewThreads(first:100) {
nodes {
isResolved
comments(first:100) {
nodes { id body path line author { login } }
}
}
}
}
}
}' -F owner=<owner> -F repo=<repo> -F number=<pr_number>
This skill must not assume fixed context filenames.
Use manifest.artifacts[] (id, path, status, description) to determine available context.
${GITHUB_CONTEXT_DIR}/manifest.json exists, use it.gh.Generate:
${GITHUB_OUTPUT_DIR}/review.md${GITHUB_OUTPUT_DIR}/review.json${GITHUB_OUTPUT_DIR}/summary.md${GITHUB_OUTPUT_DIR}/review-publish.json after a successful publish, or when
publishing is skipped because an equivalent same-head review/comment already
exists${GITHUB_OUTPUT_DIR}/manifest.json (execution metadata)Use gh api with a JSON payload file:
gh api repos/<owner>/<repo>/pulls/<pr_number>/reviews -X POST --input <review-payload.json>
Review focus order:
review.mdHuman-readable review summary containing:
review.jsonStructured inline findings:
[
{
"path": "path/to/file.go",
"line": 42,
"severity": "error|warn|nit",
"message": "Issue description",
"suggestion": "Optional concrete fix"
}
]
Severity semantics:
error: must-fix before mergewarn: should-fixnit: optional improvementsummary.mdShort execution summary:
pr_metadata, diff and files both unavailable), do not fabricate certainty.summary.md.headRefOid before publishing and use it as the
deduplication key.${GITHUB_OUTPUT_DIR}/review-publish.json and do not run alternate publish
paths.review-publish.json success marker exists, and no equivalent Holon review or
comment exists for the same head SHA.DRY_RUN=true: preview only.MAX_INLINE=N: cap inline comments.POST_EMPTY=true: allow posting empty review.[HINT] Download the complete skill directory including SKILL.md and all related files