Create a GitHub pull request from the current branch. An agent skill from hashgraph-online/awesome-codex-plugins.

Apache-2.0Auto-check passedDevelopment

Install Create PR

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill create-pr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins create-pr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/yagizdo/quiver/skills/create-pr .claude/skills/create-pr && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
create-pr
GitHub stars
1.2k
Token cost
~3.4k tokens
SKILL.md length
1,815 words
Files
2
Skills in repo
686
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create a GitHub pull request from the current branch. An agent skill from hashgraph-online/awesome-codex-plugins.

  • Works in 6 steps: Validate Environment → Detect Base Branch → Push If Needed → …
  • The user says create a pr
  • SKILL.md covers Step 0 -- Validate Environment, Step 1 -- Detect Base Branch, Step 2 -- Push If Needed and Step 3 -- Generate PR Title &…, plus 2 more sections
  • Calls git and gh

What it does

Create PR is an agent skill from hashgraph-online/awesome-codex-plugins. Create a GitHub pull request from the current branch. Use when the user says 'create a pr', 'open pr', 'push and open a pr', 'create pull request', or wants to open a PR from their branch.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `TEST-PLAN.md`).

It sits in Development, covering Pull requests. It works with GitHub and Git. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.

When your agent uses it

  • The user says create a pr
  • Push and open a pr
  • Create pull request
  • Wants to open a PR from their branch

Example prompts

  • “create a pr”
  • “open pr”
  • “push and open a pr”
  • “/create-pr”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Validate Environment
  2. Detect Base Branch
  3. Push If Needed
  4. Generate PR Title & Body
  5. Present & Execute
  6. Output

What it can do on your machine

Read from SKILL.md and the folder at commit 78497e5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Create PR loads about 3.4k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 1,815 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~50
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 78497e5, republished under its Apache-2.0 licence (© hashgraph-online). 1,815 words, ~3,402 tokens.

Download SKILL.mdSave it as .claude/skills/create-pr/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
create-pr
description
Create a GitHub pull request from the current branch. Use when the user says 'create a pr', 'open pr', 'push and open a pr', 'create pull request', or wants to open a PR from their branch.
argument-hint
[--draft] [--base <branch>]
when-to-use
user wants to open a pull request from the current branch -- '/create-pr', 'create a PR', 'open a pull request', 'push and make a PR'

Gather Context

!`git rev-parse --is-inside-work-tree 2>/dev/null || echo "NO_GIT"`
!`git status --short 2>/dev/null || echo "NO_GIT"`
!`git branch --show-current 2>/dev/null || echo "NO_GIT"`
!`git rev-parse --abbrev-ref origin/HEAD 2>/dev/null || echo "NO_DEFAULT_BRANCH"`
!`git log --oneline -10 2>/dev/null || echo "NO_COMMITS"`
!`git remote -v 2>/dev/null || echo "NO_REMOTE"`

Instructions

Step 0 -- Validate Environment

Silently evaluate the gather-context output. Stop with a clear message on the first failure:

  1. If any git block returned NO_GIT -> print: > No git repository detected. /create-pr requires a git repo. Stop here.
  2. If git remote -v returned NO_REMOTE or is empty -> print: > No remote configured. Add one with \git remote add origin <url>`.` Stop here.
  3. If git status --short is not empty -> print: > You have uncommitted changes. Commit them first -- you can use \/quiver:commit`.` Stop here.

Step 1 -- Detect Base Branch

Determine the base branch using this priority order. Use the first that resolves:

  1. If $ARGUMENTS contains --base <value>, use that value as the base branch.
  2. If git rev-parse --abbrev-ref origin/HEAD did not return NO_DEFAULT_BRANCH, strip the origin/ prefix and use the result.
  3. Try main -- run git rev-parse --verify origin/main 2>/dev/null. If it succeeds, use main.
  4. Try master -- run git rev-parse --verify origin/master 2>/dev/null. If it succeeds, use master.
  5. Try develop -- run git rev-parse --verify origin/develop 2>/dev/null. If it succeeds, use develop.
  6. If none resolved, ask the user: "Could not detect the base branch. What branch should this PR target?" via AskUserQuestion.

After resolving the base branch:

