This skill should be used when the user requests to create a pull request from the current branch (e.g., "create PR", "draft PR", "open PR"). Provides workflow guidance for creating well-structured Draft PRs using GitHub CLI.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
templates/default-pr-template.mdThis skill provides procedural knowledge for creating well-structured Draft Pull Requests with clear titles and motivation-focused descriptions using GitHub CLI (gh).
--web flag prohibited)Optional parameters that may be provided:
| Parameter | Description | Default |
|---|---|---|
base | Target base branch | Repository default branch |
reviewers | GitHub handles (comma-separated) | None |
assignees | GitHub handles (comma-separated) | None |
labels | Labels (comma-separated) | None |
project | Project name or ID | None |
milestone | Milestone name | None |
title | Explicit PR title | Agent drafts |
body | Explicit PR body | Agent drafts |
# Check current branch and status
git rev-parse --abbrev-ref HEAD
git status -sb
# Check for existing PRs from this branch
gh pr list --limit 5 --head $(git rev-parse --abbrev-ref HEAD)
Stop conditions:
# If base not provided, get default branch
gh repo view --json defaultBranchRef -q .defaultBranchRef.name
Execute repository-standard validations:
# Examples (adjust to repository):
pnpm lint
pnpm test
pnpm build
# or: npm run lint && npm run test
# or: make check
Stop condition: Any validation fails → Report outcomes and stop (do not create PR)
<type>(<scope>): <subject>.github/pull_request_template.md if it existsN/A with brief note when something does not applySecurity check: Scan for secrets before including in body → Stop if found
Present the drafted Title and Body to the user:
## Proposed PR
**Title:** <drafted title>
**Body:**
<drafted body>
---
Please confirm or request edits.
Revise until user approves.
gh pr create \
--draft \
${base:+--base "$base"} \
${reviewers:+--reviewer "$reviewers"} \
${assignees:+--assignee "$assignees"} \
${labels:+--label "$labels"} \
${project:+--project "$project"} \
${milestone:+--milestone "$milestone"} \
--title "$(cat <<'TITLE'
<title>
TITLE
)" \
--body "$(cat <<'BODY'
<body>
BODY
)"
Notes:
gh push if needed# Capture and display PR URL from output
# Show next steps
Report to user:
gh pr ready), assign reviewers<type>(<scope>): <subject>
feat: User-facing featurefix: User-facing bug fixdocs: Documentation onlystyle: Formatting, no logic changerefactor: Code change without behavior changetest: Add/modify tests onlychore: Maintenance, tooling, infrastructurefeat: add user authentication flow
fix(api): handle timeout on large uploads
refactor: migrate to new config format
docs: update API reference for v2
# List PRs from current branch
gh pr list --head $(git branch --show-current)
# Get default branch
gh repo view --json defaultBranchRef -q .defaultBranchRef.name
# View PR after creation
gh pr view
# Convert draft to ready
gh pr ready
# Add reviewers after creation
gh pr edit --add-reviewer <handle>