Pull Request Content Generator
Generates PR title and description by analyzing all commits in the current branch compared to the base branch. Creates both Korean and English versions for easy copying.
Repository State Analysis
- •Git status: !
git status --porcelain - •Current branch: !
git branch --show-current - •Default branch: !
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo "main" - •Remote branches: !
git branch -r --list 'origin/main' 'origin/master' 2>/dev/null - •Commits since divergence: !
git log --oneline origin/HEAD..HEAD 2>/dev/null || git log --oneline origin/main..HEAD 2>/dev/null || git log --oneline origin/master..HEAD 2>/dev/null || echo "Unable to detect base branch" - •Changed files summary: !
git diff --stat origin/HEAD..HEAD 2>/dev/null || git diff --stat origin/main..HEAD 2>/dev/null || git diff --stat origin/master..HEAD 2>/dev/null
What This Command Does
- •Detects the base branch (main/master) automatically or uses provided argument
- •Collects all commits from base to current HEAD
- •Analyzes commit messages and changed files
- •Generates a consolidated PR title (Conventional Commits style)
- •Generates PR description with summary, changes, and related issues
- •Saves to pr_content.md file for easy copying
When to Use This Command
| Scenario | Recommendation |
|---|---|
| Single commit PR | Use commit message directly (GitHub does this automatically) |
| Multiple commits PR | Use this command to consolidate changes |
| Large feature branch | Use this command to summarize all work |
PR Title Format (Conventional Commits)
code
<type>[(optional scope)]: <description>
Type Selection for PRs
Analyze all commits and select the dominant type:
| Pattern | PR Type |
|---|---|
Mostly feat commits | feat |
Mostly fix commits | fix |
Mixed feat and fix | feat (features take precedence) |
Only docs commits | docs |
Only chore/ci commits | chore |
refactor focused | refactor |
Priority: feat > fix > refactor > perf > docs > chore
Title Writing Guidelines
- •50 characters or less (GitHub truncates longer titles)
- •Focus on user-facing value, not implementation details
- •Use imperative mood: "add feature" not "added feature"
PR Body Format
Summary Section
1-3 sentences describing the overall change and its purpose.
Changes Section
- •Bullet points of key changes
- •Group by category if many changes
- •Focus on what changed, not how
Related Issues Section
- •Extract issue numbers from branch name and commits
- •Use
fix #Nformat (consistent with commit.md)
Output Template
markdown
## PR Title (Korean)
{type}: {한글 제목}
## PR Title (English)
{type}: {English title}
---
## PR Body (Korean)
### 요약
{변경사항 요약 1-3문장}
### 주요 변경사항
- {변경사항 1}
- {변경사항 2}
- {변경사항 3}
### 관련 이슈
fix #{issue_number}
### 테스트 계획
{테스트 방법 - 필요시만}
---
## PR Body (English)
### Summary
{1-3 sentence summary of changes}
### Changes
- {Change 1}
- {Change 2}
- {Change 3}
### Related Issues
fix #{issue_number}
### Test Plan
{How to test - if needed}
Important Notes
- •This command ONLY generates PR content - it never creates actual PRs
- •pr_content.md file contains both versions - choose the one you prefer
- •For single-commit PRs, consider using the commit message directly
- •If branch name contains issue number, it will be auto-detected
- •Copy content from generated file and paste into GitHub PR form
- •Use
gh pr createwith the generated content for CLI workflow
Execution Instructions
- •Determine base branch: Use argument if provided, otherwise detect from origin/HEAD
- •Collect commit information: Run git log and git diff commands
- •Analyze commits: Count types, identify primary type, extract scope
- •Extract issue numbers: From branch name and commit messages
- •Generate PR title: Summarize in ≤50 chars
- •Generate PR body: Summary, changes, issues, test plan
- •Create both versions: Korean first, English second
- •Write to file: Save to
pr_content.md