Check if the current branch (from git branch --show-current) equals the base branch. If so -> print: > You are on the base branch (\{base}`). Create a feature branch first.` Stop here.

Check commits ahead: run git log --oneline {base}..HEAD. If output is empty -> print: > No commits ahead of \{base}`. Nothing to create a PR for.` Stop here.


Step 2 -- Push If Needed

Before creating the PR, ensure the branch is pushed to the remote:

  1. Check upstream: git rev-parse --abbrev-ref @{upstream} 2>/dev/null
  2. If upstream exists -> git push
  3. If no upstream -> git push -u origin {branch}

If push fails, show the error verbatim and stop here.


Step 3 -- Generate PR Title & Body

Gather the change:

  • git log --oneline {base}..HEAD -- all commits on this branch
  • git diff --stat {base}..HEAD -- files changed summary
  • git diff {base}..HEAD -- full diff

Then look for a repository PR template with the Read tool (.github/PULL_REQUEST_TEMPLATE.md, .github/pull_request_template.md, docs/PULL_REQUEST_TEMPLATE.md, or PULL_REQUEST_TEMPLATE.md at the root). Do this here with the Read tool, not in a ! block -- the lookup is conditional and those blocks run before any step logic. If a template exists, its sections are the body's structure and the rules below only decide how much goes in each. A section the template asks for and the change has nothing to say about gets one line saying so, not padding. If none exists, build the body from the rules below.

Title rules:

  • Concise, imperative mood, no period
  • <= 72 characters
  • Single commit: use its subject line. Multiple commits: summarize the overall theme.

Body rules:

The body has one reader: someone who has to approve this diff and was not in this conversation. Anything that does not help that person decide is padding, and padding on a small PR is worse than no description -- it buries the one thing that mattered.

1. Work out what this reviewer needs, then write only that. Before drafting, answer three questions against the change in front of you. Each answer that exists becomes body text. An answer that does not exist contributes nothing, and no heading stands in for it.

  1. Why -- what the change is for, which the diff cannot show. Almost always answerable.
  2. The trap -- what the reviewer would get wrong, miss, or argue with if nobody told them: an ordering that matters, an alternative already tried and rejected, a breaking edge, a file that looks unrelated and is not.
  3. The ask -- what the reviewer has to do that CI will not do for them.

Length is the length of those answers. There is no quota and no target. A rename answers the first question in a sentence and has nothing for the other two, so its body is a sentence. A change that rewires authentication answers all three and earns every word it takes. Judge by what the reviewer has to hold in their head, not by how many lines changed: 400 lines of a regenerated lockfile is the sentence, 20 lines moving a permission check is not.

Never ship a body that is a single sentence with no motivation, and never ship one that narrates the diff the reviewer already has. A body that keeps going after the three answers are given is not thorough -- it is unread. The reviewer skims, the detail that mattered is buried in what surrounds it, and a wall of generated prose is the thing people point at when they say a PR was written by a machine.

2. Sections carry the answers; they are not slots to fill. Include a section when it carries an answer you actually have, and drop the heading entirely otherwise -- a thin paragraph under an unearned heading is the padding this rule exists to prevent.

SectionCarriesInclude when
## SummaryWhyThe body has headings at all. It comes first.
## ChangesWhy, per areaThe diff touches several areas and the file list does not tell a reviewer what each one does. One line per area, never per hunk.
## How it worksThe trapThere is control flow, ordering, or an algorithm a reviewer cannot follow from the diff.
## Design decisionsThe trapA real alternative was rejected and a reviewer would otherwise propose it. Only the ones they would argue with -- never a log of every choice made while building, and never invented to fill the section.
## RisksThe trapBreaking change, migration, data change, feature flag, or a rollback that is not trivial.
## Test planThe askThe reviewer has to do something themselves: manual steps, a runtime check, a device or environment CI does not cover. When the diff adds tests and CI runs them, one sentence naming the command replaces the checklist. Never a checkbox for "code compiles", "tests pass", or "reviewed the diff".

3. Calibrate against these. The three sizes are not tiers to assign a change to -- they are what the three questions produce when a change has one answer, one answer plus a detail, or all three.

A dependency bump, one answer:

Bumps `requests` to 2.32.4 for CVE-2024-35195. The three call sites in `client.py` use the same API and are unchanged.

One behavior change across a few files:

## Summary
Upload retries fired on 4xx as well as 5xx, so a file the server rejected was re-sent three times before the error surfaced. The predicate now checks the status class; backoff is unchanged.

Nothing here answers the trap or the ask -- no ordering to explain, no alternative a reviewer would propose, nothing to run by hand.

A new subsystem plus the problems it surfaced, all three answers:

## Summary
Adds a behavior eval for the review command: a fixture repo with three planted defects and three baits, a real review run against it, and a grader over the report. Four runs while building it found two real problems, both fixed here.

## Changes
- `tests/eval/` -- runner, fixture builder, expectations.
- `agents/review/security-audit.md` -- the severity rubric mixed a category test with a reachability test, so an unreachable sink flapped between High and Critical between runs. A reachability paragraph settled it; the two runs after it agreed.
- Docs -- `/review` and `/design` resolve to bundled commands, not to this plugin, so user-facing text now names them with the plugin prefix.

## Test plan
`bash tests/eval/run-review-golden.sh` -- spends real API credit, so it sits outside the glob CI discovers and is run by hand before a release.

Every other choice that went into building that eval is absent on purpose.

4. Where the motivation comes from. In order: what the user said in this conversation; the plan, spec, review report, or issue the branch was built from (.claude/plans/, .claude/reports/, a linked issue); then the commit messages; then the diff. The diff is last because it only ever answers what. If none of the first three carry a motivation, state what the change does and stop -- do not manufacture a rationale.

Show full SKILL.md (658 more words)Show less

5. The user's instructions outrank everything above. Anything the user asked for in this invocation or earlier in the conversation -- shorter, longer, a section they want, a number they want quoted, an issue to link, a reviewer to address -- wins over every rule here.

6. Do not write:

  • Filler openers -- "This PR introduces", "This pull request aims to", "In this change we".
  • A restatement of the files-changed list GitHub already renders.
  • Line-by-line narration of the diff. The diff is attached.
  • Speculative follow-ups, "future improvements", or what you chose not to do, unless the user asked for them.
  • Praise for the change, emoji headings, or a closing paragraph that repeats the Summary.
  • A measurement, a cost figure, or a date the reviewer does not need in order to approve the diff. It belongs in the code or in the file that records it.
  • AI attribution of any kind.

7. Read it back as the reviewer before you print it. Go through the draft one sentence at a time and ask what the reviewer does with that sentence. A sentence they would skip comes out, and a section whose sentences all come out goes with it. Cut, do not compress: rewording the same content shorter keeps every idea and removes only the words that made them readable.

Language rule: the title and body are always written in English, regardless of the conversation language. Only use another language if the user explicitly asks for it in this invocation. A PR is a repository artifact read by people who were not in this conversation.

Structure rule: when the body has headings at all, the sections follow in table order. A body of one or two sentences has no headings -- do not put a ## Summary heading above a single sentence.


Step 4 -- Present & Execute

Flag: --draft

If $ARGUMENTS contains "draft", skip the AskUserQuestion step. Show the generated title and body, then immediately execute gh pr create --draft --title "{title}" --body "..." --base {base}.

Default (no flag)

Two steps, both mandatory: print the preview, then ask. Do not paste the body into the AskUserQuestion question field -- that field is rendered as a single truncated line by some Claude Code surfaces, so a multi-line body is cut off or dropped entirely and the user is asked to approve something they cannot read.

Step 4a -- print the preview as normal chat output:

PR Title: {title} Base: {base_branch} <- {current_branch}

Then the body verbatim inside a fenced ```markdown block, so the user sees exactly what gh pr create will receive.

Step 4b -- ask, and wait for the answer:

  • Question: "Create this PR?" -- one short line. No newlines, no body text, no ANSI escape codes.
  • Header: "Pull Request"
  • Options:
    1. Create PR -- "Create pull request"
    2. Create as Draft -- "Create as draft pull request"
    3. Edit -- "Revise the title or description"
    4. Cancel -- "Abort without creating PR"

Printing the preview is not approval. It is only the readable copy of what the prompt is about, and it exists because the prompt cannot display it. Never run gh pr create without an answer from this AskUserQuestion. The user asking for a PR in their message is not the answer either -- that is what put the skill on this step. --draft is the only path that skips the prompt.


Execution

On "Create PR":

gh pr create --title "{title}" --body "$(cat <<'EOF'
{body}
EOF
)" --base {base_branch}

On "Create as Draft":

Same command with --draft appended.

On "Edit": Ask what to change, revise the title or body, and re-present the AskUserQuestion.

On "Cancel":

PR creation cancelled.

Stop here.


Step 5 -- Output

After successful PR creation, display:

PR Created: {pr_url} Title: {title} Branch: {current_branch} -> {base_branch} Commits: {count} Files changed: {count}

Extract the PR URL from the gh pr create output (it prints the URL to stdout).


Error Handling

If gh pr create fails, show the error verbatim and suggest the user check:

  • GitHub CLI authentication (gh auth login)
  • Remote repository permissions
  • Whether a PR already exists for this branch (gh pr list --head {branch})

Never retry automatically.

© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/yagizdo/quiver/skills/create-pr of hashgraph-online/awesome-codex-plugins.

  • SKILL.md
  • TEST-PLAN.md

Open the folder on GitHubat commit 78497e5

Compare with similar skills

Create PR next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Create PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Create PR this skillhashgraph-online/awesome-codex-plugins1.2k—~3.4kAutomated safety check: PassApache-2.0
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Pull Request Title and Body Writeropeninterpreter/openinterpreter69k2 repos~1.1kAutomated safety check: PassApache-2.0
PR Review State Fetchprisma/orm48k—~767Automated safety check: PassApache-2.0
Creating Description For Gh PRredis/jedis12k—~838Automated safety check: PassMIT

Similar skills

  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.

    48k GitHub stars~767 tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.

    12k GitHub stars~838 tokensUpdated today
    DevelopmentAuto-check passed
  • Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.

    61k GitHub stars~824 tokensUpdated today
    DevelopmentAuto-check passed

More from hashgraph-online/awesome-codex-plugins

All 686 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.2k GitHub stars~922 tokensUpdated today
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.2k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Rust API Test Harness

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

    1.2k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.2k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.2k GitHub stars~618 tokensUpdated today
    Auto-check passed
  • Manuscript Engagement Analytics

    hashgraph-online/awesome-codex-plugins

    Analyze nonfiction manuscripts for reader engagement signals, including heading-level word counts, slow starts, long slogs, weak takeaway titles, value pacing, beta-reader comment dropoff, and…

    1.2k GitHub stars~875 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Create PR

What does Create PR do?

Create a GitHub pull request from the current branch. An agent skill from hashgraph-online/awesome-codex-plugins. Create PR is an agent skill from hashgraph-online/awesome-codex-plugins. Create a GitHub pull request from the current branch.

When should I use Create PR?

Create PR fits situations like: the user says create a pr; push and open a pr; create pull request; wants to open a PR from their branch.

How do I install Create PR in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill create-pr -a claude-code`. Or copy the skill folder (plugins/yagizdo/quiver/skills/create-pr in hashgraph-online/awesome-codex-plugins) into .claude/skills/create-pr in your project. Claude Code loads it when a task matches its description.

How do I install Create PR in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill create-pr -a codex`. Or copy the skill folder (plugins/yagizdo/quiver/skills/create-pr in hashgraph-online/awesome-codex-plugins) into .agents/skills/create-pr in your project. Codex loads it when a task matches its description.

Can I use Create PR in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill create-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-pr, .gemini/skills/create-pr, .github/skills/create-pr and .opencode/skills/create-pr in your project.

What does Create PR need to run?

Going by SKILL.md and its folder, Create PR needs the command-line tools its instructions call (git and gh).

Does Create PR access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Create PR safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Create PR use?

Create PR is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Create PR use?

About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Create PR?

Skills that share tags, products or a category with Create PR: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Pull Request Title and Body Writer (openinterpreter/openinterpreter, 69k stars) and PR Review State Fetch (prisma/orm, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Create PR?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,242 GitHub stars. The repository holds 686 skills in this directory. The repository was last updated on October 8, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.