Update GitHub Pull Request

VerifiedSafe

Updates an existing pull request after adding commits by revising title/body, preserving template format, and pushing pending branch changes.

Sby Skills Guide Bot
DevelopmentIntermediate
406/2/2026
Claude Code
#pull-request#github#git#template#update

Recommended for

Our review

Automatically updates an existing GitHub pull request after adding commits by revising title and body while preserving the template format.

Strengths

  • Automatically detects and applies PR templates
  • Infers changes from commit logs and diffs
  • Handles language detection for title and body
  • Checks for unpushed commits before pushing

Limitations

  • Requires `gh` CLI to be installed and authenticated
  • Only works if there is already an open PR for the branch
  • Language detection may be ambiguous without user input
When to use it

When you have added commits to a branch with an existing PR and want to keep its description up to date.

When not to use it

If there is no open PR for the branch yet (use `/create-pr` instead).

Security analysis

Safe
Quality score95/100

The skill uses only safe git and gh commands (status, diff, log, push, pr edit, etc.) and explicitly requires user confirmation before pushing changes or editing PRs. No destructive operations, no external data exfiltration, no execution of arbitrary code.

No concerns found

Examples

Update PR with latest commits
Update the pull request on this branch with the latest changes.
Revise PR title and body after adding commits
I've just pushed a new commit to fix a bug. Please update the PR description accordingly.
Apply PR template and push
Please update the PR using the project template and push any pending commits.

name: update-pr description: Update an existing GitHub pull request after adding commits by revising title/body, preserving template format, and pushing pending branch changes. allowed-tools: Bash(git status *), Bash(git diff *), Bash(git log *), Bash(git rev-parse *), Bash(git push *), Bash(git ls-files *), Bash(gh repo view *), Bash(gh pr view *), Bash(gh pr edit *), Read, Glob, Grep, AskUserQuestion

Pre-fetched context

!git rev-parse --abbrev-ref HEAD !git status --short !git ls-files ':(top,icase).github/pull_request_template.md' ':(top,icase).github/pull_request_template/*.md' ':(top,icase)pull_request_template.md'

Instructions

Update the existing pull request for the current branch. Follow this flow:

  1. Gather context: Get default branch via gh repo view --json defaultBranchRef -q .defaultBranchRef.name, then run git log --oneline, git diff --stat, and git diff against it.

  2. Missing PR check: Run gh pr view --json number,url,title,body,baseRefName,headRefName,isDraft. If it fails, tell the user there is no open PR for this branch. Ask whether to switch to /create-pr or abort.

  3. Uncommitted changes: If git status above shows output, ask whether to commit them, ignore them, or abort. Do not proceed until answered.

  4. PR template:

    • If a template path is listed, Read it before writing title/body.
    • Detect template_language from headings/instructions/checklists (ignore code, URLs, HTML comments).
    • Keep template headings/order and keep HTML comments (<!-- -->).
    • If no template exists, skip.
  5. Compose updated PR content:

    • Infer what changed since the previous PR revision from the commit log and diff.
    • Title: Conventional Commits, under 72 chars.
    • Decide title language before drafting and keep it fixed unless the user requests a change.
    • Title language policy: use template_language first whenever it can be detected.
    • If the user explicitly asks to override language for the current PR, follow that override.
    • If no template_language is detected, use: explicit user request > latest substantive user message > English.
    • Ignore slash commands (for example /update-pr), code blocks, file paths, and URLs when inferring language.
    • If language signals conflict or are ambiguous, ask the user which language to use before drafting.
    • Keep type(scope) tokens standard (feat, fix, etc.); localize only the description text.
    • Body: if template exists, fill its sections. If not, use Summary / Changes / Concerns / References.
    • Proactively include any reference links (issues, docs, related PRs) found in conversation history.
  6. Confirm: Show the full updated PR title/body. Ask if the user wants to change the title, add links, or make any edits — apply and re-confirm. Do not push or edit until approved.

  7. Push and update:

    • Push (git push -u origin HEAD) only if there are unpushed commits (git log @{upstream}..HEAD).
    • Update with gh pr edit --title "<title>" --body-file <file>.
    • Return the PR URL.
Related skills