Review a GitHub pull request from its link, read the PR description, inspect the code locally only when useful, and judge whether the change is safe to run from a security and runtime-safety perspective. Use only after the user pastes a PR URL. Handle one PR at a time, start with a rundown and discussion, and keep all GitHub review and merge actions with the user.
Use this skill when the user pastes a PR link and wants a security-first assessment before running, testing, or merging it. The goal is to understand the PR intent, inspect the diff, decide whether it is safe to run, and then help with feedback, fixes, or merge readiness.
This skill is discussion-first. Loading the skill does not authorize guessing which PR to inspect from local branches, refs, or open worktrees. Wait for the user to paste a PR URL, review that one PR, give a concise rundown, and discuss it with the user before taking any local git actions beyond basic repository state checks.
pr-*, from recent git history, or from the current worktree.package/src/native/win/*, WebView2, DirectComposition, D3D11, D3D12, DXGI, HWND, .vcxproj, Windows packaging: review and test on Windowspackage/src/native/macos/*, Cocoa, AppKit, WKWebView, Metal, CAMetalLayer, notarization, .mm changes: review and test on macOSpackage/src/native/linux/*, GTK, WebKitGTK, X11, Wayland, Flatpak, .desktop, distro packaging: review and test on Linuxbun build:dev from package/.bun dev from package/.git fetch origin pull/<pr-number>/head:pr-<pr-number>
git diff --stat <base-branch>...pr-<pr-number>
git log --oneline --decorate <base-branch>..pr-<pr-number>
git diff <base-branch>...pr-<pr-number>
main, diff against the actual base branch.Read high-risk files first:
Read tests after you understand the runtime paths they are meant to cover. Tests are evidence of intent, not proof of safety.
Default to a threat-model mindset. Ask:
Treat these as immediate high-scrutiny signals:
For dependency changes, treat even small edits as security-sensitive. For native changes, inspect bounds, ownership, lifetime, null handling, conversions, and cross-thread access.
Before recommending that the user run the branch, answer:
For this repo, pay extra attention to:
package/src/native/*: platform wrappers, callback lifetimes, memory and permission handlingpackage/src/cli/*, scripts/*, BUILD.md: shell execution, quoting, packaging, release flowpackage/package.json, template manifests, lockfiles: dependency trust and lifecycle hooks.github/workflows/*: secret exposure, artifact tampering, release automationtemplates/*: defaults that downstream apps will inheritpackage/src/bun/* and protocol or IPC code: trust boundaries and message validationLead with the verdict, not style commentary.
Use one of these verdicts:
Safe to run as-isProbably safe to run with caveatsNot safe to run until fixedUnable to verify safelyThen structure the response as:
Verdict: one lineReview host: which OS/VM should be used for runtime verification, and whether the current machine is enough for static review onlyRundown: short explanation of the PR intent and likely review focusFindings: ordered by severity with exact file references and the concrete exploit or failure modeQuestions: only if unresolved assumptions affect safetyNext move: feedback, patch, or merge recommendationIf there are no findings, say that explicitly and note any residual risk or untested area.
Call out residual risk when: