Drafts standardized PR titles and descriptions after code changes.
Install
mkdir -p .claude/skills/pr-draft-summary && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/931" && unzip -o skill.zip -d .claude/skills/pr-draft-summary && rm skill.zipInstalls to .claude/skills/pr-draft-summary
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.
Create the required PR-ready summary block, branch suggestion, title, and draft description for openai-agents-python. Use in the final handoff after moderate-or-larger changes to runtime code, tests, examples, build/test configuration, or docs with behavior impact; skip only for trivial or conversation-only tasks, repo-meta/doc-only tasks without behavior impact, or when the user explicitly says not to include the PR draft block.Key capabilities
- →Generate PR title and description
- →Analyze changed files and git status
- →Suggest branch names based on change type
- →Identify backward-compatibility risks
How it works
It collects git metadata and diff statistics to classify the change type and generate a structured pull request summary template.
Inputs & outputs
When to use pr-draft-summary
- →Drafting pull request descriptions
- →Summarizing code changes for review
- →Generating PR titles
About this skill
PR Draft Summary
Purpose
Produce the PR-ready summary required in this repository after eligible code work is complete: a concise summary plus a PR-ready title and draft description that begins with "This pull request <verb> ...". The block should be ready to paste into a PR for openai-agents-python.
When to Trigger
- Before every final response, check whether the current task changed runtime code (
src/agents/), tests (tests/), examples (examples/), build/test configuration, or docs with behavior impact. - If it did, run this skill after required verification and before sending the final response. Do not use perceived change size to decide whether to run it.
- Run it for eligible local-only and uncommitted work even when the user did not ask to create a pull request. Producing this text does not authorize creating a branch, committing, pushing, or opening a pull request.
- Skip only for trivial or conversation-only tasks, repo-meta/doc-only tasks without behavior impact, an explicitly invoked
$release-candidate-prephandoff that uses the complete$final-release-reviewreport as its release-specific PR description, or when the user explicitly says not to include the PR draft block. This exception applies to preparing the release candidate itself, not to implementing or changing the release-preparation skill.
Inputs to Collect Automatically (do not ask the user)
- Current branch:
git rev-parse --abbrev-ref HEAD. - Working tree:
git status -sb. - Untracked files:
git ls-files --others --exclude-standard(use withgit status -sbto ensure they are surfaced;--statdoes not include them). - Changed files:
git diff --name-only(unstaged) andgit diff --name-only --cached(staged); sizes viagit diff --statandgit diff --stat --cached. - Latest release tag (prefer remote-aware lookup):
LATEST_RELEASE_TAG=$(.agents/skills/final-release-review/scripts/find_latest_release_tag.sh origin 'v*' 2>/dev/null || git tag -l 'v*' --sort=-v:refname | head -n1). - Base reference (use the branch's upstream, fallback to
origin/main):BASE_REF=$(git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null || echo origin/main).BASE_COMMIT=$(git merge-base --fork-point "$BASE_REF" HEAD || git merge-base "$BASE_REF" HEAD || echo "$BASE_REF").
- Commits ahead of the base fork point:
git log --oneline --no-merges ${BASE_COMMIT}..HEAD. - Category signals for this repo: runtime (
src/agents/), tests (tests/), examples (examples/), docs (docs/,mkdocs.yml), build/test config (pyproject.toml,uv.lock,Makefile,.github/).
Workflow
- Run the commands above without asking the user; compute
BASE_REF/BASE_COMMITfirst so later commands reuse them. - If there are no staged/unstaged/untracked changes and no commits ahead of
${BASE_COMMIT}, reply briefly that no code changes were detected and skip emitting the PR block. - Infer change type from the touched paths listed under "Category signals"; classify as feature, fix, refactor, or docs-with-impact, and flag backward-compatibility risk only when the diff changes released public APIs, external config, persisted data, serialized state, or wire protocols. Judge that risk against
LATEST_RELEASE_TAG, not unreleased branch-only churn. - Summarize changes in 1–3 short sentences using the key paths (top 5) and
git diff --statoutput; explicitly call out untracked files fromgit status -sb/git ls-files --others --exclude-standardbecause--statdoes not include them. If the working tree is clean but there are commits ahead of${BASE_COMMIT}, summarize using those commit messages. - Choose the lead verb for the description: feature →
adds, bug fix →fixes, refactor/perf →improvesorupdates, docs-only →updates. - Suggest a branch name. If already off main, keep it; otherwise propose
feat/<slug>,fix/<slug>, ordocs/<slug>based on the primary area (e.g.,docs/pr-draft-summary-guidance). - If the current branch matches
issue-<number>(digits only), keep that branch suggestion. Optionally pull light issue context (for example via the GitHub API) when available, but do not block or retry if it is not. When an issue number is present, use the native same-repository reference#<number>and include an auto-closing line such asThis pull request resolves #<number>.. Do not add the explicit issue URL or wrap the reference in a Markdown link. - Draft the PR title and description using the template below. Apply the repository-wide GitHub paste-readiness rule: use exactly
#123for same-repository issues or PRs andowner/repo#123for cross-repository references; never emit[PR #123](https://github.com/owner/repo/pull/123),[#123](...), Codex navigation links, local file links, Codex-only citation markers or footnotes, or app directives in the copy-ready block. Preserve ordinary descriptive links to API docs, design notes, and other targets without native GitHub issue or pull-request syntax. - Normalize references before returning the block: replace every same-repository URL or
openai/openai-agents-python#<number>reference with#<number>, replace every cross-repository issue or pull-request URL withowner/repo#<number>, then rescan the full block. Do not return it while a Markdown-linked issue or pull-request label, a same-repository qualified reference, or a bare GitHub issue or pull-request URL remains. - Output only the block in "Output Format". Keep any surrounding status note minimal and in English.
Output Format
When closing out a task, add this concise Markdown block (English only) after any brief status note unless the task falls under the documented skip cases or the user says they do not want it.
# Pull Request Draft
## Branch name suggestion
git checkout -b <kebab-case suggestion, e.g., feat/pr-draft-summary-skill>
## Title
<single-line imperative title, which can be a commit message; if a common prefix like chore: and feat: etc., having them is preferred>
## Description
<include what you changed plus a draft pull request title and description for your local changes; start the description with prose such as "This pull request resolves/updates/adds ..." using a verb that matches the change (you can use bullets later), explain the change background (for bugs, clearly describe the bug, symptoms, or repro; for features, what is needed and why), any behavior changes or considerations to be aware of, and you do not need to mention tests you ran.>
Keep it tight—no redundant prose around the block, and avoid repeating details between Changes and the description. Tests do not need to be listed unless specifically requested.
When not to use it
- →Trivial or conversation-only tasks
- →Repo-meta or doc-only tasks without behavior impact
Prerequisites
Limitations
- →Requires git environment
- →Limited to predefined repository paths
How it compares
It automates the creation of a standardized PR summary based on actual code diffs, rather than manually drafting descriptions that may miss technical context.
Compared to similar skills
pr-draft-summary side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| pr-draft-summary (this skill) | 3 | 4mo | No flags | Beginner |
| code-changelog | 0 | 9mo | Review | Beginner |
| releasenote | 1 | 27d | No flags | Beginner |
| deepwiki-rs | 25 | 9mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by openai
View all by openai →You might also like
code-changelog
bear2u
AI가 만든 모든 코드 변경사항을 reviews 폴더에 기록하고 간단한 HTML 뷰어로 웹 브라우저에서 실시간 확인할 수 있습니다. 매 수정마다 문서가 생성되고 Python 서버로 즉시 확인 가능합니다.
releasenote
DataDog
Create or update release notes for changes in the current branch using Reno, following dd-trace-py's conventions and the guidelines in docs/releasenotes.rst.
deepwiki-rs
sopaco
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.
codex-cli-bridge
alirezarezvani
Bridge between Claude Code and OpenAI Codex CLI - generates AGENTS.md from CLAUDE.md, provides Codex CLI execution helpers, and enables seamless interoperability between both tools
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.
python-code-style
wshobson
Python code style, linting, formatting, naming conventions, and documentation standards. Use when writing new code, reviewing style, configuring linters, writing docstrings, or establishing project standards.