Agent skill

React Router Pull Request Creator

by remix-run in remix-run/react-router

Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

MITAuto-check passedDevelopment

Install React Router Pull Request Creator

skills CLI
$ npx skills add remix-run/react-router --skill create-pr -a claude-code

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

GitHub CLI
$ gh skill install remix-run/react-router 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/remix-run/react-router.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/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
57k
Token cost
~2.5k tokens
SKILL.md length
760 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

  • Works in 4 steps: Review the diff with git diff --stat and… → Stage only the intended files. → Commit with a concise imperative subject. → …
  • Opening a draft PR after finishing a change in the React Router repo
  • SKILL.md covers Preconditions, Context, Commit and Push and PR Creation, plus 1 more section
  • Calls gh and git

What it does

The agent starts by checking git status and the current branch, keeps unrelated dirty files out of the change, and creates a branch from HEAD if the worktree is detached. It confirms that automated test coverage exists and, for user-facing changes, that the affected package has a change file in its .changes folder. Docs-only, workflow-only and dependency-maintenance PRs are exempt from that file.

It then reviews the diff, stages only the intended files, commits with a short imperative subject and pushes. The PR body is saved to a temporary file and handed to gh pr create. The PR is a draft aimed at main unless you ask for a ready PR or another base branch. The body explains what changed, why and who it affects, links related issues, and includes a usage snippet or before and after example for new features. Labels such as pkg:*, feat:*, docs and dependencies are applied.

When your agent uses it

  • Opening a draft PR after finishing a change in the React Router repo
  • Writing a PR body that explains what changed and why
  • Choosing the right pkg, feat or docs label for a pull request

Example prompts

  • “Open a PR for the loader redirect fix I just finished.”
  • “Prepare a ready-for-review PR against the dev branch instead of main.”
  • “Create the PR and label it docs, since this only touches the guides.”

Requirements

  • Git and the GitHub CLI (gh)
  • A checkout of the React Router repository

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Review the diff with git diff --stat and focused git diff as needed.
  2. Stage only the intended files.
  3. Commit with a concise imperative subject.
  4. Push the branch before creating the PR.

What it can do on your machine

Read from SKILL.md and the folder at commit 266915e. 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:

    • gh
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use gh and git, 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

React Router Pull Request Creator loads about 2.5k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 760 words of instructions outside code blocks.

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

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 remix-run/react-router at commit 266915e, republished under its MIT licence (© remix-run). 760 words, ~2,492 tokens.

