reviewing-pull-requests
Skill544 starsChanged 7 months agoMITView on GitHub
Reviews pull requests for Shopify/shopify-app-js with comprehensive analysis including semver compliance (MAJOR/MINOR/PATCH classification), single responsibility validation, pattern consistency checks against established TypeScript/Node.js library patterns, and root cause analysis. Produces a structured review with breaking changes assessment, improvement suggestions, and community contribution guidance. Use when asked to review a PR, check for breaking changes, or validate code quality.
We split this skill into the rules it gives an agent
28 rules. 0 are common, 21 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
21
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use the GitHub CLI (gh) for all GitHub interactions — fetching PRs, diffs, checks, etc.
- Distinctive: line 16
Keep this structure in mind when checking pattern consistency across packages.
- Distinctive: line 20
Before running the full process, check if you can stop early:
- Very specific: line 21
CI failing: If gh pr checks shows failures on non-flaky tests, note the failures and defer detailed review until CI is green.
- Distinctive: line 22
Draft PR: If the PR is in draft state, provide directional feedback on the approach rather than detailed line-by-line review.
- Distinctive: line 26
After fetching PR metadata, check if this is from Dependabot, Renovate, or another bot:
- Very specific: line 33
Check CI status (gh pr checks <PR_NUMBER>)
- Very specific: line 35
Verify compatibility with supported Node.js versions
- Distinctive: line 36
Check for security advisories related to the update
- Very specific: line 63
If deeper issue context is needed, use the investigating-github-issues skill.
- Distinctive: line 64
Search for existing patterns in the codebase — find similar code, check if similar functionality already exists, look for existing test …
- Distinctive: line 65
Verify the problem being solved — check if the issue actually exists, whether the solution addresses the root cause, and if there are …
- Distinctive: line 79
If the PR fixes a bug in an unmaintained major version, flag it — the fix should target the latest major version instead.
- Distinctive: line 83
Before diving into code review, critically evaluate:
- Distinctive: line 85
Right location?: Should this functionality be in an existing module rather than a new one?
- Distinctive: line 99
When reviewing structural changes:
- Distinctive: line 104
Check for test coverage that would catch issues
- Very specific: line 109
Check if the PR includes a changeset file (typically in .changeset/ directory):
- Distinctive: line 113
If no changeset exists and one is needed, flag it.
- Distinctive: line 118
Do the changes address a single issue or feature?
- Distinctive: line 127
Verify alignment with established library patterns.
- Distinctive: line 131
Testing Patterns: test structure and coverage match existing tests
- Distinctive: line 139
TypeScript changes: verify all type exports are properly maintained, no type information is lost
- Distinctive: line 140
API changes: check if README.md or API docs need updating
- Distinctive: line 142
Test changes: ensure coverage is maintained or improved, never decreased
- Distinctive: line 143
Configuration changes: verify backward compatibility and migration paths
- Distinctive: line 144
Cross-package changes: verify consistency across all affected packages and their consumers
- Very specific: line 148
Write the review following the template in references/review-output-template.md.
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Reviewing Pull Requests
Use the GitHub CLI (gh) for all GitHub interactions — fetching PRs, diffs, checks, etc. Direct URL fetching may not work reliably.
Monorepo Structure
shopify-app-js is a monorepo. Key package locations:
packages/api-clients/*— API client librariespackages/apps/*— App framework packages
Keep this structure in mind when checking pattern consistency across packages.
Early Exit Criteria
Before running the full process, check if you can stop early:
- CI failing: If
gh pr checksshows failures on non-flaky tests, note the failures and defer detailed review until CI is green. - Draft PR: If the PR is in draft state, provide directional feedback on the approach rather than detailed line-by-line review. Focus on architecture, solution direction, and potential blockers.
Triage: Detect Automated PRs
After fetching PR metadata, check if this is from Dependabot, Renovate, or another bot:
gh pr view <PR_NUMBER> --json author,labelsFor automated dependency PRs, apply a simplified review:
- Check CI status (
gh pr checks <PR_NUMBER>) - Review the dependency changelog for breaking changes
- Verify compatibility with supported Node.js versions
- Check for security advisories related to the update
- Skip single-responsibility analysis, root cause analysis, and pattern consistency checks
For all other PRs, continue with the full review below.
Initial Analysis
Emit brief progress markers as you work (e.g., "Fetching PR metadata...", "Analyzing diff...", "Checking pattern consistency..."). Present the final review as a single structured block.
Systematically gather information before reviewing:
- Fetch PR metadata:
gh pr view <PR_NUMBER> --json number,title,body,state,isDraft,author,createdAt,updatedAt,files,additions,deletions,baseRefName,headRefName,mergeable,commits,labels | cat - Check CI status:
gh pr checks <PR_NUMBER> - Get the diff:
gh pr diff <PR_NUMBER> - For any issue references in the PR body (e.g., #123, fixes #456), fetch each:
If deeper issue context is needed, use thegh issue view <number> --json number,title,body,state,author,createdAt,updatedAt | catinvestigating-github-issuesskill. - Search for existing patterns in the codebase — find similar code, check if similar functionality already exists, look for existing test patterns for similar features.
- Verify the problem being solved — check if the issue actually exists, whether the solution addresses the root cause, and if there are existing solutions in the codebase.
Monorepo Scope Assessment
Determine the blast radius of the PR:
- Which packages does this PR touch? List them.
- Does it cross package boundaries? Cross-package PRs deserve extra scrutiny for coordination issues.
- For changes to shared types or utilities that other packages depend on, trace the dependency chain to identify all affected consumers.
- Are changes to re-exported APIs consistent across the source and re-exporting packages?
Version Maintenance Check
Apply the version maintenance policy (see ../shared/references/version-maintenance-policy.md):
- Is this PR targeting a maintained version/branch?
- If the PR fixes a bug in an unmaintained major version, flag it — the fix should target the latest major version instead.
Solution Validation
Before diving into code review, critically evaluate:
- Right solution? Could the same goal be achieved by modifying existing code instead of adding new code?
- Right location? Should this functionality be in an existing module rather than a new one?
- All areas covered? What other parts of the codebase might need similar changes?
- Problem verified? Set up a reproduction to verify the issue exists and that the PR fixes it.
Critical Thinking Requirements
- Question PR descriptions — don't assume the description accurately describes what the code does
- Verify claims — if a PR claims certain files need changes, verify each one actually needs them
- Look for existing solutions — before accepting new code, check if existing code could be extended
- Test edge cases — consider behavior in different scenarios (development/production, embedded/non-embedded)
- Challenge scope — if changes seem too broad, investigate if fewer changes would suffice
Pattern Discovery Protocol
When reviewing structural changes:
- Map the inheritance chain of affected classes
- Identify all included modules and their effects
- Trace through the actual code execution path
- Identify which methods are actually called and when
- Check for test coverage that would catch issues
Core Review Checks
Changeset Verification
Check if the PR includes a changeset file (typically in .changeset/ directory):
- Does a changeset exist for this PR? If the PR modifies package behavior, one should be present.
- Does the changeset's bump level (major/minor/patch) match your semver classification?
- Does the changeset description accurately summarize the change for end users?
- If no changeset exists and one is needed, flag it.
Single Responsibility Validation
Evaluate whether the PR changes only one logical unit of work:
- Are all changes related to the stated purpose?
- Do the changes address a single issue or feature?
- Are there opportunistic fixes unrelated to the main change?
Multiple unrelated changes → recommend splitting the PR.
Semver Compliance Analysis
Classify the change as MAJOR, MINOR, or PATCH. See references/semver-classification.md for detailed rules.
Pattern Consistency Enforcement
Verify alignment with established library patterns. When checking a pattern, find a canonical example in the same package to compare against:
- Code Organization: file structure follows existing module patterns
- Naming Conventions: functions, variables, and files match existing style
- Error Handling: consistent error types and handling strategies
- Testing Patterns: test structure and coverage match existing tests
- Documentation Style: JSDoc comments and inline documentation consistency
- TypeScript Patterns: type definitions, interfaces, and generic usage
- Module Exports: consistent export patterns (named vs default)
- Async Patterns: promise handling and async/await usage
Special Analysis Checklist
- TypeScript changes: verify all type exports are properly maintained, no type information is lost
- API changes: check if README.md or API docs need updating
- Dependency changes: assess security implications and compatibility with supported Node.js versions
- Test changes: ensure coverage is maintained or improved, never decreased
- Configuration changes: verify backward compatibility and migration paths
- Cross-package changes: verify consistency across all affected packages and their consumers
Produce the Review
Write the review following the template in references/review-output-template.md.
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- TriliumNext/Trilium★ 39ksame name
- onedr0p/home-ops★ 2.9ksame name
- buroa/k8s-gitops★ 390same name
- mongodb/mongo-hibernate★ 19same name
- d-oit/rust-2026-template★ 12same name
- teispace/teitunnel★ 2same name
- jhonatan-oliveiradev/agent-skills★ 1same name
- msewell/agent-stuff★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

