agentsclimarketplace

Github pr review

Skill Bruno-Cunha-Souza/ValarMindSkills/skills/github-pr-review

Structured GitHub PR review — correctness, security, performance, maintainability. Severity-ranked findings + verdict (Approve/Request Changes/Comment). Non-PR: @code-review. Triggers: 'review PR', 'revisar PR', 'analisar pull request', '/github-pr-review'.From its SKILL.md

Install
npx -y skills add Bruno-Cunha-Souza/ValarMindSkills --skill github-pr-review

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 6 commands, including `gh pr view <number> --json title,body,author,baseRefName,headRefName,files,additions,deletions,commits,labels,state,isDraft` and 5 more.

SKILL.md

8.9 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it

Pull Request Code Review

Structured GitHub PR review with severity-ranked, citation-bound findings and a clear verdict.

Goal

Structured code review of a GitHub Pull Request — correctness, security, performance, maintainability. Findings ranked by severity, each tied to a verbatim diff citation, plus a verdict (Approve / Request Changes / Comment).

When to Use

  • The user names a PR by number, URL, or branch and asks for a review.
  • The user asks for "feedback", "thoughts", or "concerns" on a pull request.
  • The user explicitly invokes /github-pr-review or /valarmindskills:github-pr-review.

Do not use when

  • The user asks about code-review methodology, not a specific GitHub PR → use @code-review.
  • The user wants to author a commit or PR description, not review one → use @github-commit or @github-release-note.
  • The PR contains no code diff (docs only, lockfile bumps, config-only) and the user wants security/perf analysis — refuse with out of scope: no code diff to analyze and hand off.

Inputs you must collect before starting

InputRequiredHow to obtain
PR identifierYesNumber, URL, or branch name; ask if missing
RepositoryYesInfer from current directory; ask if ambiguous
Review depthNoquick (high-level) or deep (line-by-line) — default: deep

Procedure

Step 1 — Fetch PR metadata

gh pr view <number> --json title,body,author,baseRefName,headRefName,files,additions,deletions,commits,labels,state,isDraft

Record: title, author, base/head branch, files changed, lines added/removed, commits, state (open/closed/merged), draft flag.

If state != "OPEN" or isDraft == true, warn the user and ask whether to continue. Do not refuse — historical reviews are valid use cases.

Step 2 — Get the full diff

gh pr diff <number>

If the PR has more than 1000 changed lines, inform the user and ask whether to (a) continue full review, (b) prioritize a file subset, or (c) abort. Do not silently truncate.

Step 3 — Read description and linked issues

  • Read the PR description for context and intent.
  • Look up linked issues via gh issue view <number> for Closes #N, Fixes #N, Refs #N.
  • Identify acceptance criteria, if any.

Step 4 — Analyze the changes

Analyze the diff across four dimensions. Only review changed code — not surrounding unchanged code.

Logic & Correctness

  • Business requirements met?
  • Edge cases (null, empty, boundaries, concurrency)?
  • Error flows correct?
  • Loop / recursion termination?
  • Type consistency?

Security

  • Inputs validated and sanitized?
  • Injection risk (SQL, XSS, command, SSRF, path traversal)?
  • AuthN / AuthZ checks?
  • Sensitive data exposure (logs, responses, env)?
  • OWASP Top 10 alignment?

Performance

  • N+1 queries or inefficient DB access?
  • Unbounded iteration?
  • Allocation in hot loops?
  • Algorithmic complexity vs. expected volume?
  • Blocking calls where async fits?

Maintainability

  • Naming clarity (variables, functions, classes)?
  • Single responsibility, function size?
  • Module coupling?
  • Test coverage for the changes?
  • Style consistency with the rest of the codebase?

Step 5 — Categorize each finding

Each finding must include Severity, Confidence, and a verbatim citation:

SeverityCriteria
CriticalCrash, data loss, exploitable vulnerability, breaks existing functionality
MajorBug in a likely scenario, significant performance issue, important standard violation
MinorRecommended improvement, readability impact, incomplete error handling
NitpickStylistic or naming suggestion — does not block approval
ConfidenceMeaning
HighMechanical evidence in the diff; reasoning is deterministic
MediumPattern matches but intent may justify it — flag for author
LowA second opinion would change the verdict — escalate or downgrade

