pr-describe
Generate PR title (conventional commits) and description by analyzing branch changes. Use when creating or describing a pull/merge request.
/pr-describe — Generate Pull Request Description
Generate a PR title and description based on the current branch changes.
Algorithm
1. Gather context
# Current branch
git branch --show-current
# Commit log from branch point
git log --oneline main..HEAD
# Scope of changes — understand what's affected first
git diff main...HEAD --stat
# Full diff — change details
git diff main...HEAD
2. Generate PR title
The title becomes the squash commit message, so strictly follow Conventional Commits:
<type>(<scope>): <short description>
Types:
feat— new functionalityfix— bug fixrefactor— code change without behavior changedocs— documentationtest— testschore— maintenance, dependencies, CIperf— performance improvement
Rules:
- Imperative mood: "add", not "added" or "adds"
- 72 characters max
- No period at the end
- scope — module or area affected by the changes (optional)
- Breaking change:
feat(api)!: restructure response format
3. Generate PR description
Use this template:
## Task
<!-- Link to issue (if found in commits or branch name) and description in own words -->
<Task description: what needed to be done and why>
## Changes
<!-- Key changes — solution logic, not a diff retelling -->
- <Change 1>
- <Change 2>
- ...
## Why this approach
<!-- Explain the chosen approach if non-obvious. Remove this section for trivial changes -->
## How to verify
<!-- Concrete steps for the reviewer -->
1. <Step 1>
2. <Step 2>
3. Expected result: ...
4. Output result
Output in this format:
### PR Title
<title>
### PR Description
<description using the template>
Rules
- Analyze ALL branch commits, not just the latest — the PR describes the entire body of work
- Title should reflect the outcome for the user/system, not the process ("add user search" not "implement search functionality")
- "Changes" section — list logical changes (what the system can do now), not files
- "How to verify" — be specific: endpoint, command, UI button. The reviewer should be able to verify in 2 minutes
- "Why this approach" — include only when the choice is non-obvious or alternatives were considered. Remove for trivial changes
- If the branch name or commits contain an issue number (PROJ-123, #456) — include it in the "Task" section