| name | pr |
| description | Create a pull request with conventional commit title and description |
| argument-hint | [optional: target branch or description] |
| allowed-tools | Bash, Read, Glob, Grep |
PX4 Pull Request
The user is the author: no Co-Authored-By, no "Generated with Claude"
footers. AI disclosure lives in the commit trailers (Assisted-by:), not in
the PR body.
Steps
-
Check branch. If on main, create a feature branch <username>/<description>
where <username> comes from gh api user --jq .login.
-
Gather context: git status, git log --oneline main..HEAD,
git diff main...HEAD --stat, check for remote tracking branch.
-
Sanity-build the targets we care about. Fix any build errors before opening
the PR:
make px4_fmu-v6x — hardware target
make px4_sitl — simulation
-
PR title: type(scope): description — under 72 chars, covers the
overall change across all commits. This becomes the squash-merge commit
message.
-
PR body: concise and terse — do not restate what the diff already shows (no file-changed lists, no code snippets that reproduce the diff). Use exactly three sections, in order: ## Summary, ## Problem, ## Solution. If the PR closes a GitHub issue, the first line of ## Summary must be fixes #<N>, then a blank line, then the summary text. No ## Test plan section, no boilerplate, no Claude attribution. Use markdown (links, code blocks, lists) only when warranted. Never state testing that did not happen: ask the user what they actually ran beyond the builds in step 3, report exactly that, and say so plainly when something is untested.
-
Push with -u if needed, then gh pr create. Default base is main
unless user says otherwise.
-
Return the PR URL.
If the user provided arguments, use them as context: $ARGUMENTS