name: pr description: Create a pull request following WooCommerce iOS conventions user-invocable: true allowed-tools: "Bash, Read, Grep, Glob"
Create a pull request following WooCommerce iOS conventions.
Steps:
- Verify the current branch is not
trunk:
git branch --show-current
- Check the diff against trunk:
git log trunk..HEAD --oneline
git diff trunk...HEAD --stat
- Check non-test diff size (should be under 300 lines):
git diff trunk...HEAD --stat -- . ':!*Tests*' ':!*Test*' ':!*.generated.*'
-
Review the changes to write an accurate description. Read modified files if needed.
- Never include actual Linear issue links (e.g.,
https://linear.app/...) in PR descriptions — Linear is an internal resource. Only reference the issue ID (e.g.,WOOMOB-2485).
- Never include actual Linear issue links (e.g.,
-
Determine if RELEASE-NOTES.txt needs updating. If the change is user-facing, remind about adding a release note entry.
-
Push the branch:
git push -u origin HEAD
- Create the PR. The description must follow the template in
.github/PULL_REQUEST_TEMPLATE.md:
gh pr create --base trunk --title "<concise title>" --body "$(cat <<'EOF'
## Description
<description of changes — why and what>
## Test Steps
<how to test>
## Screenshots
N/A
---
- [ ] I have considered if this change warrants user-facing release notes and have added them to `RELEASE-NOTES.txt` if necessary.
EOF
)"
-
Add labels. After creating the PR, add all labels in a single call using multiple
--add-labelflags:gh pr edit <number> --add-label "<label1>" --add-label "<label2>". Pick labels from these categories:- Type (pick one):
type: bug,type: crash,type: enhancement,type: task,type: technical debt,type: documentation,type: question - Feature (pick one if applicable): match the changed area to a
feature: *label (e.g.,feature: POS,feature: order list,feature: order details,feature: product details,feature: login,feature: dashboard,feature: analytics hub,feature: coupons,feature: shipping labels,feature: order creation,feature: notifications,feature: Blaze,feature: CIAB Mobile Experience,feature: subscriptions,feature: app settings, etc.) - Priority (pick one if known):
priority: low,priority: medium,priority: high,priority: critical - Category (pick any that apply):
category: accessibility,category: design,category: performance,category: tracks,category: unit tests,category: ui tests,category: tooling,category: parity,category: i18n,category: dark mode,category: tablet, etc. - If the feature is behind a flag, also add
status: feature-flagged - Infer labels from the diff and branch name. If unsure about the feature label, ask the user.
- Type (pick one):
-
Set milestone. After creating the PR, assign the correct milestone:
- List open milestones:
gh api repos/woocommerce/woocommerce-ios/milestones --jq '.[] | "\(.title)\t\(.description)"' - Each milestone description contains a
Code Freeze:date. - If the PR targets
trunk: pick the earliest milestone whose code freeze date has not yet passed (i.e., the next unfrozen milestone). - If the PR targets a
release/X.Ybranch: use milestoneX.Y(the frozen release milestone). - Apply with:
gh pr edit <number> --milestone "<milestone title>"
- List open milestones:
-
Report the PR URL.
If non-test diff exceeds 300 lines, warn that Danger will flag it and suggest splitting.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.