agentsclimarketplace

Create pr

Skill shuymn/skills/skills/create-pr

Reviews committed changes and creates a pull request on GitHub. Use when the user wants to create a PR, push changes for review, or open a pull request. Requires a GitHub repository. Supports --japanese flag for Japanese descriptions, --base flag to specify target branch, and --update flag to update an existing PR.From its SKILL.md

Install
npx -y skills add shuymn/skills --skill create-pr

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

9.4 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it

Path Resolution

  • <skill-root> means the directory containing this SKILL.md.
  • Resolve scripts/... and references/... relative to <skill-root>, not the caller's current working directory.
  • When executing local helpers, use explicit paths such as <skill-root>/scripts/....

Create Pull Request on GitHub from Committed Changes

Context

Git Information

  • Current branch: git branch --show-current
  • Remote branches: git branch -r
  • Default branch: git symbolic-ref --short refs/remotes/origin/HEAD | sed 's@^origin/@@'
  • Repository root: git rev-parse --show-toplevel
  • Unpushed commits: git log origin/$(git branch --show-current)..HEAD --oneline 2>/dev/null || echo "Branch not pushed yet"
  • Push status: git status -sb | head -1

Committed Changes Only

Note: Replace origin/HEAD with origin/<base-branch> if --base=<branch> is specified

  • Commits different from base branch: git log origin/HEAD..HEAD --oneline
  • Number of commits ahead: git rev-list --count origin/HEAD..HEAD
  • Files changed in commits: git diff --name-status origin/HEAD..HEAD
  • Lines added/removed: git diff --shortstat origin/HEAD..HEAD
  • Full diff: git diff origin/HEAD..HEAD

Detailed Commit History

Note: Replace origin/HEAD with origin/<base-branch> if --base=<branch> is specified

  • Commit messages with body: git log origin/HEAD..HEAD --format="### %s%n%n%b%n"
  • Commit authors: git log origin/HEAD..HEAD --format="%an <%ae>" | sort | uniq

PR Templates

  • GitHub template: cat .github/pull_request_template.md 2>/dev/null || echo "No GitHub template"
  • Alternative template: cat .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null || echo ""

Project Information

  • README: cat README.md 2>/dev/null | head -50 || echo "No README"

Language Support

Default: English --japanese: Creates PR in Japanese

Base Branch Support

Default: Repository's default branch (usually main or master) --base=<branch>: Specify target branch for the pull request

  • Use --base=<branch> to create PR against a specific branch
  • Default behavior: Uses repository default branch from git symbolic-ref --short refs/remotes/origin/HEAD
  • Examples:
    • /create-pr → Creates PR to default branch
    • /create-pr --base=develop → Creates PR to develop branch
    • /create-pr --base=release/v2.0 → Creates PR to release branch
    • /create-pr --japanese --base=develop → Japanese PR to develop branch

Update PR Support

--update: Updates an existing pull request instead of creating a new one

  • Use when you've added commits to a branch that already has an open PR
  • Finds the existing PR for the current branch
  • Updates PR title and description based on all commits
  • Useful after addressing review comments or adding more changes
  • Examples:
    • /create-pr --update → Updates existing PR for current branch
    • /create-pr --update --japanese → Updates PR with Japanese description
  • Note: Only works if an open PR exists for the current branch
  • If no PR is found, will notify the user (does not create a new PR)

Your Task

Based on the above context (focusing ONLY on committed changes), create and submit a pull request on GitHub:

1. Analyze Committed Changes

  • Review all commits between current branch and base branch
  • Understand the intent from commit messages and diff
  • Identify what changed, why it changed, and how it was verified
  • Check for breaking changes, known limitations, and review-order hints
  • Notice if the branch mixes unrelated work; if it does, recommend splitting instead of hiding complexity in the PR body

2. Use PR Template If Exists

  • Follow template format strictly
  • Fill sections based on committed changes only
  • Delete empty sections
  • Maintain checklist format (- [ ])

3. PR Title and Body Format

  • Title: short, specific, standalone summary of what the PR does.
    • Prefer imperative wording in English: "Add ...", "Remove ...", "Fix ...".
    • Avoid vague titles such as "Fix bug", "Update code", "Phase 1", or "Refactor".
  • Body: explain only what reviewers and future readers cannot get cheaply from the diff.
    • Always cover: what changed, why it changed, and verification performed.
    • Include context, trade-offs, limitations, rollout, follow-ups, or review-order hints only when relevant.
    • Do not duplicate changed-file lists, commit classifications, checklist boilerplate, or obvious implementation details.
  • If a PR template exists (.github/pull_request_template.md), follow it strictly but delete empty/non-applicable optional sections when the template allows it.
  • Otherwise, use the concise standard format from pr-templates.md.
  • For --japanese, use the Japanese format from the same file.

