| name | create-pr |
| allowed-tools | Task, Bash(gh:*), Bash(git:*), Skill |
| description | Creates comprehensive GitHub pull requests with automated quality validation and security scanning, then hands off to /github:review-pr for CI monitoring and reviewer-comment triage. This skill should be used when the user asks to "create a PR", "submit a pull request", or needs to merge completed work with full compliance checks. |
| argument-hint | [optional description or issue reference] [--no-monitor] [--auto-merge] |
| user-invocable | true |
Create GitHub Pull Request
Execute automated PR creation workflow with comprehensive quality validation and security scanning.
Context
- Current git status: !
git status
- Current branch: !
git branch --show-current
- Unpushed commits: !
git log --oneline -5
- GitHub authentication: !
gh auth status
- Repository changes: !
git diff --stat HEAD~1..HEAD
Requirements Summary
Ensure repository readiness with clean state and authentication. Complete all quality checks (lint, test, build, security) before PR creation. Link related issues with auto-closing keywords and apply accurate labels. See references/requirements.md for complete checklist.
Phase 1: Validation and Analysis
Goal: Validate repository state, analyze changes, detect templates, and identify blockers.
Actions:
- Verify GitHub authentication from context
- Check branch status and unpushed commits
- Analyze commit history for conventional commit compliance
- Identify changed files and determine PR scope
- Check for contributing guidelines (
CONTRIBUTING.md) and follow its requirements
- Detect PR templates (
.github/PULL_REQUEST_TEMPLATE.md or root/docs locations)
- Detect potential blockers (merge conflicts, missing tests, etc.)
See references/repository-templates.md for template detection and compliance details.
Phase 2: Quality and Security Checks
Goal: Execute comprehensive quality validation and security scanning.
Actions:
- Run project-specific quality checks (see
references/quality-validation.md for commands)
- Execute security scanning for sensitive files and hardcoded secrets
- Validate commit message format against standards
- If checks fail: follow failure resolution process in
references/failure-resolution.md
- Re-run all checks until passing
Phase 3: PR Assembly and Creation
Goal: Create pull request with proper structure, metadata, and links.
Actions:
- Consume
$ARGUMENTS before deriving anything. It may carry, in any combination:
- An issue reference (
Closes #456, Fixes #12, or a bare #456) — use it verbatim as the auto-closing keyword in the PR body; do not re-derive or second-guess it. /github:resolve-issues delegates here and passes the issue it just resolved this way.
- A free-text description — use it as the basis for the PR title and the What/Why section.
--draft — pass through to gh pr create in step 6.
--no-monitor — a Phase 4 opt-out only; never treat it as description text.
--auto-merge — pass through to /github:review-pr in Phase 4; turns on auto-merge on green in the review loop. Never treat it as description text.
Strip the flags before using the remainder as description/issue text.
- Identify and link any further related issues using GitHub CLI (in addition to any reference from
$ARGUMENTS)
- Generate PR title (≤70 chars, imperative, no emojis)
- Assemble PR body following template in
references/pr-structure.md
- Apply automated labels based on file changes
- CRITICAL: auto-closing keywords only fire when the PR merges into the repository's default branch. If targeting a non-default branch (e.g.
develop), explicitly warn the user that linked issues will NOT close automatically on merge and must be closed manually — see references/auto-closing-keywords.md for the full rule and keyword table.
- Create PR using
gh pr create with all metadata
- Use
--draft if $ARGUMENTS requested it, or if the PR requires early feedback or is not fully complete
- Set reviewers with
--reviewer and assignees with --assignee when requested
- Fill title/body automatically using
--fill for simple changes
- Report final PR URL and status to user. Do NOT run a foreground
gh pr checks --watch here — Phase 4 hands off to /github:review-pr, which owns the persistent CI watch; a blocking --watch would stall the turn and duplicate that watch.
- Creating the PR is not the end of this skill. Skip Phase 4 only if contains or the user explicitly opts out — never because CI looks green, no reviewers are assigned, or the change looks trivial.
Phase 4: Post-PR Handoff (default on)
Trigger: Default behavior — hand off unless $ARGUMENTS contains --no-monitor or the user opts out.
Goal: Delegate CI monitoring and reviewer-comment triage to the dedicated skill.
Action: After the PR is created, invoke Skill("github:review-pr", "<PR#>") to run the baseline review and launch the persistent CI + comment watch. The review-pr skill owns the Monitor script, the skeptical triage agent, the review → fix → commit+push → wait-for-review loop, through to the merge decision and the post-merge branch hygiene (remote + local head cleanup, fetch --prune, fast-forward main/develop). Once CI is green and every comment is triaged, review-pr asks the user whether to merge via AskUserQuestion (merge commit/squash/rebase/don't) BEFORE its closeout ceremony — the summary comment and body rewrite run only on a merge choice. The merge ask is enforced by the plugin's Stop hook: review-pr arms a closeout state the moment the stop conditions hold and one turn-end per user turn is blocked until the decision resolves — the handoff cannot silently skip the ask. See references/pr-creation-handoff.md for the handoff contract including post-merge hygiene. This skill does not duplicate that cleanup; it is the handoff target's responsibility.
--auto-merge passthrough: If $ARGUMENTS carried --auto-merge, pass it through to the review-pr invocation as Skill("github:review-pr", "<PR#> --auto-merge"). It instructs review-pr to skip the merge AskUserQuestion — the closeout ceremony (summary comment + body rewrite) still runs first — and auto-merge with gh pr merge --merge once CI is green and every non-escalate comment is triaged — see references/pr-creation-handoff.md for the contract and the escalate fallback. Pass it through only when the user explicitly set it; never infer it.
CRITICAL: this skill is the plugin's only PR-creating path. Other skills (e.g. /github:resolve-issues) delegate here instead of calling gh pr create themselves, precisely so no PR escapes the quality gate or this handoff. See references/pr-creation-handoff.md for the full contract. Do not add a bypass.
References
- Requirements:
references/requirements.md - Pre-creation checklist and commit standards
- Repository Templates:
references/repository-templates.md - Contributing guidelines and PR templates
- Quality Validation:
references/quality-validation.md - Node.js/Python validation commands
- PR Structure:
references/pr-structure.md - Title guidelines, body template, labels
- Auto-Closing Keywords:
references/auto-closing-keywords.md - Default-branch limitation and keyword table
- PR Creation Handoff:
references/pr-creation-handoff.md - Only PR-creating path contract
- Failure Resolution:
references/failure-resolution.md - Agent collaboration for fixing failures
- Examples:
references/examples.md - Commit message examples