skills/review-pr/SKILL.md
Review GitHub pull requests with structured code analysis. Use when asked to review a PR, check a pull request, or audit code changes.
npx skillsauth add suitedaces/dorabot review-prInstall 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.
Review GitHub pull requests with structured analysis covering correctness, security, performance, and style.
Triggered by: /review-pr <url-or-number>, "review this PR", "review PR #123", or a GitHub PR URL.
Parse the input:
https://github.com/owner/repo/pull/123 -> extract owner, repo, number#123 or 123 -> use current repo from gh repo view --json nameWithOwner -q .nameWithOwnerRun these in parallel:
# PR metadata
gh pr view <number> --repo <owner/repo> --json title,body,author,baseRefName,headRefName,createdAt,additions,deletions,changedFiles,labels,reviewRequests,mergeable,state
# Full diff
gh pr diff <number> --repo <owner/repo>
# File list with stats
gh pr view <number> --repo <owner/repo> --json files --jq '.files[] | "\(.additions)+/\(.deletions)- \(.path)"'
# CI status
gh pr checks <number> --repo <owner/repo> 2>/dev/null || echo "No checks"
# Existing review comments (avoid duplicating feedback)
gh api repos/<owner>/<repo>/pulls/<number>/comments --jq '.[] | "[\(.path):\(.line // .original_line)] @\(.user.login): \(.body)"' 2>/dev/null | head -50
Read the full diff carefully. For each file, evaluate:
Output a structured review in this format:
## PR Review: <title>
**Summary**: 1-3 sentence overview of what this PR does and whether it's ready.
**Verdict**: APPROVE | REQUEST_CHANGES | COMMENT
### Findings
#### <severity-emoji> <category>: <short description>
**File**: `path/to/file.ts` L<line>-L<line>
<explanation of the issue and why it matters>
**Suggested fix**:
\`\`\`diff
- old code
+ new code
\`\`\`
---
(repeat for each finding)
Severity emojis:
[blocker] - Must fix before merge. Bugs, security issues, data loss risks.[warning] - Should fix. Performance problems, poor patterns, missing edge cases.[nit] - Optional. Style, naming, minor improvements.[praise] - Good stuff. Call out well-written code (do this at least once).Only post to GitHub if the user explicitly asks. Use:
# Post a review comment (not individual line comments)
gh pr review <number> --repo <owner/repo> --comment --body "<review body>"
# Or approve/request changes
gh pr review <number> --repo <owner/repo> --approve --body "<review body>"
gh pr review <number> --repo <owner/repo> --request-changes --body "<review body>"
For inline comments on specific lines:
gh api repos/<owner>/<repo>/pulls/<number>/comments \
-f body="<comment>" \
-f path="<file>" \
-f commit_id="$(gh pr view <number> --repo <owner/repo> --json headRefOid -q .headRefOid)" \
-F line=<line_number> \
-f side="RIGHT"
Always show the review to the user first and get confirmation before posting to GitHub.
For small PRs (<100 lines changed), skip the full structure. Give a concise paragraph covering the key points and verdict.
When reviewing multiple PRs (e.g., "review all open PRs"):
gh pr list --repo <owner/repo> --json number,title,author,additions,deletions --jq '.[] | "#\(.number) \(.title) by @\(.author.login) (+\(.additions)/-\(.deletions))"'
Triage by size and risk, review the largest/riskiest first.
development
Best practices for Remotion - Video creation in React
development
# Polymarket Documentation ## Docs - [Create deposit addresses](https://docs.polymarket.com/api-reference/bridge/create-deposit-addresses.md): Generate unique deposit addresses for depositing assets to your Polymarket wallet. **How it works:** 1. Submit your Polymarket wallet address 2. Receive deposit addresses for each blockchain type (EVM, Solana, Bitcoin) 3. Send assets from any supported chain to the appropriate deposit address 4. Assets are automatically bridged and swapped to USDC.e on
development
Personalize the agent — interview the user to build their profile (USER.md) and craft the agent's personality (SOUL.md). Triggered by 'onboard', 'personalize', 'set up my soul', etc.
development
Generate and edit images using the Gemini API. Text-to-image, image editing, multi-turn iteration, 4K resolution, search grounding.