Download SKILL.mdSave it as .claude/skills/create-pr/SKILL.md (or your agent's skills folder).
name
create-pr
description
Create and package React Router pull requests. Use when the user asks to create, open, prepare, or finish a PR for this repository, including branch/commit/push handoff, draft PR creation, PR body writing, and applying GitHub labels such as pkg:*, feat:*, docs, github-actions, or dependencies.

Create React Router PR

Create the pull request handoff for completed React Router work. Default to a draft PR targeting main unless the user explicitly asks for a ready PR or a different base branch.

Preconditions

  • Inspect git status --short --branch and git branch --show-current.
  • Do not include unrelated dirty files. If unrelated changes are present, leave them unstaged and mention them.
  • If the worktree is detached, create a branch from the current HEAD before committing. Use the branch name requested by the user, an existing repository convention, or <author>/<semantic-name> when no stronger convention is available.
  • If already on a suitable named branch, use it.
  • Confirm appropriate automated coverage exists or was added. Do not list routine CI-covered checks in the PR body.
  • If user-facing functionality is being updated, check that the appropriate package has a change file under packages/<package>/.changes/. This is not necessary for docs-only, GitHub Actions/workflow-only, or dependency-maintenance PRs unless the dependency change itself has user-facing impact.

Context

  • Capture what changed, why it changed, and who it affects.
  • Find related issues, discussions, or PRs and include links when relevant.
  • Prefer git diff --stat plus focused git diff over broad repo archaeology when the change is small.
  • If the user supplies a report, issue, discussion, or related PR, treat that as the primary context source.
  • For new feature work, include a concise usage snippet. If the feature replaces or improves an older approach, include before/after examples when they help reviewers.

Commit and Push

  1. Review the diff with git diff --stat and focused git diff as needed.
  2. Stage only the intended files.
  3. Commit with a concise imperative subject.
  4. Push the branch before creating the PR.

PR Creation

Save the PR body to a temporary file, then use gh pr create with:

sh
gh pr create --draft --base main --head <branch> --title "<title>" --body-file <file>
  • Omit --draft only when the user explicitly asks for a ready PR.
  • Change --base only when the user explicitly requests a different base branch.
  • Keep shell quoting simple. Prefer a body file if the body contains backticks, quotes, or multiple paragraphs.
  • Include issue/discussion links when known. Use Closes #NNNN for bug fixes the PR should close; use Implements #NNNN or a plain link for RFCs/discussions when closing semantics are not appropriate.
  • Include testing notes only for manual checks, unusual verification, skipped non-CI checks, or failures that reviewers should know about.
  • If gh pr create fails, leave the branch pushed when possible and give the user a ready-to-open compare URL plus the prepared title and body.

Recommended PR body shape:

markdown
This change ...

- Optional extra detail when useful.

```tsx
// Optional feature usage example
```
tsx
// Optional before/after example

Testing

  • Optional manual or non-CI verification notes only.

- Do not use a `## Summary` heading. Start with one or two short sentences explaining what the change accomplishes.
- Add bullets after the opening only when more detail is useful.
- Include usage examples for new features, and before/after examples for replacements or improvements, when they help reviewers understand the change.
- Add `**Testing**` with bullets below the description only when there are manual checks, unusual verification steps, skipped non-CI checks, or failures reviewers should know about. Omit it for routine automated coverage.

## Testing Notes

- Do not list linting, typechecking, unit test, or integration test commands in the PR body, even if they were run locally. CI runs these automatically.
- Do not say that CI will run routine linting, typechecking, unit tests, or integration tests. That is assumed for every PR.
- Do not add manual testing instructions by default.
- Add manual testing instructions only when necessary, such as visual/UI behavior that needs human review, environment-specific behavior not covered by CI, release/publish dry-run steps, external service integration, or a reproduction that cannot be expressed reliably in automated tests.
- When manual testing is necessary, keep the instructions minimal and directly tied to the uncovered risk.

## Labels

Apply labels after the PR exists. Rely on the stable labels listed in this skill for normal PRs.

Apply labels with:

```sh
gh pr edit <number-or-url> --add-label "<label>"

If gh pr edit --add-label fails because the specified label is invalid or missing, run:

sh
gh label list --limit 200

Then choose the correct label from the live list and update this skill in place so the stable label guidance stays current. Use real labels only. If the right label does not exist, do not invent one; mention the missing label.

Show full SKILL.md (282 more words)Show less
Package Labels

Add every applicable pkg:* label based on touched package paths:

Touched pathLabel
packages/react-router/pkg:react-router
packages/react-router-dev/pkg:@react-router/dev
packages/create-react-router/pkg:create-react-router
packages/react-router-architect/pkg:@react-router/architect
packages/react-router-cloudflare/pkg:@react-router/cloudflare
packages/react-router-node/pkg:@react-router/node
packages/react-router-serve/pkg:@react-router/serve
packages/react-router-express/pkg:@react-router/express
packages/react-router-fs-routes/pkg:@react-router/fs-routes
packages/react-router-remix-routes-option-adapter/pkg:@react-router/remix-routes-option-adapter

If a package path is unclear, inspect its package.json name and use pkg:<name> when that label exists. If a change touches generated artifacts or integration tests only, infer the package label from the runtime/tooling area being tested. For example, Vite plugin or prerender integration coverage usually maps to pkg:@react-router/dev.

Feature Labels

Add applicable feat:* labels for the behavior area being changed. Common labels include:

Behavior areaLabel
Core navigation, loaders/actions, fetchers, redirects, matching, and router statefeat:router
Route config APIs and routes.tsfeat:routes.ts
Vite plugin and build pipeline behaviorfeat:vite
SPA modefeat:spa-mode
Prerenderingfeat:prerender
Lazy route discoveryfeat:lazy-route-discovery
Hydration and hydration fallback behaviorfeat:hydration
View transition APIsfeat:view-transitions
Middleware behaviorfeat:middleware
Split route module behaviorfeat:split-route-modules
Streaming behaviorfeat:streaming
CSS handlingfeat:css
Windows-specific fixesfeat:windows
RSC Data or RSC Framework behaviorfeat:rsc
Path matching semanticsfeat:path-matching
Single fetch behaviorfeat:single-fetch
Types, typegen, and TypeScript behaviorfeat:typescript

Multiple feature labels are fine when the diff truly spans multiple areas. Prefer the most specific label that exists.

Non-Package Labels

Some PRs do not need package or feature labels:

  • Add docs for documentation-only changes.
  • Add github-actions for .github/workflows/ or Actions infrastructure changes.
  • Add dependencies for dependency or lockfile-only maintenance.
  • Add version labels such as v6, v7, or v8 only when the PR is intentionally scoped to that release line or the user asks for it.

Final Report

Report:

  • Branch name.
  • Commit hash.
  • PR URL and whether it is draft or ready.
  • Base branch.
  • Labels applied.
  • Verification performed or skipped.

© remix-run, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/create-pr of remix-run/react-router.

Open the folder on GitHubat commit 266915e

Compare with similar skills

React Router Pull Request Creator 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.

React Router Pull Request Creator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
React Router Pull Request Creator this skillremix-run/react-router57k—~2.5kAutomated safety check: PassMIT
Draft Pull Request Creatorwordpress-mobile/WordPress-Android3.2k—~881Automated safety check: NotesGPL-2.0
Publish Pull Request for taskctltaskctl/taskctl434—~979Automated safety check: PassGPL-3.0
Git GitHub Opsc5inco/compose-pokedexer143—~1.3kAutomated safety check: PassMIT
Pull Request Creationlobehub/lobehub83k—~3.2kAutomated safety check: PassCustom licence
GitHub PR WorkflowRedWoodOG/Hermes-Desktop1775 repos~2.5kAutomated safety check: NotesMIT

Similar skills

  • Draft Pull Request Creator

    wordpress-mobile/WordPress-Android

    Commits and pushes current changes, writes a pull request title and body from the branch history and template, and opens a draft PR on GitHub after you approve it.

    3.2k GitHub stars~881 tokensUpdated today
    DevelopmentAuto-check: notes
  • Publishes the current branch and opens or updates a GitHub pull request for the taskctl repo, after a pre-publish gate and with a description template matched to the change.

    434 GitHub stars~979 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Git GitHub Ops

    c5inco/compose-pokedexer

    Handles Pokedexer Git and GitHub workflows: inspect changes, prepare commit messages, manage branches and pushes, and create or update issues and pull requests with safe file-based inputs.

    143 GitHub stars~1.3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Pull Request Creation

    lobehub/lobehub

    Creates a pull request for the current branch against canary, or splits a cross-layer branch into ordered stacked PRs so backend changes merge before their callers.

    83k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • GitHub PR Workflow

    RedWoodOG/Hermes-Desktop

    Full pull request lifecycle — create branches, commit changes, open PRs, monitor CI status, auto-fix failures, and merge.

    177 GitHub starsUsed in 5 repos~2.5k tokens
    DevelopmentAuto-check: notes
  • PR Workflow

    usenotra/notra

    Git workflow for pushing code and opening pull requests on GitHub.

    255 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed

More from remix-run/react-router

  • React Router Development

    remix-run/react-router

    Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.

    57k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • React Router PR Finish Line

    remix-run/react-router

    Takes a blocked community pull request in React Router and adds the missing tests, change file or docs so it can merge, working on the contributor's branch.

    57k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • React Router Bug Fix Workflow

    remix-run/react-router

    Fixes a React Router bug reported in a GitHub issue end to end: fetching the issue, validating the reproduction, writing a failing test and implementing the fix on a new branch.

    57k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • React Router RFC Implementer

    remix-run/react-router

    Turns a React Router RFC discussion on GitHub into an implementation, weighing community feedback and settling open questions with you before coding.

    57k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Categories

Questions about React Router Pull Request Creator

What does React Router Pull Request Creator do?

Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels. The agent starts by checking git status and the current branch, keeps unrelated dirty files out of the change, and creates a branch from HEAD if the worktree is detached.changes folder.

When should I use React Router Pull Request Creator?

React Router Pull Request Creator fits situations like: opening a draft PR after finishing a change in the React Router repo; writing a PR body that explains what changed and why; choosing the right pkg, feat or docs label for a pull request.

How do I install React Router Pull Request Creator in Claude Code?

Run `npx skills add remix-run/react-router --skill create-pr -a claude-code`. Or copy the skill folder (.agents/skills/create-pr in remix-run/react-router) into .claude/skills/create-pr in your project. Claude Code loads it when a task matches its description.

How do I install React Router Pull Request Creator in Codex?

Run `npx skills add remix-run/react-router --skill create-pr -a codex`. Or copy the skill folder (.agents/skills/create-pr in remix-run/react-router) into .agents/skills/create-pr in your project. Codex loads it when a task matches its description.

Can I use React Router Pull Request Creator 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 remix-run/react-router --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 React Router Pull Request Creator need to run?

Going by SKILL.md and its folder, React Router Pull Request Creator needs the command-line tools its instructions call (gh and git). Our summary lists: Git and the GitHub CLI (gh); A checkout of the React Router repository.

Does React Router Pull Request Creator access the network?

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

Is React Router Pull Request Creator 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 React Router Pull Request Creator use?

React Router Pull Request Creator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does React Router Pull Request Creator use?

About 2.5k tokens (SKILL.md is roughly 10k 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 React Router Pull Request Creator?

Skills that share tags, products or a category with React Router Pull Request Creator: Draft Pull Request Creator (wordpress-mobile/WordPress-Android, 3.2k stars), Publish Pull Request for taskctl (taskctl/taskctl, 434 stars), Git GitHub Ops (c5inco/compose-pokedexer, 143 stars) and Pull Request Creation (lobehub/lobehub, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains React Router Pull Request Creator?

remix-run (a GitHub organization) maintains it in remix-run/react-router, which has 56,597 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 6, 2026.

Source: remix-run/react-router on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.