PR

pr-description

Generates and updates GitHub PR descriptions based on commit history and diffs. Ensures accurate documentation of code changes.

Install

mkdir -p .claude/skills/pr-description && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7402" && unzip -o skill.zip -d .claude/skills/pr-description && rm skill.zip

Installs to .claude/skills/pr-description

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Update a GitHub PR description with a summary of changes
56 charsno explicit “when” trigger
Beginner

Key capabilities

  • →Extracts commit messages and diff summaries
  • →Parses issue numbers from flags and commit history
  • →Categorizes changes into summary and breaking change blocks
  • →Filters out existing accurate PR descriptions
  • →Formats output for standardized GitHub PR documentation

How it works

It executes git diff and log operations to inspect branch changes, then synthesizes a structured Markdown document using local parser logic.

Inputs & outputs

You give it
PR number, optional --fixes issue IDs
You get back
Markdown text for PR body

When to use pr-description

  • →Generate summary for new pull requests
  • →Link Jira issues to PR descriptions
  • →Update stale PR documentation
  • →Identify breaking changes for PR notes

About this skill

Write a pull request description for a reviewer who knows the project but hasn't read the issue, the diff, or the development conversation. Establish why the change exists before explaining how it works.

If the user asks for a draft, return the text without updating GitHub. Otherwise, update the requested PR description.

Arguments

/pr-description <PR_NUMBER> [--fixes <ISSUE_NUMBERS>]
  • PR_NUMBER (required): The pull request to describe.
  • --fixes (optional): Comma-separated issue numbers this PR fixes, such as 123,456.

Examples:

  • /pr-description 3534
  • /pr-description 3534 --fixes 123,456

Instructions

  1. Gather the change:

    • Read the PR title, current description, base branch, and head branch.
    • Read the PR commits and diff. Use the PR's actual base and head; don't assume the current checkout is the PR branch or that its base is main.
    • Read relevant issue details, code comments, and available conversation context to understand the problem and the reasons for the change.
    • Collect issue numbers from --fixes and explicit closing references in commit messages. Don't infer that a related issue should be closed.
  2. Check the existing description. If it's already accurate, understandable without outside context, and consistent with this format, leave it alone. Otherwise, rewrite it around the final implementation rather than appending updates.

  3. Establish the core explanation before choosing bullets:

    • What does the affected component do?
    • What limitation or need prompted this change?
    • What will it do differently? Use only the context needed to understand this PR. Don't invent a problem to justify a feature or refactor.
  4. Choose the distinct concerns a reviewer needs to assess. Usually these become 3 to 6 labeled bullets; use fewer for a small change. Group by behavior or system responsibility, not by file, helper function, or implementation step.

  5. Read the draft without consulting the diff. If the purpose or behavior is still unclear, supply the missing context before adding more implementation detail.

Format

An opening paragraph, then labeled bullets. No Summary, Context, or Testing heading. Include Breaking Changes and Fixes only when applicable.

Pipecat groups streamed LLM text into sentences before sending it to TTS. This
replaces NLTK with `sentencex`, which includes its language rules and requires no
data downloads or tokenizer warm-up.

- **Streaming text.** Sentencex sometimes needs the complete word after a period
  to distinguish an abbreviation from a sentence ending. Pipecat waits for that
  word when needed, while sending sentences sooner when the ending is already clear.
- **Quoted abbreviations.** Sentencex can split after `"Dr.` before the rest of the
  quotation arrives. Pipecat rechecks these cases so it doesn't send an incomplete
  fragment to TTS.
- **TTS language.** Sentence grouping follows `Settings.language`, defaulting to
  English when unspecified. Language updates take effect before subsequent text
  is processed.

## Breaking Changes

- Sentence grouping can differ from Punkt and now follows the configured TTS language.
- Pipeline workers no longer emit tokenizer warm-up events.

Opening paragraph

Explain what the component does, the relevant limitation or need, and what changes. The reader should understand the purpose of the PR from this paragraph alone. One sentence can be enough for a small change; use two or three when the reader needs context. Don't force all three ideas into one long sentence.

Keep background directly relevant to the change. A replacement may need a brief explanation of how the current and proposed implementations differ, especially when that difference explains additional handling in the PR. A link to an issue can support the explanation but must not substitute for it.

Labeled bullets

Each bullet opens with a bolded noun label naming a class, module, surface, or behavior. Never use essay labels such as Motivation, Rationale, Background, Context, or Tests.

Lead with the behavior or problem. Explain the mechanism only when it helps the reviewer assess the change. Usually one or two sentences suffice; a short third sentence is fine if it supplies necessary context or an example. Don't split one coherent concern into several bullets merely to meet a sentence limit.

