Pr
Claude Code Plugins, Commands, and Skills
npx -y skills add tony/ai-workflow-plugins --skill prAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate a gold-standard pull request description from branch diff
SKILL.md
8.1 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Generate PR Description
Create a gold-standard pull request description from the current branch's diff.
User hint: $ARGUMENTS
Context
Current branch — run this command and read the output:
git branch --show-current
Base branch detection — run this command and read the output:
git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master
Commits on this branch — run this command and read the output:
BASE=$(git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master); git log "origin/$BASE..HEAD" --oneline 2>/dev/null || echo "(no commits ahead of base)"
Files changed (stat) — run this command and read the output:
BASE=$(git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master); git diff "origin/$BASE...HEAD" --stat 2>/dev/null || echo "(no diff)"
Full diff — run this command and read the output:
BASE=$(git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master); git diff "origin/$BASE...HEAD" 2>/dev/null || echo "(no diff)"
Procedure
1. Analyze Changes
- Review the full diff and all commits on the branch — not just the latest
- Determine the nature of the change: new feature, bug fix, refactor, CI/infra, docs, etc.
- Identify which modules, files, and areas are affected
- Note the scope: is this a small targeted fix or a large multi-module change?
2. Read Project Conventions
- Read AGENTS.md and/or CLAUDE.md for any PR description conventions
- Resolve the PR template per
references/template-resolution.md: a template mentioned in the user's message wins; otherwise the repository's PR template; otherwise the gold-standard patterns below. When multiple candidate templates are in play, ask — never guess between them - If a template applies, its structure is the starting point; fill it in with the gold-standard patterns below
3. Draft PR Description
Title
- Short — under 70 characters
- Descriptive of the impact, not the implementation
- Details belong in the body, not the title
- Match the project's commit/PR title style if one exists
Body
Use the sections that are relevant to the change — not every PR needs every section. A small bug fix needs fewer sections than a large feature.
## Summary — 3-7 bullet points:
- Each bullet opens with a bold impact label (e.g., Fix, Add, Remove, Replace, Migrate)
- Concise but complete — a reviewer should understand the full scope from just the summary
- For non-trivial changes, include the motivation (why this change is needed)
## Changes or ## Changes by area — for multi-module changes:
- Group by area with
###sub-headings - Use bold file/module names with inline descriptions
- Example:
src/server.py: Wrap post-deletion code intry/finallyfor safe env restoration
## Design decisions — when trade-offs were made:
- Explain rationale with bold-label entries
- Include "why not" for alternatives considered
- Example: Errors as values, not exceptions:
SyncResultfollows the structured result pattern because...
## Verification — copyable commands proving completeness:
- Each
rgorgrepcommand on its own line in its own code block - Commands should return zero matches for removed patterns or expected matches for added patterns
- Example: verify no f-strings remain in log calls
## Test plan — a - [x] checklist:
- Each item describes what is validated, not just the command
- Include project test/lint/typecheck commands as discovered from AGENTS.md
- Include specific test names when they exist
- Example:
- [x] test_new_session_empty_stdout — verifies error on empty stdout
## Setup Required — pre-merge steps (only when applicable):
- Numbered external URLs
- Specific configuration steps
## Companion PR — cross-repo links (only when applicable):
- Link to related PRs in other repositories
Tables
Use tables when they improve scannability:
| Use case | Format |
|---|---|
| Parameter/flag mappings | Parameter | Flag | Description |
| Old-to-new renames | Method | Old | New |
| File inventories | Path | Description |
| Environment matrices | Environment | Result |
| Sync/async API pairs | Sync | Async |
| Before/after comparisons | Before | After |
Line wrapping
Do NOT hard-wrap PR body text. Unlike commit messages, PR descriptions are rendered as Markdown on GitHub — long lines reflow into paragraphs. Hard-wrapping at 72 characters creates jarring mid-sentence line breaks in the rendered view. Write prose and bullet text as single long lines; let the editor/renderer handle display wrapping.
Code blocks
- One command per code block
- Explanatory text goes outside the block as regular markdown
- Never put
#comments inside code blocks
Before/After
For behavioral or UX changes, show both states in separate labeled code blocks.
Negative assertions in test plan
For removal or migration PRs, include "verify zero matches for X" items proving unwanted patterns are fully removed.
What NOT to include
- Test counts or passing numbers ("875 tests pass", "42 tests added")
- Git SHAs or commit hashes
- File-level line numbers
- Number of files or lines changed ("updated 12 files", "adds 340 lines")
- Details the reviewer can see in the diff
- Redundant context already visible in
git log Fixes #Nhardcoded in the body — usegh pr createflags or let GitHub auto-link- Within-branch tactical narrative — renames of unshipped symbols, "no longer X" / "previously Y" phrasing, diff paraphrases, or
### Fixesframing for behavior that never shipped. Belongs in the commit messages of the commits that did the work. SeeAGENTS.md§ AI Slop Prevention; apply the Published-Release Test before including.
Whole-branch perspective
Describe the branch's net shipped result, not its internal evolution. Ignore fixup commits, reverts-then-re-adds, and intermediate WIP states — the PR description is a product changelog for reviewers, not a commit-by-commit diary.
4. Present and Create
- Show the proposed title and body to the user in full
- Ask whether to:
- Create the PR via
gh pr create - Just output the description (user will create manually)
- Create the PR via
- If creating the PR:
- Check if the branch has been pushed; if not, push it with
git push -u origin <branch> - Never push to
mainormaster - Use heredoc for the body to preserve formatting:
gh pr create --title "the title" --body "$(cat <<'EOF' ## Summary ... EOF )" - If the user provided
$ARGUMENTScontaining a hint about a linked issue, add--bodycontent accordingly
- Check if the branch has been pushed; if not, push it with
- Return the PR URL when done
Rules
- Never force-push or run destructive git commands
- Never push to
mainormaster - Always present the full description before creating the PR
- Always use heredoc for
gh pr create --bodyto preserve formatting - Language-agnostic: discover test/lint commands from AGENTS.md/CLAUDE.md — never hardcode specific tool commands
- Proportional: match the description's detail level to the diff size — a one-file fix doesn't need 20 bullets; a 30-file feature shouldn't be one sentence
- No brittle details: no test counts, no SHAs, no line numbers, no file/line-changed counts
- Whole-branch perspective: describe the net shipped result, not the branch's internal commit history
Portability notes
$ARGUMENTS— the text the user passed when invoking this skill. If your host does not substitute it, read it as the user's request in the current turn, and ask when there is none.- Bundled files — every relative path in this skill points at a file shipped inside this skill directory. Read them from here, not from the host's plugin tree.
Gives 0 of the 12 instructions most pr commit review skills give in ~1.9k tokens
Counted across 888 of the 1,342 authors here whose files we hold, read 2026-08-06
- use conventional commits formatin 123 of 888, across 110 files
- keep subject line under 72 charactersin 60 of 888, across 46 files
- delete branches after mergein 50 of 888, across 37 files
- use imperative mood in subject linein 50 of 888, across 41 files
- use imperative mood in commit messagesin 45 of 888
- generate a conventional commit messagein 42 of 888
- make atomic commitsin 37 of 888, across 25 files
- run tests before committingin 36 of 888, across 24 files
- run project test suite to verify clean baselinein 35 of 888, across 7 files
- run detected project setup commandsin 34 of 888, across 6 files
- wrap commit body at 72 charactersin 32 of 888, across 25 files
- split unrelated changes into separate commitsin 32 of 888, across 27 files
Said here and by no other author read
- read project conventions and resolve the pr template
- use relevant body sections for the description
- start summary bullets with bold impact labels
- show the full description to the user before creating
- describe the net shipped result
- match detail level to the diff size
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.