gh-create-prClaude Skill

Create or update GitHub pull requests using the repository-required workflow and template compliance.

40.9k Stars
3.8k Forks
2024/05/24

Install & Download

Linux / macOS:

请登录后查看安装命令

Windows (PowerShell):

请登录后查看安装命令

Download and extract to ~/.claude/skills/

namegh-create-pr
descriptionCreate or update GitHub pull requests using the repository-required workflow and template compliance. Use when asked to create/open/update a PR so the assistant reads `.github/pull_request_template.md`, fills every template section, preserves markdown structure exactly, and marks missing data as N/A or None instead of skipping sections.

GitHub PR Creation

Workflow

  1. Read .github/pull_request_template.md before drafting the PR body.
  2. Collect PR context from the current branch (base/head, scope, linked issues, testing status, breaking changes, release note content).
  3. Check if the current branch has been pushed to remote. If not, push it first:
    • Default remote is origin, but ask the user if they want to use a different remote.
    git push -u <remote> <head-branch>
  4. Determine the base branch:
    • For official repo(CherryHQ/cherry-studio) as origin: default base is main from origin, but allow the user to explicitly indicate a base branch.
    • For fork repo as origin: check available remotes with git remote -v, default base may be upstream/main or another remote. Always assume that user wants to merge head to CherryHQ/cherry-studio/main, unless the user explicitly indicates a base branch.
    • Ask the user to confirm the base branch if it's not the default.
  5. Create a temp file and write the PR body:
    • Use pr_body_file="$(mktemp /tmp/gh-pr-body-XXXXXX).md"
    • Fill content using the template structure exactly (keep section order, headings, checkbox formatting).
    • If not applicable, write N/A or None.
  6. Preview the temp file content. Show the file path (e.g., /tmp/gh-pr-body-XXXXXX.md) and ask for explicit confirmation before creating. Skip this step if the user explicitly indicates no preview/confirmation is needed (for example, automation workflows).
  7. After confirmation, create the PR:
    gh pr create --base <base> --head <head> --title "<title>" --body-file "$pr_body_file"
  8. Clean up the temp file: rm -f "$pr_body_file"
  9. Report the created PR URL and summarize title/base/head and any required follow-up.

Constraints

  • Never skip template sections.

  • Never rewrite the template format.

  • Keep content concise and specific to the current change set.

  • PR title and body must be written in English.

  • Never create the PR before showing the full final body to the user, unless they explicitly waive the preview or confirmation.

  • Never rely on command permission prompts as PR body preview.

  • Release note & Documentation checkbox — both are driven by whether the change is user-facing. Use the table below:

    Change typeRelease noteDocs [x]
    New user-facing feature / setting / UIDescribe the change
    Bug fix visible to usersDescribe the fix✅ if behavior changed
    Behavior change / default value changeDescribe + action required
    Security fix in a user-facing dependencyDescribe the fix✅ if usage changed
    CI / GitHub Actions changesNONE
    Internal refactoring (user cannot tell)NONE
    Dev / build tooling changesNONE
    Dev-only dependency bumpNONE
    Test-only / code style changesNONE

Command Pattern

# read template
cat .github/pull_request_template.md

# show this full Markdown body in chat first
pr_body_file="$(mktemp /tmp/gh-pr-body-XXXXXX).md"
cat > "$pr_body_file" <<'EOF'
...filled template body...
EOF

# run only after explicit user confirmation
gh pr create --base <base> --head <head> --title "<title>" --body-file "$pr_body_file"
rm -f "$pr_body_file"

Similar Claude Skills & Agent Workflows