Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/fradser-create-pr/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✓→✗ | ▼ Worse | 38% | 0% |
| case-11 | ✓→✗ | ▼ Worse | 85% | 0% |
| case-12 | ✓→✗ | ▼ Worse | 105% | 0% |
| case-15 | ✓→✗ | ▼ Worse | 7% | 0% |
| case-16 | ✓→✗ | ▼ Worse | 15% | 0% |
Execute automated PR creation workflow with comprehensive quality validation and security scanning.
git statusgit branch --show-currentgit log --oneline -5gh auth statusgit diff --stat HEAD~1..HEADEnsure 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.
Goal: Validate repository state, analyze changes, detect templates, and identify blockers.
Actions:
CONTRIBUTING.md) and follow its requirements.github/PULL_REQUEST_TEMPLATE.md or root/docs locations)See references/repository-templates.md for template detection and compliance details.
Goal: Execute comprehensive quality validation and security scanning.
Actions:
references/quality-validation.md for commands)references/failure-resolution.mdGoal: Create pull request with proper structure, metadata, and links.
Actions:
$ARGUMENTS before deriving anything. It may carry, in any combination: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.--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.
$ARGUMENTS)references/pr-structure.mddevelop), 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.gh pr create with all metadata--draft if $ARGUMENTS requested it, or if the PR requires early feedback or is not fully complete--reviewer and assignees with --assignee when requested--fill for simple changesgh 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.$ARGUMENTS contains --no-monitor or the user explicitly opts out — never because CI looks green, no reviewers are assigned, or the change looks trivial.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.md - Pre-creation checklist and commit standardsreferences/repository-templates.md - Contributing guidelines and PR templatesreferences/quality-validation.md - Node.js/Python validation commandsreferences/pr-structure.md - Title guidelines, body template, labelsreferences/auto-closing-keywords.md - Default-branch limitation and keyword tablereferences/pr-creation-handoff.md - Only PR-creating path contractreferences/failure-resolution.md - Agent collaboration for fixing failuresreferences/examples.md - Commit message examples| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,184 | 16,187 | +98% | 1 | 1 | 0% | 1,434 | 2,104 | +47% | 0 | 0 | — |
case-02 | fail→fail | 6,095 | 29,815 | +389% | 1 | 1 | 0% | 1,066 | 2,075 | +95% | 0 | 0 | — |
case-03 | fail→fail | 11,066 | 5,448 | -51% | 1 | 1 | 0% | 1,910 | 2,080 | +9% | 0 | 0 | — |
case-04 | fail→fail | 5,922 | 8,182 | +38% | 1 | 1 | 0% | 833 | 2,033 | +144% | 0 | 0 | — |
case-05 | fail→fail | 7,032 | 7,843 | +12% | 1 | 1 | 0% | 1,196 | 2,017 | +69% | 0 | 0 | — |
case-06 | pass→fail | 8,459 | 29,909 | +254% | 1 | 1 | 0% | 1,465 | 2,021 | +38% | 0 | 0 | — |
case-07 | fail→fail | 4,096 | 6,380 | +56% | 1 | 1 | 0% | 803 | 2,112 | +163% | 0 | 0 | — |
case-08 | fail→fail | 14,234 | 8,023 | -44% | 1 | 1 | 0% | 2,233 | 2,320 | +4% | 0 | 0 | — |
case-09 | fail→fail | 12,569 | 6,284 | -50% | 1 | 1 | 0% | 2,113 | 2,047 | -3% | 0 | 0 | — |
case-10 | fail→fail | 6,085 | 7,123 | +17% | 1 | 1 | 0% | 846 | 2,301 | +172% | 0 | 0 | — |
case-11 | pass→fail | 6,377 | 33,368 | +423% | 1 | 1 | 0% | 1,059 | 1,961 | +85% | 0 | 0 | — |
case-12 | pass→fail | 5,430 | 6,095 | +12% | 1 | 1 | 0% | 974 | 1,999 | +105% | 0 | 0 | — |
case-13 | fail→fail | 10,771 | 8,549 | -21% | 1 | 1 | 0% | 1,794 | 2,067 | +15% | 0 | 0 | — |
case-14 | pass→pass | 12,393 | 6,309 | -49% | 1 | 1 | 0% | 2,063 | 2,904 | +41% | 0 | 0 | — |
case-15 | pass→fail | 10,690 | 5,808 | -46% | 1 | 1 | 0% | 1,767 | 1,895 | +7% | 0 | 0 | — |
case-16 | pass→fail | 10,815 | 9,324 | -14% | 1 | 1 | 0% | 1,706 | 1,957 | +15% | 0 | 0 | — |
case-17 | fail→fail | 5,604 | 28,089 | +401% | 1 | 1 | 0% | 880 | 1,987 | +126% | 0 | 0 | — |
case-18 | pass→pass | 9,963 | 6,141 | -38% | 1 | 1 | 0% | 1,841 | 2,718 | +48% | 0 | 0 | — |
case-19 | fail→fail | 5,805 | 5,969 | +3% | 1 | 1 | 0% | 600 | 1,981 | +230% | 0 | 0 | — |
case-20 | fail→fail | 6,605 | 8,707 | +32% | 1 | 1 | 0% | 1,088 | 2,439 | +124% | 0 | 0 | — |
case-21 | pass→pass | 17,392 | 6,404 | -63% | 1 | 1 | 0% | 3,024 | 2,790 | -8% | 0 | 0 | — |
case-22 | pass→fail | 3,389 | 8,574 | +153% | 1 | 1 | 0% | 501 | 2,354 | +370% | 0 | 0 | — |
case-23 | fail→fail | 4,321 | 7,013 | +62% | 1 | 1 | 0% | 604 | 2,009 | +233% | 0 | 0 | — |
case-24 | pass→fail | 1,502 | 5,936 | +295% | 1 | 1 | 0% | 215 | 1,965 | +814% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 3 counted toward the lift figure. The other 21 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. A headline lift is not published for this run.
Other measured skills in the registry, with their headline benchmark lift.