4. Writing Guidelines

English:

  • Use clear, concise English
  • Keep code references and file paths as-is
  • Be direct and professional
  • Prefer short paragraphs and bullets over long prose
  • Wrap @ symbols in code/paths with backticks to prevent mentions: @import, path/@file

Japanese:

  • Use appropriate technical Japanese
  • Keep English proper nouns (libraries, functions) as-is
  • Use clear Japanese without honorifics
  • Use ですます調 for paragraph-style sentences
  • For bullet points, use だ・である調 or noun-ending style (体言止め)
  • Omit final punctuation in bullet points (no )

Escaping Rules (Important):

  • For GitHub MCP tools (mcp__github__create_pull_request, mcp__github__update_pull_request):
    • Pass body as raw Markdown text
    • Do NOT escape backticks in Markdown (use `code`, never \code``)
    • If generated text contains \ before backticks, normalize it to plain backticks before tool call
  • For gh CLI commands:
    • Prefer --body-file to avoid shell-escaping issues
    • If inline body is unavoidable, use a single-quoted heredoc (<<'EOF') so backticks are preserved as-is

5. Execution Steps

Standard Flow (Create New PR)

  1. Determine base branch:

    • If --base=<branch> specified: Use the specified branch
    • Otherwise: Use repository default branch (git symbolic-ref --short refs/remotes/origin/HEAD | sed 's@^origin/@@')
  2. Ensure changes are pushed:

    git push -u origin [current branch name]
    
  3. Prepare PR content:

    • Generate appropriate title summarizing commits
    • Create PR body following template or standard format
    • Analyze commits against the determined base branch
    • Apply escaping rules based on execution method (MCP vs gh)
  4. Create pull request:

    mcp__github__create_pull_request:
    - title: [Generated title in selected language]
    - body: [Raw Markdown body in selected language; do NOT escape backticks]
    - head: [Current branch]
    - base: [Determined base branch from step 0]
    
  5. After creation:

    • Provide PR URL
    • Confirm success
    • Explain any errors clearly

Update Flow (--update flag)

  1. Get current branch:

    git branch --show-current
    
  2. Find existing PR for current branch:

    mcp__github__list_pull_requests:
    - state: open
    - head: [repository owner]:[current branch]
    
  3. Verify PR exists:

    • If no PR found: Notify user and exit (do NOT create new PR)
    • If PR found: Extract PR number and current base branch
  4. Ensure latest changes are pushed:

    git push origin [current branch name]
    
  5. Prepare updated PR content:

    • Generate new title summarizing all commits
    • Create new PR body following template or standard format
    • Analyze all commits against the PR's base branch
    • Apply escaping rules based on execution method (MCP vs gh)
  6. Update pull request:

    mcp__github__update_pull_request:
    - pull_number: [PR number from step 2]
    - title: [Generated title in selected language]
    - body: [Raw Markdown body in selected language; do NOT escape backticks]
    
  7. After update:

    • Provide PR URL
    • Confirm successful update
    • Explain any errors clearly

Important Notes

  • ONLY analyze committed changes (ignore uncommitted work)
  • Notify if no commits exist between branches
  • Focus on what was committed, not work in progress
  • Be concise; remove sections that add no reviewer value
  • Make the title/body useful as permanent history: specific enough to find later, but not a diff transcript
  • Without --update: CREATE new PR using mcp__github__create_pull_request
  • With --update: UPDATE existing PR using mcp__github__update_pull_request
  • With --update: If no PR exists, notify user and DO NOT create new PR
  • Use AskUserQuestionTool when you need clarification on:
    • Whether certain commits should be included in the PR
    • How to categorize or describe ambiguous changes
    • Which base branch to use if not specified and multiple options exist
    • If AskUserQuestionTool is unavailable and multiple independent clarifications are needed, ask in a single message using QID labels (Q1, Q2, ...); require QID: <answer> responses and allow QID: OTHER(<concise detail>) when no option fits

What ships with it: 1 file

1.2 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.