From 7e6e3031e721f04dedb2700aed4cf7b29d88e8ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Thu, 22 Jan 2026 13:29:12 -0800 Subject: [PATCH] claude: add pr-description skill --- .claude/skills/pr-description/SKILL.md | 128 +++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 .claude/skills/pr-description/SKILL.md diff --git a/.claude/skills/pr-description/SKILL.md b/.claude/skills/pr-description/SKILL.md new file mode 100644 index 000000000..666cf2bd1 --- /dev/null +++ b/.claude/skills/pr-description/SKILL.md @@ -0,0 +1,128 @@ +--- +name: pr-description +description: Update a GitHub PR description with a summary of changes +--- + +Update a GitHub pull request description based on the changes in the PR. + +## Arguments + +``` +/pr-description [--fixes ] +``` + +- `PR_NUMBER` (required): The pull request number to update +- `--fixes` (optional): Comma-separated issue numbers that this PR fixes (e.g., `--fixes 123,456`) + +Examples: +- `/pr-description 3534` +- `/pr-description 3534 --fixes 123` +- `/pr-description 3534 --fixes 123,456,789` + +## Instructions + +1. First, gather information about the PR: + - Use GitHub plugin to get PR details (title, current description, base branch) + - Use local git to get commits: `git log main..HEAD --oneline` + - Use local git to get the diff: `git diff main..HEAD` + - Parse any `--fixes` argument for issue numbers + +2. Check the existing PR description: + - If it already has a complete, accurate description that reflects the changes, do nothing + - If it's missing sections, incomplete, or outdated compared to the actual changes, proceed to update + - If it only has the template placeholder text, generate a full description + +3. Analyze the changes: + - Understand the purpose of each commit + - Identify any breaking changes (API changes, removed features, behavior changes) + - Look for new features, bug fixes, refactoring, or documentation changes + - Collect issue numbers from: + - The `--fixes` argument (if provided) + - Commit messages (patterns like "Fixes #123", "Closes #456", "Resolves #789") + +4. Generate or update the PR description with these sections: + +## PR Description Format + +### Summary (always include) + +Brief bullet points describing what changed and why. Focus on the *purpose* and *impact*, not implementation details. + +```markdown +## Summary + +- Added X to enable Y +- Fixed bug where Z would happen +- Refactored W for better maintainability +``` + +### Breaking Changes (include only if applicable) + +Document any changes that affect existing users or APIs. + +```markdown +## Breaking Changes + +- `ClassName.method()` now requires a `param` argument +- Removed deprecated `old_function()` - use `new_function()` instead +``` + +### Testing (include when non-obvious) + +How to verify the changes work. Skip for trivial changes. + +```markdown +## Testing + +- Run `uv run pytest tests/test_feature.py` to verify the fix +- Example usage: `uv run examples/new_feature.py` +``` + +### Fixes (include if issues are provided or found in commits) + +List issues this PR fixes. GitHub will automatically close these issues when the PR is merged. + +```markdown +## Fixes + +- Fixes #123 +- Fixes #456 +``` + +Note: Use "Fixes #X" format (not "Closes" or "Resolves") for consistency. Each issue should be on its own line with "Fixes" to ensure GitHub auto-closes them. + +## Guidelines + +- **Be concise** - Reviewers should understand the PR in 30 seconds +- **Focus on why** - The diff shows *what* changed, explain *why* +- **Skip empty sections** - Only include sections that have content +- **Use bullet points** - Easier to scan than paragraphs +- **Don't duplicate the diff** - Avoid listing every file or line changed + +## Example Output + +```markdown +## Summary + +- Added `/docstring` skill for documenting Python modules with Google-style docstrings +- Skill finds classes by name and handles conflicts when multiple matches exist +- Skips already-documented code to avoid unnecessary changes + +## Testing + +/docstring ClassName + +## Fixes + +- Fixes #123 +``` + +## Checklist + +Before updating the PR: + +- [ ] Verified existing description needs updating (not already complete) +- [ ] Summary accurately reflects the changes +- [ ] Breaking changes are clearly documented (if any) +- [ ] No unnecessary sections included +- [ ] Description is concise and scannable