Skills

PR Create

Creates a pull request from current changes, monitors GitHub CI, and debugs any...

Install

npx skills add posit-dev/skills --skill pr-create -g -a claude-code -y
Repository
posit-dev/skills551
Category
Testing
Updated
7d ago
License
MIT
Context cost
Mediumabout 3,000 tokens
Runs scripts
Yes, review before use

What it does

Creates a pull request from current changes, monitors GitHub CI, and debugs any failures until CI passes. Activate when the user says "create pr", "make a pr", "open pull request", "submit pr", "pr for these changes", or wants to get their current work into a reviewable PR. Assumes the project uses git, is hosted on GitHub, and has GitHub Actions CI with automated checks (lint, build, tests, etc.). Does NOT merge - stops when CI passes and provides the PR link.

PR Creator Skill

Get changes into a PR, monitor CI, fix any failures, and notify the user when the PR is ready for review.

The user may already have commits ready on a feature branch, or may have uncommitted changes, or both. Adapt the workflow to the current state.

Task List Integration

CRITICAL: Use your harness's task list system (e.g., TaskCreate, TaskUpdate, and TaskList tools) for progress tracking and session recovery. Use these tools throughout execution.

Task Hierarchy

[Main Task] "Create PR: [branch-name]"
  └── [CI Task] "CI Run #1" (status: failed, reason: lint)
      └── [Fix Task] "Fix: lint"
  └── [CI Task] "CI Run #2" (status: failed, reason: test failures)
      └── [Fix Task] "Fix: test failures"
  └── [CI Task] "CI Run #3" (status: passed)

At the start, always call TaskList to check for existing PR tasks. If a "Create PR" task exists with status in_progress, resume using the Session Recovery section below.

Process

Step 1: Assess Current State

Check for a --reviewer argument in the user's message. If present, store the value for use in Step 5. It may be a GitHub handle (@username) or a name (Jane Doe).

Create the main PR task:

TaskCreate:
- subject: "Create PR: [branch-name or 'pending']"
- description: "Create pull request from current changes."
- activeForm: "Checking git status"

TaskUpdate:
- taskId: [pr task ID]
- status: "in_progress"

Determine the base branch and current state:

git status
git diff --stat
# Detect the default branch (main, master, develop, etc.)
gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
git log --oneline <base-branch>..HEAD
gh pr view 2>/dev/null

Determine the starting point:

Read the whole SKILL.md on GitHub

More in Testing