write-pr-description
Skill73 starsChanged 10 days agoMITView on GitHub
Use when a pull request title or description needs drafting or revising — before running `gh pr create`, `gh pr edit --body`, or any other command that opens a PR or replaces its description on any provider, and when the user asks to "write the PR description", "draft PR text", or "revise the PR body for the latest commits". Returns prose only; the caller or provider adapter (such as bitbucket-pr-mutation) performs the write. Do not use for PR comments, reviews, approvals, merges, state changes, or read-only PR queries.
- Commits and pushes
12 other projects use a version of this.
Adopted by
Most recently taken up by
- databricks/sdk-gotheir own version, first seen Oct 25, 2026
- warpdotdev/common-skillstheir own version, first seen Oct 20, 2026
- ericmasiello/skillstheir own version, first seen Oct 20, 2026
- gspencergoog/skillstheir own version, first seen Oct 16, 2026
- zhouycheng/skillstheir own version, first seen Oct 13, 2026
- databricks/databricks-sdk-gotheir own version, first seen Oct 13, 2026
Used with
Projects with it also use research.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkillresearch
Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.
Also in 3 projects that use this
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- GitbookIO/gitbook★ 29ksame name
- Agenta-AI/agenta★ 4.9ksame name
- warpdotdev/common-skills★ 630same name
- tbhb/vale-ai-tells★ 118same name
- databricks/databricks-sdk-go★ 84same name
- databricks/sdk-go★ 2same name
- gspencergoog/skills★ 2same name
- drown0315/flutter_pilot★ 1same name
- MaheshAwasare/claude-skills-pro★ 1same name
- yuvalshimoni/skills★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository42 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- folder-level/CLAUDE.mdCLAUDE.md
- absorb-packSkill
- agent-authoringSkill
- agent-dispatchSkill
- align-intentSkill
- auto-choiceSkill
- brainstormSkill
- cavemanSkill
- check-my-stackSkill
- debuggingSkill
- domain-modelingSkill
- e2e-contractSkill
- e2e-explore-then-batchSkill
- e2e-routeSkill
- figma-context-budgetSkill
- find-skillsSkill
- gate-authoringSkill
- github-repo-researchSkill
- grill-meSkill
- grill-with-docsSkill
- handoff-implSkill
- implementSkill
- model-onboardSkill
- mutation-testingSkill
- prototypeSkill
- receiving-code-reviewSkill
- research-before-answerSkill
- resolving-merge-conflictsSkill
- review-implementSkill
- review-methodSkill
- review-zhSkill
- skill-creatorSkill
- strategic-compactSkill
- tddSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- wayfinderSkill
- wizardSkill
- workflow-hardeningSkill
- zoom-outSkill
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 10 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Keep evidence-based prose separate from provider mutation so every adapter can reuse the same draft without transferring approval or write …
- Distinctive: line 16
Build the local evidence set: Use the target branch supplied by the user or adapter.
- Very specific: line 17
Read committed scope from git log <base>..HEAD, git diff --stat <base>...HEAD, and the relevant committed diff.
- Distinctive: line 18
Read git status --short, git diff --cached, and git diff separately.
- Distinctive: line 19
Read the repository PR template, preserving its headings, order, required prompts, and comments as the structural authority.
- Distinctive: line 20
Read locally available issue/spec context as intent and rationale, not as proof that the branch delivered it.
- Distinctive: line 21
Use only actual validation receipts: an observed command/result, supplied test output, captured screenshot, or explicit statement that a …
- Distinctive: line 22
Treat session investigation notes — how the defect was found, dead ends, measurements behind a chosen value — as background for …
- Distinctive: line 26
Choose the draft shape: Read references/drafting-rules.md before deciding density, claim phrasing, validation wording, or reviewer-guide …
- Distinctive: line 36
call or data flow → call tree
- Very specific: line 38
Use diff when an existing shape changes and a text or language block when it is new.
- Distinctive: line 46
Keep a small PR to a few useful bullets.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- 本檔在契約測試底下:bash ~/.claude/skills/write-pr-description/scripts/tests/write-pr-description-contract.test.sh -->Write PR Description
Keep evidence-based prose separate from provider mutation so every adapter can reuse the same draft without transferring approval or write authority.
Workflow
- Set the draft boundary. Produce title/body prose only. Do not call provider APIs, run provider preview/apply commands, create approval artifacts, or publish a PR. If a provider adapter invoked this skill, return the candidate to that adapter; the adapter remains the sole writer and approval/read-back owner. If it runs ahead of a direct CLI write such as
gh pr create, return the candidate to the caller, which performs that write under its own confirmation rules. Done when the planned actions contain no provider mutation. Build the local evidence set. Use the target branch supplied by the user or adapter; if it is unresolved, ask for it rather than guessing.
- Read committed scope from
git log <base>..HEAD,git diff --stat <base>...HEAD, and the relevant committed diff. - Read
git status --short,git diff --cached, andgit diffseparately. Treat staged and unstaged work as uncommitted even when it is intended for the same PR. - Read the repository PR template, preserving its headings, order, required prompts, and comments as the structural authority.
- Read locally available issue/spec context as intent and rationale, not as proof that the branch delivered it.
- Use only actual validation receipts: an observed command/result, supplied test output, captured screenshot, or explicit statement that a check was not run. Missing evidence means “no receipt available,” not “passed.”
- Treat session investigation notes — how the defect was found, dead ends, measurements behind a chosen value — as background for understanding the diff, not as body content.
Done when every prospective result claim maps to committed diff evidence or an actual validation receipt, and every uncommitted path is identified separately.
- Read committed scope from
Choose the draft shape. Read references/drafting-rules.md before deciding density, claim phrasing, validation wording, or reviewer-guide inclusion.
- Let the repository template outrank the default shape. Do not reorder its top-level headings or add a competing generic skeleton.
- Without a template, default to
SummaryandValidation; addRiskonly when the change has a meaningful failure mode. For external effects, destructive data changes, or a new persisted format, apply the recovery-boundary rules from drafting-rules.md in the existing Risk or reviewer Focus. - Add a reviewer guide only when reading order is non-obvious, review focus needs an explicit invariant, or blast radius is wider than the diff size suggests. An authorization, permission, data-ownership, or migration change always needs the guide, however few files it touches. When included, use four compact slots:
Startfor the first exact file/symbol,Thenfor the dependent implementation path,Validatefor the exact test/evidence path when one exists, andFocusfor the invariant or blast radius. Use paths and symbols from the evidence instead of generic labels. Nest it under the nearest template section when an extra top-level heading would disrupt the template. Add a change outline when the diff changes an API or data contract, a key type, a component tree, file responsibilities, or a call or data flow; a change with no structural shift gets none. A reviewer reads a six-line tree faster than three paragraphs describing it, so the outline replaces the Summary bullets that would narrate that structure; keep Summary for what the views cannot show, such as intent and deliberate omissions. Place it as
### Change outlineunder Summary unless the template has a closer slot, put one short sentence before each view, and pick only the views that match what changed:- endpoint request/response or table columns →
diffof the contract or columns - a type the implementation hinges on → the type definition
- behavior logic → short pseudocode
- file responsibilities → shallow file tree, one comment per line
- React component structure → component tree with the hooks, state, and package boundaries that matter
- call or data flow → call tree
Use
diffwhen an existing shape changes and atextor language block when it is new; drop unchanged branches; write<and>literally inside blocks; use no Mermaid, so the body stays readable where Markdown diagrams are not rendered.- endpoint request/response or table columns →
Done when drafting-rules.md has been read in this run, every section has evidence-backed content, small changes have no ceremonial filler, a required reviewer guide shows all four slots, and a structural change has its outline.
Draft from facts. Match the repository’s title convention when local history shows one; otherwise use a short action-oriented title grounded in the committed diff.
- Describe verified implementation changes directly.
- Phrase issue/spec goals as intent unless diff or validation evidence proves the outcome. Never turn “should,” “acceptance asks,” or a future rollout goal into a completed result.
- Preserve validation commands and observed outcomes exactly enough to audit. Pair available before/after receipts using the validation rules in drafting-rules.md. Name important checks that were explicitly not run; do not convert unit, build, or typecheck receipts into UI, integration, rollout, or performance evidence.
- Keep a small PR to a few useful bullets. For a large foundational PR, summarize boundaries rather than listing every file.
For a body with a change outline, assign each fact to one place before writing: field/type inventories and call order belong to the views; intent, effects, conditions, and limitations belong to Summary. When revising, use the old body as a fact source rather than copying its bullet structure. Check every Summary bullet against the views: a sentence that only says a field was added, exists, or is exposed belongs only in the view. A field name may still appear in a condition or effect; “Adds a
breedfield” duplicates a view, while “Cycles without a breed cannot contribute to the comparison” adds behavior the view does not show. Split mixed sentences and retain the behavior. Keep the reviewer guide, rollout, recovery boundary, and validation receipts in their own sections.Done when a reviewer can tell what changed, why, what was actually checked, and what remains unverified without reading intent as proof, and Summary contains no field/type inventory or call-order narration already owned by a view. Continue to Step 5.
Return the candidate. Emit Markdown in this shape:
## Title <title> ## Body <body using the repository template or the justified default>If the tree is dirty, append
## Draft basis (not part of PR body)and distinguish committed scope from staged/unstaged paths excluded from the candidate. Do not silently blend uncommitted work into the title or body. Done when title/body are copyable as a candidate and any dirty-tree note is visibly outside the PR body.
踩過的坑
- Diff size does not equal review risk: a tiny permission edit can need a reviewer guide because its blast radius is wide, while an ordinary two-file bugfix usually does not.
- A validation plan is not a validation receipt. Preserve “not run” and “no receipt available” instead of turning either into a checked result.
- Self-Verify is intentionally omitted: PR drafting is expected to be a frequent prose task, so an extra subagent on every use fails the low/medium-frequency gate; contract tests and bounded evals cover the recurring pressure cases instead.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

