pr-open/SKILL.md
Use when the user wants to open a pull request for an already-pushed branch that implements a specific issue. Idempotent — returns the existing PR if one is already open for the branch. Trigger phrases - "/pr-open", "open the pr", "create pr for this branch".
npx skillsauth add paulund/ai pr-openInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Open a pull request for the current branch and transition the issue's labels. Idempotent: if a PR already exists for the branch, returns its number without opening a duplicate.
When invoked with arguments, the first line of the prompt may carry a context envelope as JSON:
{ "issue": 582, "branch": "agent/issue-582-foo" }
When invoked directly without context, infer branch from git branch --show-current and ask the user for issue if missing.
gh pr list --head "<branch>" --state open --json number,title,url
If a PR already exists for the branch, report its number + URL and stop. Do not open a second PR.
git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null
If no upstream is set or the branch has unpushed commits, run:
git push -u origin HEAD
gh issue view <issue> --json number,title,body --jq '.title'
Use the issue title as the basis for a short, descriptive PR title (under 70 chars). Don't prefix with "feat:" / "fix:" unless the project uses conventional commits — check recent PRs:
gh pr list --state merged --limit 5 --json title --jq '.[].title'
gh pr create \
--base main \
--title "<descriptive title>" \
--body "$(cat <<'EOF'
## What this does
<one-paragraph plain-English summary of the change, derived from the issue body>
Closes #<issue>
EOF
)"
Keep the description clean: summary + Closes #N. No checklists, no AI output, no screenshots — those go in PR comments later in the chain.
gh issue edit <issue> --remove-label in-progress --add-label in-review
If the labels don't exist on the repo, skip silently rather than failing.
Report:
{ "issue": <N>, "pr": <PR#>, "branch": "<branch>", "url": "<pr-url>" }
🤖 Generated with footers, AI-output blocks, or checklists to the description.git status shows uncommitted changes — surface them and stop.development
Use when the user wants to run the project's lint + types + build sequence as a gate before pushing, opening a PR, or merging. Invoked by chained dev skills between phases. Trigger phrases - "/quality-gate", "run the quality gate", "check it builds".
tools
Use when the user wants to verify a PR's feature works at runtime by booting the dev server, exercising the affected UI via Chrome DevTools MCP, and posting a screenshot summary back to the PR. Idempotent — skips if `verified` or `verify-failed` is already on the PR. Trigger phrases - "/pr-verify", "verify this PR", "runtime check the pr".
testing
Use when the user wants a security-focused review pass on a PR with findings actioned as commits on the same branch. Trigger phrases - "/pr-security-review", "security review and fix".
testing
Use when the user wants to action external review feedback or fix CI failures on an open pull request. Single-purpose — does not handle merge conflicts (use merge-main) or open PRs (use pr-open). Trigger phrases - "/pr-fix", "fix the pr", "address review comments", "fix ci".