Automated summary
Creates well-structured pull requests by automating commits, branch creation, synchronization, and generating a title and body via `gh pr create`.
Strengths
- Automates the entire PR creation flow without manual intervention
- Enforces conventional commit messages and standardized titles
- Handles rebasing and conflicts interactively
- Produces a detailed PR body with summary and test plan
Limitations
- Requires GitHub CLI authentication and a remote GitHub repository
- May force rebasing, which can be confusing for beginners
- Conflict resolution is partially automated but requires human input
Use this skill when you want to quickly create a well-formatted pull request from local changes that are not yet pushed.
Avoid using it for uncommitted changes you do not want to push yet, or if you prefer to manually handle rebasing and code review.
Security analysis
SafeThe skill uses common git and gh commands for creating pull requests. It does not perform destructive actions, exfiltrate data, or disable safety mechanisms. All operations are standard for PR workflows.
No concerns found
How this analysis is madeExamples
Create a pull request for my current changes.Create a PR based on the develop branch.Create a draft pull request from my current branch.name: create-pr description: "Create high-quality pull requests via gh pr create. Use when the user wants to create a PR, submit a PR, open a pull request, submit for review, or push changes for review. Triggers on: create a pr, create-pr, submit a pr, open a pull request, submit for review, make a pr, gh pr create."
PR Creator
Create well-structured, reviewer-friendly pull requests following best practices.
CRITICAL: This skill MUST always result in a PR being created. Do NOT stop early, do NOT ask the user to run another command first. Handle all prerequisites (committing, branching, pushing) inline and proceed to gh pr create.
Workflow
Step 1: Pre-flight Checks
Run these checks before anything else:
- Verify GitHub CLI authentication — run
gh api user --jq '.login'to confirm the CLI is authenticated. If this fails, tell the user to rungh auth loginfirst and stop. - Determine the base branch — default to
main. If the user specifies a different base, use that. Capture as$BASE_BRANCH.
Step 2: Commit Uncommitted Changes
Run git status to check for uncommitted changes. If there are uncommitted changes, commit them directly — do NOT delegate to another skill or tell the user to commit first.
- Stage changes — run
git add <files>for relevant modified/untracked files. Do not stage.envor gitignored files. - Lint and format — if Python files are staged, run:
Re-stage any modified files.ruff check --fix <files> && ruff format <files> - Commit — write a conventional commit message based on the staged diff:
If precommit hooks modify files, re-stage withgit commit -m "<type>: <description>"git add -uand retry (up to 3 times).
Step 3: Ensure Feature Branch
- Check current branch — run
git branch --show-current. - If on
$BASE_BRANCH, create a feature branch:- Analyze the commits/changes to pick a descriptive name (e.g.,
feat/add-auth,fix/login-bug) - Run
git checkout -b <branch-name>
- Analyze the commits/changes to pick a descriptive name (e.g.,
- If on a different branch, check whether the branch has PR-worthy commits vs
$BASE_BRANCH:- Run
git log $BASE_BRANCH..HEAD --oneline - If there are commits, use the current branch as-is
- If there are NO commits (branch is at same point as base), this means something went wrong — investigate and fix
- Run
Step 4: Sync with Base Branch
- Fetch latest — run
git fetch origin $BASE_BRANCH - Check for divergence — run
git log HEAD..origin/$BASE_BRANCH --oneline - Rebase if needed — if the base branch has new commits:
a. Run
git rebase origin/$BASE_BRANCHb. If conflicts arise, surface them to the user — show both sides and ask which to keep. Do not silently resolve. c. After resolving,git add <file>andgit rebase --continue
Step 5: Push
Push the branch to remote:
git push -u origin HEAD
If the push is rejected (e.g., diverged history after rebase), use git push --force-with-lease -u origin HEAD.
Step 6: Analyze Changes and Draft PR
- Analyze — run these in parallel:
git log $BASE_BRANCH..HEAD --oneline— all commitsgit diff $BASE_BRANCH...HEAD --stat— files changed summarygit diff $BASE_BRANCH...HEAD— full diff
- Check PR size — if >500 lines changed, warn the user but continue.
- Draft title — under 70 characters, conventional prefix (
feat:,fix:,refactor:,docs:,chore:). - Draft body using this template:
## Summary
<1-5 bullet points explaining what changed and WHY>
## Changes
<Categorized list of what was modified — group by area/concern>
## Diagrams
<OPTIONAL — include Mermaid diagrams when visual aids clarify workflow or architecture changes>
## Test Plan
<How the changes were verified — manual testing steps, automated tests run, curl commands, etc.>
Guidelines:
- Explain why, not just what
- For WIP PRs, use the
--draftflag instead of[WIP]prefix - Include Mermaid diagrams when they clarify workflows or architecture
- Do NOT include any "Generated with Claude Code" footer or bot attribution
- Do NOT include
Co-Authored-Bylines
Step 7: Create the PR
Write body to a temp file and create the PR:
cat > /tmp/pr_body.md <<'EOF'
## Summary
...
## Changes
...
## Test Plan
...
EOF
gh pr create --title "the pr title" --base $BASE_BRANCH --body-file /tmp/pr_body.md
Optional flags:
- WIP/draft: add
--draft - Reviewers: add
--reviewer <handle> - Assignees: add
--assignee <handle>
Do NOT add:
--authorflag (gh uses the authenticated user automatically)- Any
Co-Authored-Bytrailer - Any "Generated with Claude Code" footer
Step 8: Report
- Return the PR URL so the user can review it
- If
gh pr createfails, diagnose the error and retry with fixes
Best Practices
Commit History: If the commit history is messy, suggest rebasing to clean it up before creating the PR.
Feedback Requests: If the user mentions wanting specific feedback, add a "Feedback Requested" section to the body.
Screenshots: For frontend changes, remind the user to add screenshots or recordings to the PR after creation.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/create-pr-ms47vqrs/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/create-pr-ms47vqrs' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/create-pr-ms47vqrs/download' --output '.skill-downloads/create-pr-ms47vqrs/SKILL.md.part' && mv '.skill-downloads/create-pr-ms47vqrs/SKILL.md.part' '.skill-downloads/create-pr-ms47vqrs/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/create-pr-ms47vqrs/SKILL.md' && test -s '.skill-downloads/create-pr-ms47vqrs/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/create-pr' && cp -R '.skill-downloads/create-pr-ms47vqrs' '.claude/skills/create-pr'Cursor
test -f '.skill-downloads/create-pr-ms47vqrs/SKILL.md' && test -s '.skill-downloads/create-pr-ms47vqrs/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/create-pr' && cp -R '.skill-downloads/create-pr-ms47vqrs' '.cursor/skills/create-pr'Codex
test -f '.skill-downloads/create-pr-ms47vqrs/SKILL.md' && test -s '.skill-downloads/create-pr-ms47vqrs/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/create-pr' && cp -R '.skill-downloads/create-pr-ms47vqrs' '.agents/skills/create-pr'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/create-pr-ms47vqrs'openskills read 'create-pr-ms47vqrs'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/create-pr-ms47vqrs/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.