When a reason is known from the issue, conversation, commit messages, or code, include it with the relevant change. State the constraint it satisfies rather than arguing that the decision is correct. A relevant before/after comparison is useful; a history of attempted or rejected approaches usually isn't.

Terminology and examples

Introduce a technical term before relying on it, or use ordinary words instead. A label such as "lookahead" doesn't explain what text is being examined, when it arrives, or why waiting matters. Describe those behaviors first.

For parsing, ordering, or streaming changes, prefer a short input/output example when it makes the problem clearer than an abstract description. Examples aren't limited to new APIs. Use inline text when sufficient; include at most one short fenced block in the PR description when a sequence or configuration needs it.

Breaking Changes

Include this section for changes to existing behavior, signatures, or defaults that users need to account for. Describe the concrete effect and any required migration. Don't omit it to meet the word target, and don't label additive features as breaking changes solely because they are new.

Fixes

Use Fixes #X, one issue per bullet, for issues this PR is intended to close. Related PRs or issues can be linked in the opening paragraph or the relevant bullet when the relationship helps explain scope; don't add a separate Context section.

Length and evidence

Aim for under 200 words, but don't omit essential context to meet that target. Cut repeated claims and secondary implementation details first. Length follows what the reviewer needs to understand, not the size of the diff.

Describe implementation and behavior accurately against the diff. Ground problem statements and reasons in the issue, code, or available discussion. Don't invent motivation, generalize a narrow observation, or turn a measured sample into a universal performance claim.

A second sentence may explain the first when that explanation adds understanding. Remove it only when it repeats the same information without helping the reader.

Do not include:

  • Claims that the change is correct or answers to objections nobody raised.
  • A chronological development narrative or a paragraph weighing alternatives.
  • Test counts, coverage numbers, "all tests pass", lists of tests changed, or test commands.
  • A walk through the files changed.
  • Aphorisms, promotional language, or a closing recap of the bullets.

Voice

Write as if explaining the change to a teammate unfamiliar with this work. Use plain words, contractions, and short connected sentences. Keep technical detail where it clarifies the problem or matters to review.

Avoid forced symmetry, matched triples, "not X, but Y" constructions, and em-dash asides where a comma or another sentence would work. Don't sacrifice a clear explanation to make every bullet the same shape or length.

Checklist

  • The opening establishes enough context to explain the purpose of the PR.
  • A reader can describe the relevant limitation and new behavior without opening the diff.
  • Bullets cover distinct review concerns and lead with behavior or problems.
  • Technical terms are introduced, and difficult edge cases have an example where useful.
  • Reasons and before/after comparisons are grounded in available evidence.
  • The description reflects the final implementation, not the development history.
  • Breaking changes and closing issue references are included when applicable.
  • No Testing section, test counts, coverage numbers, or redundant recap.
  • The description aims for under 200 words without withholding necessary context.

When not to use it

  • →When the PR description already contains a manual detailed review
  • →When the commit history is too messy to provide a coherent summary

Prerequisites

GitHub CLILocal git repository access

Limitations

  • →Limited by the clarity of original commit messages
  • →Requires access to the local git working directory

How it compares

It programmatically correlates git diff content with specific issue identifiers rather than relying on generic LLM summarization.

Compared to similar skills

pr-description side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
pr-description (this skill)17moNo flagsBeginner
prepare-changelog69moReviewBeginner
workthrough1010moReviewBeginner
generate-release-notes79moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

prepare-changelog

nextest-rs

Guidelines for preparing changelog entries for nextest releases following Keep a Changelog format

689

workthrough

bear2u

Automatically document all development work and code modifications in a structured workthrough format. Use this skill after completing any development task, bug fix, feature implementation, or code refactoring to create comprehensive documentation.

1085

generate-release-notes

teambit

Generate comprehensive release notes for Bit from git commits and pull requests. Use when creating release notes, building changelogs, documenting version releases, or preparing a new Bit release.

752

changelog-generator

ComposioHQ

Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.

346

release-note-generation

microsoft

Toolkit for generating PowerToys release notes from GitHub milestone PRs or commit ranges. Use when asked to create release notes, summarize milestone PRs, generate changelog, prepare release documentation, request Copilot reviews for PRs, update README for a new release, manage PR milestones, or collect PRs between commits/tags. Supports PR collection by milestone or commit range, milestone assignment, grouping by label, summarization with external contributor attribution, and README version bumping.

537

doc-check

coder

Checks if code changes require documentation updates

427

Search skills

Search the agent skills registry