skills/gh-pr-code-review/SKILL.md
--- name: gh-pr-code-review description: PR code review workflow: pull diff, two-pass findings, draft and prioritize comments, then optionally post via gh api. license: MIT --- # PR code review (gh) This skill guides a repeatable pull request review workflow using the GitHub CLI. It emphasizes two-pass review (to find more issues), drafting comments before posting, and posting only after explicit user confirmation. ## Usage Use this skill when the user asks you to review a pull request and
npx skillsauth add ericmjl/skills skills/gh-pr-code-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.
This skill guides a repeatable pull request review workflow using the GitHub CLI.
It emphasizes two-pass review (to find more issues), drafting comments before posting, and posting only after explicit user confirmation.
Use this skill when the user asks you to review a pull request and leave actionable feedback.
Inputs you should accept:
gh pr view / gh pr diff-R owner/repo if not in a git checkoutgh authenticated (gh auth status)jqA code review in two passes, then a drafting and posting phase:
A) Pull down the PR diff and identify issues
B) Repeat the review, finding only new issues
C) Draft review comments but do not post yet
D) Prioritize comments by criticality:
critical: correctness/security/data loss/broken API/test failuresoptional: maintainability/performance/edge cases/docs/test gapstrivial: nits/style/micro-optimizations (do not show by default)E) Show only critical and optional items to the user. Then, if (and only if) the user explicitly confirms, post:
gh pr view <PR> --json number,title,url,baseRefName,headRefName,headRefOid,files,additions,deletions
gh pr diff <PR> --color=never
Optional: check CI signal while reviewing:
gh pr checks <PR>
Review the diff and record issues as structured items. For each issue capture:
severity: critical | optional | trivialpath: file path when applicableside: RIGHT (new code / additions / context) or LEFT (deletions)line: line number in the diff blob when you can anchor reliablybody: the draft comment text (short, actionable)Focus this pass primarily on:
Re-review the same diff from scratch with a different lens:
Critical rule: do not repeat issues from stage A. Only append genuinely new issues.
Convert each issue into a comment draft that is ready to paste/post:
Assign each comment a criticality:
critical: must-fixoptional: should-fixtrivial: nice-to-fix"Post these to the PR now? (yes/no)"
path + line + side.Use the Issues API to post one summary comment:
gh api -X POST "repos/{owner}/{repo}/issues/<PR_NUMBER>/comments" \
-f body="<summary markdown>"
Endpoint reference: POST /repos/{owner}/{repo}/issues/{issue_number}/comments.
Use the Pull Request Review Comments API:
SHA="$(gh pr view <PR> --json headRefOid -q .headRefOid)"
gh api -X POST "repos/{owner}/{repo}/pulls/<PR_NUMBER>/comments" \
-f body="<comment markdown>" \
-f commit_id="$SHA" \
-f path="path/to/file.py" \
-F line=42 \
-f side=RIGHT
Endpoint reference: POST /repos/{owner}/{repo}/pulls/{pull_number}/comments.
Inline comments require an exact file path, a line number, and a side.
Use this deterministic approach for unified diffs:
Each hunk header looks like @@ -old_start,old_count +new_start,new_count @@.
Initialize counters: old_line = old_start, new_line = new_start.
Walk each subsequent hunk line:
' ' (context): increment both old_line and new_line.'+' (addition): increment new_line only.'-' (deletion): increment old_line only.To comment on the new code, use side=RIGHT and set line=new_line.
To comment on a deletion, use side=LEFT and set line=old_line.
If you cannot reliably determine line/side (for example, complex hunks or
uncertainty), do not post an inline comment. Include the item only in the
summary timeline comment.
development
Create animated videos using Remotion from topics, product URLs, Google reviews, talking-head videos, or CSV data. Supports 5 video types: educational explainers, product launch demos, testimonial/social proof, avatar video overlays, and data visualization dashboards. Each follows a 2-step workflow: research/scrape/analyze then design and animate with spring animations, SVG diagrams, and count-up effects. Requires the Remotion best practices skill (install with `npx skills add remotion-dev/skills`). Use when the user asks to create a Remotion video, explainer video, educational video, product demo video, testimonial video, video with animated overlays, data visualization video, animated dashboard, or short-form vertical video for mobile.
development
Comprehensive YouTube operations using yt-dlp - download videos/audio, extract transcripts and subtitles, get metadata, work with playlists, download thumbnails, and inspect available formats. Use this for any YouTube content processing task.
data-ai
Ingest YouTube videos into the vault. Triggers when user pastes a YouTube URL (youtube.com/watch or youtu.be). Fetches transcript using yt-dlp, extracts metadata, creates transcript note and summary note. User may provide additional context about the video.
tools
Advanced negotiation and communication advisor grounded in Chris Voss's tactical empathy methodology (Never Split the Difference, The Black Swan Group). Use this skill whenever the user needs help with any interpersonal situation involving influence, persuasion, or navigating difficult dynamics. This includes but is not limited to: analyzing conversations, call transcripts, or email threads; preparing for negotiations (salary, vendor, client, partner); drafting tactful responses; handling pushback, objections, or conflict; navigating difficult workplace conversations; preparing for performance reviews or raises; buying a car, house, or any big purchase; dealing with landlords, contractors, or service providers; resolving personal disagreements; practicing negotiation through role-play; or any situation where the user says things like "how should I respond to this", "they're pushing back", "I need to have a tough conversation", "how do I ask for...", "they ghosted me", "I'm not sure how to handle this person", "counter-offer", "pricing", "deal", "objection", or "difficult conversation". Activate broadly — most interpersonal communication benefits from tactical empathy whether or not the user frames it as "negotiation." This skill integrates FBI hostage negotiation techniques (93% success rate) with behavioral economics (Kahneman's Prospect Theory) and neuroscience (amygdala hijacking, loss aversion).