GitHub PR Message Writer
Use this skill to generate PR-facing text that is ready to paste into GitHub with minimal cleanup.
Default outputs:
- Suggested PR title
- PR body
- Optional maintainer ping comment if the user asks
Core Goals
- Make the PR easy for maintainers to review quickly.
- Preserve the real bug / change scope.
- Avoid boilerplate status noise unless the user explicitly wants it.
- Keep the text compatible with repo-specific PR title or commitlint checks when possible.
First Checks
If the target repo exists locally, inspect these before drafting:
.github/workflows/for PR title / semantic PR / commitlint checks.commitlintrc*or equivalent lint config- contributing docs if they define PR title conventions
If the repo lints PR title + body as a merge commit message:
- output a Conventional Commits style title
- do not use a plain prose title
- put
Fixes #123or similar issue-closing footer at the end of the PR body - ensure there is a blank line before the footer
Writing Rules
- Lead with the actual problem solved.
- Explain root cause only as far as needed for review.
- Summarize what changed in a few bullets.
- Omit routine workflow narration such as rebasing, formatting, or CI basics unless the user asks.
- Do not inflate the PR body into a deep-dive article unless the user explicitly wants that.
- If the user has a public write-up or blog post, link it as optional background instead of duplicating everything.
- If the user asks to mention production impact or deployment evidence, include it briefly near the end.
- If the user asks to mention AI assistance, keep it short and place it near the end, before any issue-closing footer.
Default Structure
Use this structure unless the user requests a different format:
Suggested PR title
- One line only
- Prefer
fix(scope): subject/feat(scope): subjectwhen repo conventions suggest it
PR body
Use short sections:
SummaryRoot causeWhat changedAdditional contextonly if it adds value- Final short note if requested
- Blank line
Fixes #123
What To Avoid
- Long code indexes in PR bodies
- File-by-file changelogs unless specifically requested
- Test / rebase / formatting narration as filler
- Marketing language
- Hiding the actual problem behind generic phrases like "improves stability"
Reviewer Ping Comments
When the user asks for a maintainer ping / review request comment:
- keep it under 6 lines
- be polite and direct
- mention concrete impact
- say why the review matters now
- include a background link only if it truly helps
Template:
@maintainer could you take a look at this PR when you have a chance?
This issue is currently affecting my normal use of X in production, so I would really appreciate a review when convenient.
Thanks.
Conventional-Commit-Friendly Pattern
If commitlint or semantic PR checks are present, default to:
Title:
fix(scope): concise subject
Body pattern:
## Summary
Short problem statement.
## Root cause
Short explanation.
## What changed
- change 1
- change 2
## Additional context
- optional link
Requested final note if any.
Fixes #123
Important:
Fixes #123belongs at the bottom, not the top- leave a blank line before the footer
- do not reuse a prose heading as the PR title if the repo expects conventional commits
Output Style
When generating the result, prefer:
- one fenced block for
Suggested PR title - one fenced block for
PR body - one fenced block for
Review request commentif requested
Keep each block ready to paste without further explanation unless the user asks for alternatives.