Claude Skill

gh-create-pr

Create 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

LLM Mart · 0 points · 21 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download cherryhq-cherry-studio-.agents_skills_gh-create-pr-1f7c409.zip · 2 KB
Part of cherryhq/cherry-studio — 22 skills
This skill couldn't be refreshed from GitHub on the last check — you're seeing the last imported snapshot.

Install

skills CLI npx skills add https://github.com/CherryHQ/cherry-studio/tree/main/.agents/skills/gh-create-pr
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install cherryhq-cherry-studio@llmmart
Git git clone https://github.com/CherryHQ/cherry-studio.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole cherryhq/cherry-studio collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

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.
    • main is the active v2 development line. v1 maintenance fixes (head branch hotfix/*, critical user-facing bug fixes only) must target v1, not main — set the base to v1 for these.
    • 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 using a single Bash heredoc (avoids mktemp + Write tool path-mismatch on Windows):
    pr_body_file="/tmp/gh-pr-body-$(date +%s).md"
    cat > "$pr_body_file" <<'EOF'
    ...filled template body...
    EOF
    
    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 via Bash cat "$pr_body_file" (the Read tool can fail on /tmp/... paths on Windows). Show the file path and ask for explicit confirmation before creating. Skip if the user explicitly waives preview (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 type Release note Docs [x]
    New user-facing feature / setting / UI Describe the change ✅
    Bug fix visible to users Describe the fix ✅ if behavior changed
    Behavior change / default value change Describe + action required ✅
    Security fix in a user-facing dependency Describe the fix ✅ if usage changed
    CI / GitHub Actions changes NONE ❌
    Internal refactoring (user cannot tell) NONE ❌
    Dev / build tooling changes NONE ❌
    Dev-only dependency bump NONE ❌
    Test-only / code style changes NONE ❌

Command Pattern

# read template
cat .github/pull_request_template.md

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

# 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"
Files (cherry-studio)
  • agents
    • openai.yaml 218 B
      interface:
        display_name: "Create GitHub PR"
        short_description: "Create PRs with required template compliance"
        default_prompt: "Create a pull request for my current branch using the repository template workflow."
      
  • SKILL.md 4 KB
    ---
    name: gh-create-pr
    description: Create 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.
       ```bash
       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.
       - `main` is the active v2 development line. v1 maintenance fixes (head branch `hotfix/*`, critical user-facing bug fixes only) must target `v1`, not `main` — set the base to `v1` for these.
       - 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 using a single Bash heredoc
       (avoids `mktemp` + `Write` tool path-mismatch on Windows):
       ```bash
       pr_body_file="/tmp/gh-pr-body-$(date +%s).md"
       cat > "$pr_body_file" <<'EOF'
       ...filled template body...
       EOF
       ```
       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 via Bash `cat "$pr_body_file"` (the `Read`
       tool can fail on `/tmp/...` paths on Windows). Show the file path and ask
       for explicit confirmation before creating. Skip if the user explicitly
       waives preview (automation workflows).
    7. After confirmation, create the PR:
       ```bash
       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 type | Release note | Docs `[x]` |
      |---|---|---|
      | New user-facing feature / setting / UI | Describe the change | ✅ |
      | Bug fix visible to users | Describe the fix | ✅ if behavior changed |
      | Behavior change / default value change | Describe + `action required` | ✅ |
      | Security fix in a user-facing dependency | Describe the fix | ✅ if usage changed |
      | CI / GitHub Actions changes | `NONE` | ❌ |
      | Internal refactoring (user cannot tell) | `NONE` | ❌ |
      | Dev / build tooling changes | `NONE` | ❌ |
      | Dev-only dependency bump | `NONE` | ❌ |
      | Test-only / code style changes | `NONE` | ❌ |
    
    ## Command Pattern
    
    ```bash
    # read template
    cat .github/pull_request_template.md
    
    # show this full Markdown body in chat first
    pr_body_file="/tmp/gh-pr-body-$(date +%s).md"
    cat > "$pr_body_file" <<'EOF'
    ...filled template body...
    EOF
    cat "$pr_body_file"
    
    # 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"
    ```
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related