From personal
Use when the user wants to generate a PR title and description from the current branch's changes. Invoked via /pr-desc, optionally followed by a base ref or prose instructions to refine the output.
How this skill is triggered — by the user, by Claude, or both
Slash command
/personal:pr-descThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a PR title and markdown description by analyzing the diff between the current branch and its base.
Generate a PR title and markdown description by analyzing the diff between the current branch and its base.
Announce at start: "Generating PR description..."
The user may pass optional text after /pr-desc:
To distinguish a ref from prose: run git rev-parse --verify <token> 2>/dev/null on tokens that look like they could be refs. If it resolves, treat it as a base override.
Detect the default branch:
gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
Use origin/<result> as the initial base candidate. Fetch it first:
git fetch origin <default-branch> --quiet
If the user provided an explicit base ref in args: use that ref as the base. Skip to Step 2.
Otherwise, detect stacked PRs:
Find where this branch diverges from the default branch:
git merge-base HEAD origin/<default>
Get all open PRs in the repo:
gh pr list --state open --json headRefName,baseRefName,number --limit 50
For each open PR, fetch its head branch and compute the merge-base with HEAD:
git fetch origin <headRefName> --quiet
git merge-base HEAD origin/<headRefName>
If any open PR's merge-base with HEAD is more recent (a descendant of the default-branch merge-base), use that PR's head branch as the diff base instead. "More recent" means the merge-base commit is reachable from the default-branch merge-base but not equal to it — verify with:
git merge-base --is-ancestor <default-merge-base> <pr-merge-base>
If multiple candidate parent PRs are found, pick the one whose merge-base is closest to HEAD (most recent ancestor).
Report which base was chosen:
<branch>), diffing against that branch."origin/<default>."Run all three commands using the determined base:
git log <base>..HEAD --pretty=format:"%h %s"
git diff <base>..HEAD --stat
git diff <base>..HEAD
Read all three outputs before generating anything.
Incorporate conversation and plan context:
Before generating the title and description, check for context from the current conversation that can inform the why and motivation behind the changes:
superpowers:writing-plans, superpowers:executing-plans, or similar), use the plan's goal, motivation, acceptance criteria, and relevant step descriptions to frame the Summary and Changes sections.The diff shows what changed; conversation and plan context often better explain why. Use both.
Write a PR title:
### <title>Write the description to /tmp/pr-description.md using the Write tool (not Bash/echo). Overwrite any existing content.
Structure:
## Summary
- <bullet points summarizing the changes>
- <scale the number of bullets to the size of the changeset>
## Changes
- <bulleted list of meaningful changes, grouped logically>
- <focus on what changed and why, not line-by-line diffs>
## Test plan
- [ ] <bulleted checklist of testing considerations>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
If the user passed prose refinement instructions in the args, adjust the description's focus, scope, or emphasis accordingly.
After writing the file, open it in the user's default app:
open /tmp/pr-description.md
Print: "Description written to /tmp/pr-description.md"
gh commands fail (e.g., no GitHub remote), fall back to origin/<default> as the base and note the limitation.npx claudepluginhub tomboone/claude-skills --plugin personalReads the current branch diff and commit messages to generate a structured GitHub PR description (summary, changes, testing) and optionally create or update the PR via the gh CLI.
Generates a PR description from conversation context and git diff, then opens PR creation in browser. Useful for automating the PR drafting workflow.
Reads task files from tasks/<branch>/ and the diff against the detected base ref, then generates a polished PR description in markdown for the user to copy-paste.