بنقرة واحدة
pr
Prepare outstanding commits on a feature branch for a pull request to upstream
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Prepare outstanding commits on a feature branch for a pull request to upstream
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | pr |
| description | Prepare outstanding commits on a feature branch for a pull request to upstream |
Prepare a pull request from the current feature branch. This skill collects all commits on the current branch that are ahead of upstream/main, generates a PR title and description summarizing the changes, and creates the PR against upstream.
The skill accepts optional arguments:
/pr Add support for TLS client certs)Example: /pr or /pr Fix saturation search convergence
Verify prerequisites:
main branch (should be on a feature branch)upstream remote must existorigin remote must existBRANCH=$(git branch --show-current)
if [ "$BRANCH" = "main" ]; then
echo "Error: Must be on a feature branch, not main"
exit 1
fi
git remote get-url upstream >/dev/null 2>&1 || { echo "Error: 'upstream' remote not found"; exit 1; }
git remote get-url origin >/dev/null 2>&1 || { echo "Error: 'origin' remote not found"; exit 1; }
Run cargo fmt and amend the last commit if formatting changes are needed:
cargo fmt
if [ -n "$(git status --porcelain)" ]; then
git add -u
git commit --amend --no-edit
fi
After this step, the working directory must be clean. If there are still uncommitted changes (non-formatting), stop and tell the user to commit or stash them first.
Sync with upstream:
git fetch upstream
git fetch origin
Identify commits for the PR:
upstream/mainupstream/mainMERGE_BASE=$(git merge-base upstream/main HEAD)
git log --oneline ${MERGE_BASE}..HEAD
git diff ${MERGE_BASE}..HEAD --stat
If there are no commits ahead of upstream/main, stop and tell the user there is nothing to submit.
Generate PR title and description:
## Summary section with 1-3 bullet points describing the changes## Changes section listing the commits## Test plan section with a checklist of testing suggestionsPresent the title and body to the user for review before creating the PR.
Push the feature branch to origin:
BRANCH=$(git branch --show-current)
git push -u origin ${BRANCH}
Create the PR against upstream:
BRANCH=$(git branch --show-current)
gh pr create \
--repo "$(git remote get-url upstream | sed 's/.*github.com[:/]\(.*\)\.git/\1/' | sed 's/.*github.com[:/]\(.*\)/\1/')" \
--head "$(git remote get-url origin | sed 's/.*github.com[:/]\(.*\)\.git/\1/' | sed 's/.*github.com[:/]\(.*\)/\1/' | cut -d/ -f1):${BRANCH}" \
--base main \
--title "${PR_TITLE}" \
--body "${PR_BODY}"
Report the PR URL to the user.
upstream remote: Add it with git remote add upstream <repo-url>origin remote: This is your fork. Add with git remote add origin <fork-url>brew install gh or see https://cli.github.com/gh auth login