返回 Skill 列表
extension
分类: 开发与工程无需 API Key

github-pr-creation

当用户要求创建PR、打开拉取请求、提交审核或提到“PR 생성/만들기”时,必须使用此技能。此技能将覆盖默认的PR创建行为。分析提交内容,验证任务完成情况,生成符合Conventional Commits规范的标题和描述,并建议标签。

person作者: jakexiaohubgithub

GitHub PR Creation

Creates Pull Requests with task validation, test execution, and Conventional Commits formatting.

Quick Start

# 1. Verify GitHub CLI
gh --version && gh auth status

# 2. Gather information
git log develop..HEAD --oneline
git diff develop --stat
git rev-parse --abbrev-ref HEAD

# 3. Run project tests
make test  # or: pytest, npm test

# 4. Create PR
gh pr create --title "..." --body "..." --base develop --label feature

Core Workflow

1. Verify Environment

gh --version && gh auth status

If not installed: brew install gh then gh auth login

2. Confirm Target Branch

Always ask user:

I'm about to create a PR from [current-branch] to [target-branch]. Is this correct?
- feature branch → develop (90% of cases)
- develop → master/main (releases)

3. Gather Information

# Current branch
git rev-parse --abbrev-ref HEAD

# Commits since base branch
git log [base-branch]..HEAD --oneline

# Files changed
git diff [base-branch] --stat

# Remote tracking status
git status -sb

4. Search for Task Documentation

Look for task files in these locations:

  1. .kiro/specs/*/tasks.md
  2. docs/specs/*/tasks.md
  3. specs/*/tasks.md
  4. Any tasks.md in project root

5. Analyze Commits

For each commit, identify:

  • Type: feat, fix, refactor, docs, test, chore, ci, perf, style
  • Scope: component/module affected (kebab-case)
  • Task references: look for task X.Y, Task X, #X.Y patterns
  • Breaking changes: exclamation mark (!) or BREAKING CHANGE in body

6. Run Tests

Detect and run project tests:

  • Makefile: make test
  • package.json: npm test
  • Python: pytest

Tests MUST pass before creating PR.

7. Determine PR Type

| Branch Flow | PR Type | Title Prefix | |-------------|---------|--------------| | feature/* → develop | Feature | feat(scope): | | fix/* → develop | Bugfix | fix(scope): | | hotfix/* → main | Hotfix | hotfix(scope): | | develop → main | Release | release: | | refactor/* → develop | Refactoring | refactor(scope): |

8. Generate PR Content

Title format: <type>(<scope>): <description>

  • Type: dominant commit type (feat > fix > refactor)
  • Scope: most common scope from commits (kebab-case)
  • Description: imperative, lowercase, no period, max 50 chars

Body structure:

## Summary
- Key change 1
- Key change 2

## Changes
- List of specific changes

## Test Plan
- [ ] Unit tests passing
- [ ] Integration tests passing
- [ ] Manual testing done

## Related
- Refs: Task N, Issue #X

9. Suggest Labels

| Commit Type | Labels | |-------------|--------| | feat | feature, enhancement | | fix | bug, bugfix | | refactor | refactoring, tech-debt | | docs | documentation | | ci | ci/cd | | security | security |

Check available labels: gh label list

10. Create PR

Show content to user first, then:

gh pr create --title "[title]" --body "$(cat <<'EOF'
[body content]
EOF
)" --base [base_branch] --label [labels]

Information Gathering Checklist

Before generating PR, ensure you have:

  • [ ] Current branch name
  • [ ] Base branch confirmed with user
  • [ ] List of commits with types and scopes
  • [ ] Files changed summary
  • [ ] Task documentation (if exists)
  • [ ] Test results (must pass)
  • [ ] Available labels in repo

Important Rules

  • NEVER modify repository files (read-only analysis)
  • ALWAYS confirm target branch with user
  • ALWAYS run tests before creating PR
  • ALWAYS show PR content for approval before creating
  • NEVER create PR without user confirmation
  • ALWAYS use HEREDOC for body to preserve formatting

Related Skills

  • git-commit - Commit message format and conventions
  • pr-merge - For merging existing PRs
  • pr-review - For handling PR review comments