Creates pull requests after performing pre-flight status checks and executing automated subagent code reviews.
Install
mkdir -p .claude/skills/pr-metamask && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11869" && unzip -o skill.zip -d .claude/skills/pr-metamask && rm skill.zipInstalls to .claude/skills/pr-metamask
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Creates a pull request for the current branch.Key capabilities
- →Validate Git status for unstaged changes or untracked files
- →Identify if the current branch is the default branch
- →Determine if a pull request is stacked
- →Generate a diff for review based on branch type
- →Classify changed files to select review subagents
How it works
The skill performs pre-flight checks on the Git repository, then launches specific subagents to review code changes based on file categories, and finally creates a pull request.
Inputs & outputs
When to use pr
- →Create a pull request for a feature branch
- →Verify repository status before merge
- →Perform automated code review for a PR
About this skill
When asked to create a pull request, follow these steps:
Phase 1: Pre-flight checks
-
Run
git status. If any of the following conditions apply, stop and report the errors:- There are unstaged changes
- There are untracked files
- The current branch is the default branch (
main)
-
Check if this is a stacked PR:
- Run
git merge-base main HEADto find the common ancestor with main - Run
git log --oneline <merge-base>..HEADto see commits since diverging from main - Check if any parent commits are on another feature branch (not main)
- If so, run
gh pr list --head <parent-branch>to check if that branch has an open PR - If a parent branch has an open PR, this is a stacked PR
- Run
-
Run
git log main..HEAD --onelineto see the commit history. -
Get the diff for the review:
- If this is a stacked PR, run
git diff <parent-branch>...HEADto scope the diff to only this branch's changes. - Otherwise, run
git diff main...HEAD.
- If this is a stacked PR, run
Phase 2: Automated PR review (parallel subagents)
MANDATORY — DO NOT SKIP. This phase must run before any PR is created, regardless of how "simple", "mechanical", or "well-tested" the changes appear. Subtle bugs (e.g., semantic mismatches in API migrations) hide in exactly the changes that seem safe to skip. The only exception is docs-only changes as described below.
Before creating the PR, analyze the diff to decide which review subagents to launch. Not every PR needs every reviewer.
Triage: classify the change
Categorize each changed file, then pick subagents based on which categories are present. A file belongs to exactly one category — evaluate in this order (first match wins):
- docs:
.md,.txt,CHANGELOG,LICENSE,docs/,.claude/ - ci:
.github/workflows/,.github/actions/— these often contain shell scripts with non-trivial logic - config:
.json(notpackage.json),.yml,.yaml,.eslintrc*,.prettierrc*,tsconfig*,Dockerfile,.editorconfig,.gitignore,.gitattributes,.nvmrc,.yarnrc* - test: files matching
*.test.ts,*.spec.ts, or undertest/directories - code: everything else (
.ts,.js,.mjs,.cjs,package.json, etc.)
Then decide which subagents to launch:
- If only docs files changed: skip the entire review phase and go straight to Phase 3.
- Otherwise, select subagents based on which categories are present:
- ci present → launch Subagent 1 (Correctness) (review shell logic, conditional expressions, job dependency chains)
- config or test present → launch Subagent 2 (Style)
- test present → also launch Subagent 4 (Tests)
- code present → launch Subagent 1 (Correctness) and Subagent 2 (Style)
- code present → also launch Subagent 4 (Tests)
- code present and diff touches security-sensitive areas (network/HTTP, user input, auth, crypto,
eval/Function, capability passing,harden()/SES) → also launch Subagent 3 (Security)
Subagent 1: Correctness & Logic
Prompt the agent to:
- Review the diff for logical errors, off-by-one mistakes, race conditions, and incorrect assumptions
- Check that error handling is adequate at system boundaries
- Verify that new code paths are reachable and dead code hasn't been introduced
- Flag any behavior changes that aren't covered by tests
Subagent 2: Style & Conventions
Prompt the agent to:
- Check adherence to the project's CLAUDE.md conventions (TypeScript types over interfaces, no
any, noenum, kebab-case files,@metamask/superstructfor runtime types, options bags for 3+ args,harden()usage, etc.) - Check test conventions (no "should",
toStrictEqualfor full objects,it.eachfor parameterized tests, concise verb-form titles) - Flag unnecessary complexity, over-engineering, or missing
harden()calls
Subagent 3: Security & Performance
Prompt the agent to:
- Look for OWASP top-10 vulnerabilities (injection, XSS, etc.)
- Check for capability leaks in the ocap model (unhardened objects, leaked references)
- Identify performance issues (unnecessary allocations in hot paths, missing early returns, O(n^2) patterns)
- Verify that lockdown/SES compatibility isn't broken (no ambient authority, no forbidden globals)
Subagent 4: Test Coverage
Prompt the agent to:
- Identify new or changed logic that lacks corresponding test coverage
- Check that edge cases and error paths are tested
- Verify tests are co-located correctly per project conventions
- Flag any test anti-patterns (global state, missing cleanup, overly broad mocks)
Phase 3: Review summary
If the review phase was skipped (docs-only), proceed directly to Phase 4.
Otherwise, after all launched subagents complete:
- Compile findings into a Review Summary with sections for each subagent that ran.
- Classify each finding as one of:
- blocker - Must fix before merging
- suggestion - Should consider fixing
- nit - Minor, optional improvement
- If there are blockers, present them to the user and ask whether to:
- Fix the blockers automatically, then re-review
- Proceed with PR creation anyway
- Abort
- If there are no blockers, briefly summarize the findings and proceed.
Phase 4: Create the PR
-
Run
gh pr createto create a pull request. The PR body should include:- A brief narrative description of the PR
- A summary of the changes (bullet points)
- A brief description of how the code is tested (narrative, not a checklist)
If this is a stacked PR, add
--draftto create it as a draft PR. -
Note the PR number from the created PR URL — it is needed for changelog entries. Proceed to Phase 5 before presenting results to the user.
Phase 5: Update changelogs
MANDATORY — DO NOT SKIP. Analyze the diff and determine whether any changes are consumer-facing (i.e., affect the behavior or API of a published or private package).
- If there are NO consumer-facing changes (e.g., docs-only, CI, tooling, skill definitions, dev scripts): add the
no-changeloglabel to the PR viagh pr edit <number> --add-label no-changelogand skip the rest of this phase. - If there ARE consumer-facing changes: update changelogs as described below.
Read the instructions in docs/contributing/updating-changelogs.md and follow them to the letter. In particular:
- Think from the consumer's perspective. A changelog is not a git history. For each affected package, ask: "What changed for someone who depends on this package?" Describe changes in natural language; do not simply reuse commit messages.
- Combine like changes. If multiple commits contribute to a single logical change within one package, write one changelog entry — not one per commit.
- Split disparate changes. If one commit touches unrelated concerns in a single package, write separate entries.
- Link the PR. Use the PR number from Phase 4 in each entry (e.g.
([#123](https://github.com/.../pull/123))).
Commit the changelog updates to the current branch with the message "docs: Update changelogs" and push.
Done
Present the PR URL and any relevant information to the user. If a review was performed, include the review summary.
When not to use it
- →When the current branch is the default branch (main)
- →When there are unstaged changes or untracked files
- →When only documentation files have changed and no review is needed
Limitations
- →The skill stops if the current branch is the default branch.
- →The skill stops if there are unstaged changes or untracked files.
- →The review phase is skipped if only documentation files changed.
How it compares
This skill automates pre-flight checks, intelligent subagent selection for code review, and changelog updates, providing a structured and verified PR creation process compared to manual steps.
Compared to similar skills
pr side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| pr (this skill) | 0 | 4mo | No flags | Advanced |
| fix-pr | 1 | 4mo | Review | Intermediate |
| resolve-checks | 1 | 6mo | Review | Intermediate |
| agent-github-pr-manager | 1 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
fix-pr
AztecProtocol
Fix a failing PR by analyzing CI logs and fixing errors. Autonomous workflow that identifies failures, rebases, fixes issues, and pushes.
resolve-checks
flowglad
Resolve all failing CI checks and address PR review feedback on the current branch's PR. Runs tests locally, fixes failures, incorporates valid review comments, and resolves addressed feedback. Use when CI is red, after receiving PR feedback, or before merging.
agent-github-pr-manager
ruvnet
Agent skill for github-pr-manager - invoke with $agent-github-pr-manager
agent-github-modes
ruvnet
Agent skill for github-modes - invoke with $agent-github-modes
agent-pr-manager
ruvnet
Agent skill for pr-manager - invoke with $agent-pr-manager
git-pr-workflows-git-workflow
sickn33
Orchestrate a comprehensive git workflow from code review through PR creation, leveraging specialized agents for quality assurance, testing, and deployment readiness. This workflow implements modern g