sanity-io/pr-description
Write PR descriptions and release notes for the Sanity monorepo. Follows the repo's PR template with Description, What to review, Testing, and Notes for release sections. Auto-triggers when creating PRs via `gh pr create`. Use when creating pull requests, writing PR descriptions, drafting release notes, or when user mentions PR, pull request, or release notes.
npx skills add https://github.com/sanity-io/sanity --skill pr-description
Follow the repo's PR template. Always create PRs as drafts. All AI-agent PRs must include the 🤖 bot label.
Before writing, understand the full diff:
git log main..HEAD --oneline
git diff main...HEAD
Must follow conventional commits (CI-enforced):
type(scope): lowercase description
feat, fix, chore, docs, refactor, test, perf, cigroq, cli, form, schema, deps, etc.)Lead with why. Only elaborate on the non-obvious. The reviewer can read the diff — they need the context the diff can't give them. Default to terse; expand only where a reader would genuinely wonder.
Priorities for the Description section:
Length test: if a sentence would tell the reviewer something they could deduce in 10 seconds from the diff, cut it. A good PR description is often 3–5 sentences total. Bulleted lists of "alternatives considered" should be one line per alternative, not a paragraph.
If you catch yourself writing "this PR renames X to Y" or "adds a new function Z", delete it. If you're explaining _why_ X needed to be renamed or _why_ Z exists (and why the obvious alternative wasn't chosen), keep it — but stay brief.
Use all four sections:
Focus on why and why not, tersely:
This section is used by the docs team to write release notes.
If not needed, write one of:
N/A — internal-only changesN/A – Part of feature X — partial implementation not yet enabledN/A – Internal only — tooling/chore workIf needed, write for end users and the docs team:
Always end this section with a --- horizontal rule. The release-notes automation stops at the first --- after the "Notes for release" heading, so the rule fences off anything appended below (Cursor Bugbot reviews, later edits) and keeps it out of the changelog.
Always create as draft and apply the 🤖 bot label. Do not mark as ready for review until CI passes and the prompter approves.
gh pr create --draft --label "🤖 bot" --title "type(scope): description" --body "$(cat <<'EOF'
### Description
[what and why]
### What to review
[guidance for reviewers]
### Testing
[tests added or manual testing explanation]
### Notes for release
[release notes or N/A]
---
EOF
)"
If the label was omitted at create time:
gh pr edit --add-label "🤖 bot"
After CI is green and the prompter approves, mark ready for review:
gh pr ready
Take sanity-io/pr-description from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.