Skip to main content

pr

Create a pull request following project conventions. Triggers on any request to create, open, make, submit, file, send, push, spin up, put up, draft, raise, or prepare a PR/pull request.

Ir a la instalación

Datos de origen

Repositorio
woocommerce/woocommerce-android
Última actividad en el origen
3 de agosto de 2026 a las 06:38
Idioma detectado de SKILL.md
inglés
Estrellas
318
Forks
147

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
pr
description
Create a pull request following project conventions. Triggers on any request to create, open, make, submit, file, send, push, spin up, put up, draft, raise, or prepare a PR/pull request.
allowed-tools
Bash, Read, Grep, Glob
user-invocable
true
# Create Pull Request Create a pull request following the project's PR conventions. @docs/pull-request-guidelines.md ## Steps **IMPORTANT: Follow ALL steps in order. Do not skip any step, even if the PR seems simple.** 1. **Verify branch.** Confirm you are NOT on `trunk`. If on trunk, stop and ask the user to create a feature branch first. 2. **Check for uncommitted changes.** Run `git status`. If there are uncommitted changes, stop and ask the user whether to commit them first. 3. **Analyze the diff.** Run `git diff trunk...HEAD` to understand ALL changes that will be in the PR. Also run `git log --oneline trunk..HEAD` to see all commits. 4. **Check diff size.** Count non-test lines changed. If the diff is very large, mention it to the user. 5. **Review changes.** Scan for: - Architecture compliance (MVVM layers, Hilt DI, Compose patterns) - Missing tests for new logic - Any `FIXME`, `!!`, wildcard imports, or other violations - Whether `RELEASE-NOTES.txt` needs updating (user-facing changes) 6. **Check RELEASE-NOTES.txt.** If changes are user-facing, remind the user to update `RELEASE-NOTES.txt`. Use `[Internal]` for non-user-facing changes. 7. **Push the branch.** Run `git push -u origin <branch-name>`. 8. **Create the PR.** Read `.github/PULL_REQUEST_TEMPLATE.md` and use it as the body. Strip the HTML comments and fill in each section, following the conventions from the guidelines doc above: - **Description**: start with `Fixes WOOMOB-XYZ` on its own line, then a short summary of what changed and why. - Keep it to what a reviewer needs: what was wrong, what this changes, and anything they can't see in the diff. A couple of sentences of plain prose is usually right — no section headers beyond the template's. If the PR fixes several distinct things, one line each is fine. - The conversation that produced the PR is not the PR. Don't retell the investigation — no debugging path, no narrative of how you got there, no measurements unless the measurement is the reason for the change. - Do pre-empt what a reviewer would actually raise: a decision they'd disagree with, or an obvious alternative they'd ask "why not X?" about. A sentence or a clause each, in prose. The bar is "they'd bring this up in review", not "this was interesting to figure out". Most PRs have nothing that clears it; if you end up with a list, you're padding. - Write so a reviewer who never saw this branch can follow it — carry the context, not the derivation. - References the reviewer can follow (a Linear issue, a linked Slack thread, a prior PR) are fine. What's not fine is referencing things the reviewer has no access to: the Claude session, findings-by-number from a private review ("HIGH-#2"), or severity labels from a one-off discussion. If you write "as discussed," make sure "discussed" is a link the reviewer can open. - **Test Steps**: numbered manual verification steps — a reviewer tapping through the app or reproducing a scenario. Do NOT include "run the unit tests" (or any `./gradlew test*` invocation) as a step — CI already runs them, so they add noise without helping the reviewer. - **Images/gif**: include if applicable, otherwise `N/A`. - Keep the release-notes checkbox line as-is. Pass the filled template via a HEREDOC: ```bash gh pr create --draft --title "[WOOMOB-XYZ] <concise title>" --body "$(cat <<'EOF' <filled template content here> EOF )" ``` 9. **Add labels.** Add labels using `gh pr edit <number> --add-label "<label>"`. Infer labels from the diff and branch name using the categories in the guidelines. If unsure about feature label, ask the user. 10. **Set milestone.** Find the closest open milestone and assign it: - List open milestones (single-quote the URL to prevent shell `&` interpretation): ``` gh api 'repos/{owner}/{repo}/milestones?state=open&sort=due_on&direction=asc' ``` - Pick the one with the earliest `due_on` date that is still in the future - Assign it: `gh api repos/{owner}/{repo}/issues/{number} -X PATCH -F milestone={milestone_number}` - **If the milestone due date is less than 1 day away**, warn the user (e.g., "Heads up: milestone X closes in <N hours> — let me know if you'd prefer a different one.") 11. **Report the PR URL** to the user. ## Image Formatting in PR Body - **Before/after pair**: Use a comparison table with `| Before | After |` headers - **Multiple images**: Use a table with appropriate column headers - **Single image or video**: Embed directly (e.g., `![Screenshot](url-or-path)`) - Constrain image width to 400px using HTML: `<img src="url" width="400" />` - If no images provided, use "N/A" ## Troubleshooting If `gh pr edit` fails with a GraphQL `Projects (classic)` error, fall back to the REST API: ```bash gh api repos/{owner}/{repo}/pulls/{number} -X PATCH -f body='...' gh api repos/{owner}/{repo}/pulls/{number} -X PATCH -f title='...' gh api repos/{owner}/{repo}/issues/{number}/labels -X POST --input - <<< '{"labels":["label1","label2"]}' ```
Ver en GitHub