sini/nix-config/writing-pr-description
Claude Code and agent skill by sini/nix-config
- community
Checking that the SKILL.md file is still in the repository.
Writes GitHub PR descriptions. Uses the repo PR template verbatim when one exists; otherwise `## Summary` plus an optional validation block. Never invents sections and never appends checklist items. Carries the reasoning a hand-written description would omit. Use when drafting a `gh pr create` body, opening a PR, or when the user says "PR body" / "pull request description".
Install
npx vskill@latest install sini/nix-config/writing-pr-descriptionSKILL.md
PR descriptions
This file is a specification, not a specimen. Its bolding and worked examples are navigation aids; do not reproduce them in what you write.
The repo PR template always wins; everything below is the fallback.
A PR body is where the reasoning goes. The commit subject is terse by design and the diff shows only what changed. The body carries what neither does: why this shape, what was tried first, what was verified by hand. That is what it is for, not a licence to pad. Never write a reason you cannot source -- an invented rationale reads exactly like a known one once it is merged.
Decision routing
Title
A PR title is a commit subject: compose it with writing-commit-message. Lowercase imperative, names what changed, optional <type>(<scope>): prefix, no trailing period. Do not attach an uppercase ticket id -- that is not this project's convention.
Read the repo's contribution docs first
Take the required commit format, issue-link syntax, branch naming, whether a "how to test" section is mandatory, which checks gate merge, and any DCO or --signoff requirement. Where CONTRIBUTING.md conflicts with this file, the repo wins.
Use the repo template verbatim when one exists
Its structure is canonical. Fill its sections; leave its structure alone. Only tick or leave the existing - [ ] items -- never append a new one, even when the change seems to warrant it.
Fallback structure when there is no template
Use ## Summary and at most one validation section. Do not invent ## Risks, ## Test plan, ## Description, ## Motivation and context, or ## Types of changes.
For a PR spanning distinct areas, group bullets under area subheads with a trailing colon (Schema:, Permissions:, Testing:) rather than a flat list of multi-sentence bullets. The shortest acceptable body for a self-evident PR is See title.
Summary bullets
One sentence each. Lead with the action. Attach the reason with so, as or because -- the reason is the part the diff cannot show.
Show a rerouted call path instead of describing it
When a change adds, drops or reroutes a call path, run calldiff diff <base> --max-depth 3 and put the plain tree in a fenced block under ## Summary, below the bullets. Then delete the bullet that was describing it in prose -- the tree is shorter and a reviewer can check it.
This is a block inside ## Summary, not a new section; the rule against invented sections still holds. Skip it for Nix-only changes, which calldiff cannot parse, and for changes that only edit bodies without moving edges. Load the calldiff skill for the flags.
activate(choice)
- ├─ panel.hide()
└─ clipboard.restore(row.entry)
Stacked PRs
A change with more than one reviewable concern is stacked by default: one PR per concern, each based on the one below. A stack of one is just an ordinary PR. gh stack (a gh extension, not a skill) owns the commands -- gh stack submit replaces gh pr create and stays owner-gated the same way.
Each layer gets its own body by the rules above, and only the bottom layer carries the issue URL.
Creating the PR
--web opens the pre-filled editor so the user reviews, sets labels and reviewers, and submits. Never use --draft, --fill / --fill-first, --reviewer / --assignee / --label, and never submit without --web, unless the immediately preceding user turn directed it.
Never
- Paste a generic template over an existing repo template.
- Preamble (
This PR adds...,In this change...). Lead with the action. - Em-dashes. Use
so,as,because, or a second sentence. Co-authored-by:/Claude-Session:/ tool-attribution trailers. Standing
law, no exceptions.
- Architecture overviews. Those belong in a design doc.
- Marketing adjectives:
robust,seamless,comprehensive. - Emojis, anywhere.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingmodules/den/aspects/applications/dev/ai/skills/assets/writing-pr-description/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sini/nix-config/writing-pr-description)