Skip to content
Back to skills

Create Pr

ASecurity

Create a pull request with auto-generated description, issue linking, ROADMAP updates, and PR-metadata validation.

  • 429 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 6, 2026
ai-agentsgobashtestinggit

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add joshukraine/dotfiles --skill create-pr --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create Pr?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Create Pr
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/joshukraine-create-pr/badge)](https://www.skillsdirectory.com/skills/joshukraine-create-pr)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: create-pr
description: Create a pull request with auto-generated description, issue linking, ROADMAP updates, and PR-metadata validation.
---

# Create Pull Request

Create a pull request from the current branch with proper formatting and issue linking.

## Command Options

All flags are optional. By default, the issue number is inferred from the branch name and the PR is created as ready-to-review.

- `--issue N`: Override automatic issue linking with a specific issue number (or comma-separated list: `--issue 123,175`)
- `--skip-issue-link`: Skip issue linking entirely
- `--draft`: Create PR as draft

## Your task

1. **Verify prerequisites**:
   - Confirm current branch is not `main`/`master`
   - Check that branch has commits ahead of base branch
   - Ensure branch is pushed to remote (push if needed)

2. **Generate PR title**:
   - Use branch name as fallback
   - If single commit ahead: use commit message as title
   - If multiple commits: create descriptive title based on branch name and commit themes
   - Follow Conventional Commits format from global CLAUDE.md

3. **Analyze commits for description**:
   - Get commit history: `git log origin/<base-branch>..HEAD --oneline` (use the base branch identified in step 1)
   - Group commits by type (feat, fix, docs, etc.)
   - Identify patterns and overall theme

4. **Create comprehensive description**:
   - **Summary section**: 2-3 bullet points describing what this PR does
   - **Changes section**: Categorized list of changes from commits
   - **Testing section**: How the changes should be tested
   - **Notes section**: Any implementation details or decisions

5. **Update ROADMAP**:
   - Check if the work corresponds to a checkbox item in `docs/prd/ROADMAP.md`
   - If a matching item exists, mark it complete (`[x]`) and commit the change to the branch before creating the PR
   - If no matching item exists, skip this step

6. **Identify and link related issues** (discover → classify → confirm; don't rely on recall):
   - **If `--skip-issue-link`**: skip this step entirely.
   - **Determine the primary issue(s) P:**
     - `--issue N` (accepts a comma-separated list, e.g. `--issue 123,175`) → use directly as Close targets; skip discovery.
     - Otherwise extract from the branch name (`fix/gh-123-...` → P=123). If none can be determined, warn and ask whether to proceed with no linking.
   - **Discover candidates mechanically** (do not depend on having read the issue earlier in the session):
     - Fetch the primary issue's body and comments: `gh issue view P --json number,title,body,comments`
     - Extract every `#<number>` reference from that output.
     - For each referenced issue M, get its state: `gh issue view M --json number,title,state` — drop anything already closed or that is a PR.
   - **Classify each open candidate by the language around the mention:**
     - `closes` / `fixes` / `resolves #M`, or M is an unchecked task-list item this PR completes → **Close** (`Closes #M`)
     - `part of` / `blocked by` / `relates to` / `see` / `parent #M` → **Reference** (`Refs #M`, no closing keyword)
     - ambiguous → default to **Reference** and flag it
   - **Confirm before creating the PR:**
     - Only the primary issue P, no other open candidates → proceed silently with `Closes #P`.
     - More than one candidate, or any ambiguous one → print a short table (issue · title · proposed Close/Ref) and ask for a one-line confirm/override first.
   - **Format:** one keyword per line so GitHub parses them all — `Closes #N` per close target, `Refs #N` per reference.

7. **Create the PR**:
   - Use `gh pr create` with generated title and description
   - Set base branch (usually main/master)
   - **Default to ready** (no `--draft` flag) unless `--draft` flag is explicitly passed

8. **Confirm and validate**:
   - Show PR URL and title
   - Confirm issue linking (e.g., "✅ Linked to issue #123" or "⚠️ No issues linked")
   - **Cross-check linking:** every Close/Ref target identified in step 6 actually appears in the final description. If one is missing, warn before the PR is considered done (guards against silently dropping a second issue).
   - **Validate PR metadata (warn, don't block):** confirm the title follows Conventional Commits and the description contains a closing keyword (`Closes #N`). If either is missing, surface a warning so it can be fixed before review. (These checks previously lived in the retired `/review-pr`.)

## PR Description Template

```markdown
## Summary

- What this PR does
- Key changes made

## Changes

- List of changes from commits

## Testing

- [ ] Tests pass
- [ ] Manual testing done

Closes #123
```

## Example Usage

```bash
# Default: Automatically detects issue from branch name (e.g., fix/gh-123-description)
/create-pr

# Explicit issue linking (when branch name doesn't contain an issue number)
/create-pr --issue 123

# Explicit multi-issue linking (PR closes more than one issue)
/create-pr --issue 123,175

# Skip issue linking entirely
/create-pr --skip-issue-link
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.