.cursor/skills/create-pull-request/SKILL.md
Creates GitHub pull requests with conventional titles, template-filled bodies, labels, and assignees using the GitHub MCP server. Use when the user asks to create a PR, open a PR, submit changes for review, or says their branch is ready for review.
npx skillsauth add imvanzen/strava-kudosik create-pull-requestInstall 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.
Before asking the user, extract from available context:
| Field | Source | Fallback |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Ticket number | Branch name (PAIC-123, TW-456), commit messages, file changes | Ask: "What is the ticket number (e.g. PAIC-123)?" |
| Commit type | Changes: new features → feat, bug fixes → fix, docs → docs, refactor → refactor, tests → test, config → chore | Ask: "What type? (feat/fix/docs/refactor/test/chore)" |
| Scope | Modified paths: apps/backend/** → backend, apps/checkout/** → checkout, apps/dashboard/** → dashboard | Omit if multiple/unknown |
| Short description | Primary change, present tense, lowercase, no period | Ask if unclear |
| Labels | feat → enhancement, fix → bug, docs → documentation | Only from: bug, documentation, duplicate, enhancement, good first issue, help wanted, invalid, question, wontfix |
| Analysis of changes | Git diff / file changes → bullet points (user-visible or significant) | Ask: "What changes does this PR include?" |
Use GitHub MCP to read the PR template. Try in order:
.github/pull_request_template.mdpull_request_template.mdPULL_REQUEST_TEMPLATE.md.github/PULL_REQUEST_TEMPLATE/pull_request_template.mdIf found: preserve all sections, placeholders, and formatting. If not found, use:
# Issue: [TICKET-NUMBER](link-if-available)
## Description
[Analysis of Changes]
Format: type(scope): ticket-number description or type(scope): description if no ticket.
feat(backend): PAIC-123 add user authenticationfix: PAIC-456 resolve payment timeout[PAIC-xxx] / [TICKET-NUMBER] → actual ticket; [PAIC-xxx](https://masterborn.atlassian.net/browse/PAIC-xxx) → real link; Description → Analysis of Changes (bullets).<!--- ... -->). Do not remove template structure.git branch --show-currentCall GitHub MCP create-pull-request with:
title: Step 3body: Step 4 (full filled template)head: current branchbase: default branch (main / master)draft: false unless user asks for draftlabels: from Step 1 (max 10)assignees: [authenticated user's username]Ticket priority: Branch name → commit messages → modified files → ask user.
Commit type: New business logic → feat; fix incorrect behavior → fix; docs only → docs; restructure no behavior change → refactor; tests only → test; config/build → chore. If multiple, use most significant.
Scope: 80%+ changes in one app dir → that scope; multiple apps or root → omit.
Labels: feat → enhancement, fix → bug, docs → documentation; others no auto-label unless user specified.
Non-goals: PR reviews, updating existing PRs, branch protection, running CI.
[PAIC-xxx] placeholdersMissing info: If no ticket and user doesn’t give one → proceed with type(scope): description. If type ambiguous → ask user to choose.
Template: If unreadable → use minimal template. If odd format → keep structure, fill obvious placeholders.
Git: Uncommitted changes → warn and ask to commit first. Branch behind base → inform but can proceed. Branch not on remote → user must push first.
GitHub API: Repo not found → check name and permissions. Invalid labels → create PR without those, inform user. Invalid assignee → create without assignee, inform user.
On success: confirm PR number and URL, show title and key details, confirm labels and assignee.
development
Discover and establish technical context before implementing any feature. Prioritize project instructions, existing codebase patterns, and external documentation in that order. Use for any task requiring understanding of project conventions, coding standards, architecture patterns, and established practices before writing code.
development
Analyse task description, performs gap analysis, expand the context for the task, analyse the current state of the system in the context of the task, helps build PRD, creates a context for the task, gathers information about the task from different sources.
testing
Resolves dependency audit (security) issues and updates outdated packages with prioritization by breaking-change risk and security/value. Prefer security fixes and non-breaking updates; defer or flag major upgrades. Use when the user asks to fix audit, update packages, resolve vulnerabilities, or run maintenance.
testing
Implementation gap analysis. Verify what has to be implemented. Verify what was implemented. Compare plan to current state.