skilly. Buy ad slot
All skills
Github · Automation / AGENT SKILL

pr

reactive/data-client
0 installs 2K GitHub stars
0

Create GitHub pull requests from working changes, handling branches, commits, pushes, and PR templates.
Create a GitHub pull request from current working changes. Handles all git states - uncommitted changes, no branch, unpushed commits, etc. Analyzes diffs and changesets to generate a PR with filled-in template. Opens the PR in the browser when done. Use when the user asks to create a PR, open a PR, submit changes, or push for review.

BEFORE YOU INSTALL

Understand the trade-offs.

SECURITY REVIEW

Not yet assessed

Review the original instructions and requested permissions before installing.

No security review is available for this catalog entry yet.

SKILL QUALITY

Not yet assessed

How clearly the skill guides your agent, how complete its workflow is, and how you can check the outcome.

No quality assessment is available for this catalog entry yet.

The full skill.

Original instructions from the publisher’s SKILL.md

# Create Pull Request

## Overview

Analyze the current git state, prepare changes for a PR, create it on GitHub with a well-crafted description, and open it in the browser.

## Step 1: Assess Git State

Run these commands in parallel to understand the current state:

```bash
git status --porcelain
git branch --show-current
git log --oneline master..HEAD 2>/dev/null
git diff --stat master...HEAD 2>/dev/null
git stash list
```

Also check for existing PR on the current branch:

```bash
gh pr view --json url,state 2>/dev/null
```

## Step 2: Handle Git States

Based on the assessment, follow the appropriate path:

### No changes anywhere
If working tree is clean AND no commits ahead of master → inform user there's nothing to PR.

### On `master` with uncommitted changes only
1. Ask the user for a branch name, or infer one from the changes (lowercase, hyphenated, concise)
2. Create and switch to branch: `git checkout -b <branch-name>`
3. Stage all changes: `git add -A`
4. Analyze the diff and write a commit message following the project's conventional commit style (see Commit Style below)
5. Commit the changes

### On `master` with commits ahead (not yet on a branch)
1. Ask the user for a branch name, or infer one
2. Create branch at current position: `git checkout -b <branch-name>`
3. (The commits come along automatically)

### On feature branch with uncommitted changes
1. Stage all changes: `git add -A`
2. Analyze the diff and write a commit message
3. Commit the changes

### On feature branch, all committed, not pushed
Continue to Step 3.

### PR already exists
Inform the user and provide the existing PR URL. Ask if they want to update it instead.

## Step 3: Validate Changesets and Blog (before committing)

For user-facing changes (`feat:`, `fix:`, `enhance:`), check that changesets and blog updates exist:

```bash
ls .changeset/*.md 2>/dev/null | grep -v README
git diff --name-only master...HEAD 2>/dev/null
git status --porcelain
```

If changesets are missing or the draft blog post is unmodified, invoke the skill "changeset" to create them before proceeding. Skip this step for `docs:`, `pkg:`, `internal:`, `demo:` changes.

## Step 4: Push to Remote

```bash
git push -u origin HEAD
```

## Step 5: Analyze Changes for PR Description

Gather information for the PR body:

```bash
# Full diff against master
git diff master...HEAD

# Commit messages
git log --format='%s%n%n%b' master..HEAD

# Check for changesets
ls .changeset/*.md 2>/dev/null | grep -v README
```

Read any changeset files (`.changeset/*.md`, excluding README.md) — these contain curated descriptions of what changed and why. Use them as primary source material for the PR description.

Examine the diff to understand:
- Which packages are affected
- Whether there are test changes
- Whether there are doc changes
- The nature of the change (feature, fix, refactor, docs, internal, pkg)

## Step 6: Create the PR

Use `gh pr create` with the project's PR template structure. Base branch is always `master`.

### PR Title

Follow commit convention style:
- `feat: <description>` — new feature
- `fix: <description>` — bug fix
- `enhance: <description>` - improvements
- `docs: <description>` — documentation only
- `pkg: <description>` — dependency updates
- `internal: <description>` — internal tooling/infra
- `demo: <description>` — example app changes

Scope is optional, used for specificity (e.g., `feat(rest):`, `fix(core):`). Use imperative mood, under 72 chars. If the PR spans multiple types, use the most significant one. Commit messages follow the same convention.

### PR Body Template

Fill in the template based on the analyzed changes. Remove HTML comments. Leave sections empty with "N/A" if not applicable. The `Fixes #` line should be omitted if there's no linked issue.

```markdown
Fixes #<issue number if known, otherwise remove this line>

### Motivation

<Why this change exists. Pull from changeset descriptions, commit messages, and diff analysis.
Be specific: does it solve a bug? Enable a new use-case? Improve DX?>

### Solution

<High-level description of what was done. Key technical decisions and their rationale.
Mention affected packages, architectural choices, trade-offs.>

### Open questions

<Any unresolved design questions, or "N/A" if none>
```

### Create Command

```bash
gh pr create --base master --title "<title>" --body "$(cat <<'EOF'
<body content>
EOF
)"
```

Capture the PR URL from the output.

## Step 7: Open in Browser

```bash
gh pr view --web
```

Skill folder

Files included alongside SKILL.md in the publisher’s repository.