From claude-skills
Generates a concise PR description for the current branch using a Why / What / Tested / Demo template (Conventional Commits title, auto-linked issues, UI-aware demo section). Use whenever the user asks to write a PR description, draft a PR, open a pull request, create a PR, summarize a branch for review, or asks "what should this PR say".
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-skills:pr-description [base-branch][base-branch]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Current branch:**
Current branch:
!`git rev-parse --abbrev-ref HEAD`
Base branch (defaults to origin/HEAD, override with $ARGUMENTS):
!`git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo main`
Commits on this branch:
!`git log --oneline "$(git merge-base HEAD @{u} 2>/dev/null || git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD origin/master 2>/dev/null)"..HEAD 2>/dev/null | head -50`
Files changed:
!`git diff --name-status "$(git merge-base HEAD @{u} 2>/dev/null || git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD origin/master 2>/dev/null)"..HEAD 2>/dev/null | head -100`
Diff stat:
!`git diff --stat "$(git merge-base HEAD @{u} 2>/dev/null || git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD origin/master 2>/dev/null)"..HEAD 2>/dev/null | tail -30`
Full diff (first 800 lines):
!`git diff "$(git merge-base HEAD @{u} 2>/dev/null || git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD origin/master 2>/dev/null)"..HEAD 2>/dev/null | head -800`
Generate a PR description for the changes above. Output a single fenced markdown block the user can copy directly into GitHub. Do not include extra commentary outside the block.
First line, outside the markdown block:
Title: <type>(<scope>): <imperative verb phrase>
feat, fix, refactor, docs, test, chore, perf, build, ci.<scope> from the dominant changed directory; omit scope if changes are cross-cutting.Output this exact structure in a fenced ```markdown block. Keep the entire body under ~250 words.
## Why?
<!-- 1-3 sentences on the motivation. What problem does this solve, or what does it enable? -->
<!-- If the branch name or commits reference an issue (e.g. fix-123, ENG-456), add: Fixes #N -->
## What?
<!-- High-level summary in prose — describe the *behavior change*, not the file list. -->
<!-- Call out non-obvious decisions or alternatives considered. -->
<!-- If this is a breaking change, add a "### Breaking change" subsection with the migration path. -->
## Tested
<!-- 3-4 short bullets. Phrase as reviewer-reproducible steps, not past-tense self-reports. -->
-
-
-
## Demo
<!-- Only include this section if the change touches UI (*.tsx, *.jsx, *.vue, *.svelte, *.css, *.scss, templates, views). -->
<!-- Otherwise OMIT this whole section. -->
| Before | After |
| --- | --- |
| _drag screenshot here_ | _drag screenshot here_ |
<!-- For a video, replace the table with:
https://github.com/user-attachments/assets/REPLACE-ME
-->
pnpm test settings", "Open /dashboard and toggle dark mode" — not "I tested X".#123, ABC-456, fix-123). Add a Fixes #N line under Why? if found.### Breaking change subsection under What? with a one-line migration note.- [describe step here] placeholders for the author to fill in — better than fabricating.npx claudepluginhub paologum/claude-skills --plugin claude-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.