Citation requirement. Cite path:line AND quote the exact code (3–8 lines from the diff). A finding without both is rejected. Never paraphrase the code; never invent paths, line numbers, or function names.

Step 6 — Write the executive summary

2–4 sentences with:

  • What the PR does (paraphrased from the diff, not the description).
  • Quality assessment.
  • Key concerns, if any.
  • Verdict: Approve, Request Changes, or Comment.

The verdict must match the highest finding severity:

  • Any Critical or Major → Request Changes.
  • Only Minor / Nitpick → Comment or Approve (author discretion).
  • Zero findings after Step 8 verification → Approve with LGTM.

Step 7 — Present the review

Follow the template in EXAMPLE.md. For zero-findings PRs, follow the LGTM template in the same file.

If the user explicitly approves, publish via:

gh pr review <number> --approve --body "<message>"
gh pr review <number> --request-changes --body "<message>"
gh pr review <number> --comment --body "<message>"

Never publish without explicit user approval — one approval is scoped to one publish action.

Step 8 — Verify before presenting

Before returning the review, check:

  1. Every cited path:line appears in the diff from Step 2.
  2. Every code quote is verbatim from the diff (no paraphrase, no fabricated lines).
  3. Every finding has a Severity and a Confidence field.
  4. The verdict in the executive summary matches the highest finding severity per Step 6.
  5. If zero findings, the output uses the LGTM template — not a synthesized Minor.
  6. No finding was promoted from Minor to Major to fill the report.

If any check fails, repair before returning.

Refusal hooks

  • Out of scope (non-code PR): if the PR is docs-only, lockfile-only, or config-only and the user asked for security / performance analysis, respond out of scope: no code diff to analyze — switching to <appropriate skill> and hand off.
  • Ambiguous PR identifier: if multiple PRs match (e.g., a branch name with multiple open PRs), ask exactly one clarifying question listing the candidates, then stop.
  • Base branch missing locally: if gh pr diff fails because the base ref is not fetched, request git fetch <remote> <base> from the user and stop.
  • Publish without approval: never call gh pr review --approve|--request-changes|--comment without an explicit, in-conversation approval scoped to that PR.

Constraints

  • Only review changed code — do not review surrounding unchanged code.
  • Do not assume context not visible in the diff; read referenced files via Read to understand the change, but do not flag them.
  • Be constructive — propose a fix alongside every finding.
  • Prioritize by severity; do not bury Critical issues under Nitpicks.
  • Cite path:line AND a verbatim 3–8 line code quote per finding. Never invent paths, line numbers, function names, CVE IDs, or RFC numbers.
  • Never fabricate findings to fill the report. Zero findings is a valid outcome — emit the LGTM template and stop.
  • Never promote a Minor to Major to look thorough. Severity is bound to impact × likelihood, not to report length.
  • If the PR is > 1000 lines, ask before proceeding (Step 2).
  • Never publish the review on GitHub without explicit, scoped user approval.

Output format

Structured review following the template in EXAMPLE.md:

  • Executive summary (2–4 sentences) ending with the verdict.
  • Findings grouped by severity (Critical → Major → Minor → Nitpick), each with Confidence, path:line, code quote, suggested fix.
  • Summary by severity table.
  • Zero-findings path: LGTM template from EXAMPLE.md.

Example request

  • "Review PR #42"
  • "Analyze this pull request: https://github.com/org/repo/pull/123"
  • "Do a quick review of the payment feature PR"
  • "Revisar PR #87 desse repo"
  • "Feedback no PR mais recente"

Related Skills

  • @code-review — lifecycle code-review skill (multi-language Go/Rust/TS). Use when the user wants methodology-driven review not tied to a GitHub PR (audit, pre-merge gate, refactor review).
  • @code-debugger — when a finding here uncovers a runtime bug that needs root-cause analysis.
  • @github-commit — when the review concludes Approve and the user wants to author the merge commit.
  • @code-security-review — hand off security findings into a stack-aware audit (Go branch — references/golang/; Next branch — references/nextjs/).

References

FilePurpose
EXAMPLE.mdWorked review (Request Changes) + zero-findings (Approve / LGTM) template

What ships with it: 1 file

6.0 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.