skills/github-pull-request-review/SKILL.md
Comprehensive GitHub pull request review using the gh CLI. Reviews PR diffs against linked issues, repo conventions, and codebase context. Checks for bugs, security risks, style consistency, and goal alignment. Runs available lint, type-check, and test commands. Produces a prioritized report with an approve/block verdict. Use this skill whenever the user asks to "review a PR", "check PR
npx skillsauth add talendar/agent-skills github-pull-request-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Follow these phases in order. The user provides a PR number (e.g., #123 or 123). The repo must be cloned locally and gh must be authenticated.
Fetch PR metadata:
gh pr view <PR> --json title,body,baseRefName,headRefName,state,labels,milestone,author,reviewRequests,reviews,additions,deletions,changedFiles
Fetch PR comments (PR-level discussion):
gh api --paginate repos/{owner}/{repo}/issues/{pr_number}/comments --jq '.[] | {body, user: .user.login, created_at}'
Fetch inline review comments (code-level — the issues endpoint above does NOT include these):
gh api --paginate repos/{owner}/{repo}/pulls/{pr_number}/comments --jq '.[] | {path, line, body, user: .user.login}'
Auto-detect {owner}/{repo} with: gh repo view --json nameWithOwner --jq .nameWithOwner
Fetch the diff:
gh pr diff <PR>
If the diff exceeds 50 files, list changed files first with gh api --paginate repos/{owner}/{repo}/pulls/{pr}/files --jq '.[].filename' and read them individually.
Extract linked issues from the PR body. Parse patterns: Fixes #N, Closes #N, Resolves #N, Related to #N, or bare #N. For each:
gh issue view <N> --json title,body,comments,labels,state
Check CI status:
gh pr checks <PR>
If any checks failed, fetch logs: gh run view <RUN_ID> --log-failed
You may also run scripts/fetch-pr-context.sh <PR_NUMBER> to automate steps 1-6.
Read each file if it exists:
CONTRIBUTING.md, CODE_OF_CONDUCT.md, CODEOWNERS.github/PULL_REQUEST_TEMPLATE.mdREADME.md (project overview and architecture)AGENTS.md or CLAUDE.md (agent-specific instructions)Detect linter/formatter configs to understand style expectations:
.eslintrc*, biome.json, .prettierrc*, pyproject.toml, ruff.toml, .rubocop.yml, .golangci.yml, etc.Read CI workflow files (.github/workflows/*.yml) to understand existing automated checks.
Review the diff against these priorities. See references/review-checklist.md for detailed guidance.
Detect available commands by running scripts/detect-repo-checks.sh or manually inspecting package.json, Makefile, pyproject.toml, and CI workflow files.
Run in this order (stop if a step fails catastrophically):
npm run lint, ruff check ., golangci-lint run)npx tsc --noEmit, mypy ., pyright)Guardrails:
Generate a structured report. See references/report-format.md for the full template.
## PR Review: #<number> — <title>
### Summary
### Verdict: ✅ APPROVE / ⚠️ APPROVE WITH COMMENTS / ❌ REQUEST CHANGES
### Blocking Issues (must fix before merge)
### Non-blocking Issues (should fix)
### Positive Observations
### Checks (table: Lint, Type-check, Tests, CI)
### Context (linked issues, files changed, additions/deletions)
Rules:
If the user asks to post the review on the PR:
gh pr review <PR> --approve --body "<summary>"gh pr review <PR> --request-changes --body "<report>"gh pr review <PR> --comment --body "<report>"You may use scripts/post-review-comment.sh <PR> <verdict> <body_file>.
Always confirm with the user before posting.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.