Source profileQuality 92/100Review permissions

laurigates/claude-plugins/git-plugin/skills/git-pr/SKILL.md

git-pr

Create pull requests with descriptions, labels, and issue references. Use when user says "create PR", "open pull request", or "submit for review". From pushed branches.

Source repository stars
54
Declared platforms
0
Static risk flags
3
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

Create pull requests with comprehensive descriptions and proper issue linkage.

Best for

  • Use when user says "create PR", "open pull request", or "submit for review".

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/laurigates/claude-plugins --skill "git-plugin/skills/git-pr"
Safe inspection promptEditorial

Inspect the Agent Skill "git-pr" from https://github.com/laurigates/claude-plugins/blob/c056e44b978db58648ad20440dc1515cb09af09d/git-plugin/skills/git-pr/SKILL.md at commit c056e44b978db58648ad20440dc1515cb09af09d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    Before creating the PR, check whether any post-merge follow-up actions are needed (migrations, deployments, config changes, runbook updates). Create a GitHub issue for each and link them in the PR description. See Post-Merge Follow-up Issues.

    Before creating the PR, check whether any post-merge follow-up actions are needed (migrations, deployments, config changes, runbook updates). Create a GitHub issue for each and link them in the PR description. See Post-…Run the data-gathering script. It fetches the base ref, computes the ahead-count against origin/main, probes for an existing PR (via the state field — never merged), scans for stacked dependents, and audits closing keyw…Parse STATUS= and ISSUES: from the output. Read PRREADY (false when AHEADCOUNT=0 — nothing to PR), EXISTINGPR (a number means gh pr view / gh pr edit instead of creating), CURRENTBRANCH, STACKPARENT / DEPENDENTPR= (see…
  2. 02

    When to Use This Skill

    Review the “When to Use This Skill” section in the pinned source before continuing.

    Review and apply the “When to Use This Skill” source section.
  3. 03

    PR Description Format

    Review the “PR Description Format” section in the pinned source before continuing.

    Review and apply the “PR Description Format” source section.
  4. 04

    Standard Template

    Review the “Standard Template” section in the pinned source before continuing.

    Review and apply the “Standard Template” source section.
  5. 05

    Summary

    Brief description of what this PR does.

    Brief description of what this PR does.

Permission review

Static risk signals and limitations

Runs scripts

medium · line 87

The documentation asks the agent to run terminal commands or scripts.

Run the data-gathering script. It fetches the base ref, computes the ahead-count

Runs scripts

medium · line 92

The documentation asks the agent to run terminal commands or scripts.

bash "${CLAUDE_SKILL_DIR}/scripts/git-pr.sh" --home-dir "$HOME" --project-dir "$(pwd)" --base origin/main

Network access

medium · line 106

The documentation includes network, browsing, or remote request actions.

# Fetch latest remote state

Network access

medium · line 130

The documentation includes network, browsing, or remote request actions.

# Returns: https://github.com/org/repo/issues/456

Writes files

medium · line 137

The documentation asks the agent to create, modify, or delete local files.

Write the PR body to a tempfile with the `Write` tool, then pass it via `--body-file`. This sidesteps shell quoting entirely — backticks, code fences, and shell metacharacters are preserved byte-for-byte. See the **Body content** rule in `g

Writes files

medium · line 141

The documentation asks the agent to create, modify, or delete local files.

# 2) gh pr create --body-file

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score92/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars54SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
laurigates/claude-plugins
Skill path
git-plugin/skills/git-pr/SKILL.md
Commit
c056e44b978db58648ad20440dc1515cb09af09d
License
MIT
Collected
2026-08-28
Default branch
main
View the original SKILL.md

Git PR

Create pull requests with comprehensive descriptions and proper issue linkage.

When to Use This Skill

Use this skill when...Use the alternative when...
Opening a PR from a pushed branch with description, labels, and issue refsUse github-pr-title if you only need to author or fix the conventional title
Selecting a base branch, draft mode, or reviewers as part of PR creationUse git-push first if the branch has not been pushed to remote yet
Going from a pushed branch to an open pull requestUse git-commit first if there are uncommitted changes locally
Inserting Fixes #N / Closes #N issue references into the PR bodyUse git-commit-push-pr for the consolidated commit + push + PR macro

PR Description Format

Standard Template

## Summary
Brief description of what this PR does.

## Motivation
Why this change is needed. Link to issue if applicable.

## Changes
- Key change 1
- Key change 2
- Key change 3

## Pre-merge Checklist
- [ ] Tests pass locally
- [ ] Code reviewed
- [ ] Documentation updated (if needed)

## Follow-up Issues
<!-- Post-merge actions tracked as separate issues so they survive PR closure -->
- Closes #456 after merge: database migration for new schema
- Refs #457: update deployment runbook

## Related Issues
Fixes #123
Related: #124, #125

Section Guidelines

SectionPurposeRequired
SummaryWhat the PR does (1-2 sentences)Yes
MotivationWhy this change is neededYes
ChangesKey changes as bullet pointsYes
Pre-merge ChecklistActions before merge only — never post-merge stepsIf applicable
Follow-up IssuesLinks to issues tracking post-merge actionsIf post-merge work exists
Related IssuesIssue links at bottomYes

Issue Linking Syntax

Place at the bottom of the PR description:

## Related Issues
Fixes #123              <!-- Auto-closes on merge -->
Closes #456             <!-- Auto-closes on merge -->
Resolves #789           <!-- Auto-closes on merge -->
Related: #124, #125     <!-- Links without closing -->

Rules:

  • Use Fixes, Closes, or Resolves for issues this PR solves
  • Use Related: for issues that are related but not solved
  • Follow-up work should be created as new issues, not left in checklist

Do NOT use markdown tables to track linked issues. GitHub's auto-close machinery only fires on Fixes #N / Closes #N / Resolves #N keywords in the PR body or commits. A | Issue | Status | table is decorative — linked issues will not auto-close on merge, even if every row says "fixed". Always include the closing keyword as a bare line at the bottom of the body (or in a commit message).

Workflow

Before creating the PR, check whether any post-merge follow-up actions are needed (migrations, deployments, config changes, runbook updates). Create a GitHub issue for each and link them in the PR description. See Post-Merge Follow-up Issues.

1. Assess PR Readiness

Run the data-gathering script. It fetches the base ref, computes the ahead-count against origin/main, probes for an existing PR (via the state field — never merged), scans for stacked dependents, and audits closing keywords:

bash "${CLAUDE_SKILL_DIR}/scripts/git-pr.sh" --home-dir "$HOME" --project-dir "$(pwd)" --base origin/main

Parse STATUS= and ISSUES: from the output. Read PR_READY (false when AHEAD_COUNT=0 — nothing to PR), EXISTING_PR (a number means gh pr view / gh pr edit instead of creating), CURRENT_BRANCH, STACK_PARENT / DEPENDENT_PR=<n> (see Stacked PRs below), and BODY_NOT_AUTOCLOSING (see Step 5). Authoring the PR body remains your job.

2. Analyze Commits

CRITICAL: Always compare against origin/main (not local main) to avoid including commits that haven't been merged to the remote. Local main may be ahead of origin/main with unrelated commits.

# Fetch latest remote state
git fetch origin main

# Always use origin/main as base reference
base_ref="origin/main"

git log $base_ref..HEAD --format='%H %s'

# Extract issue references
git log $base_ref..HEAD --format='%B' | grep -oE '#[0-9]+' | sort -u

# Get diff stats
git diff $base_ref...HEAD --stat

3. Identify Post-Merge Follow-ups and Create Issues

Before creating the PR, scan for any actions required after the PR is merged (deployments, migrations, config changes, external docs). For each:

# Create a follow-up issue
gh issue create \
  --title "[Chore] DB: Run migration for new schema" \
  --body "Follow-up to PR that adds user_preferences.\n\nRun: rake db:migrate in production after deploy."
# Returns: https://github.com/org/repo/issues/456

Keep a list of created issue numbers to link in the PR body.

4. Create PR

Write the PR body to a tempfile with the Write tool, then pass it via --body-file. This sidesteps shell quoting entirely — backticks, code fences, and shell metacharacters are preserved byte-for-byte. See the Body content rule in github-issue-writing for the canonical guidance and the threshold for when bare --body "..." is still acceptable.

# 1) Write tool → /tmp/pr-body.md (no shell escaping involved)
# 2) gh pr create --body-file
gh pr create \
  --title "feat(scope): add feature" \
  --body-file /tmp/pr-body.md

For a short body you can skip the tempfile and stream it over stdin with --body-file - and a quoted heredoc:

gh pr create --title "feat(scope): add feature" --body-file - <<'EOF'
## Summary
Use `code`, ${vars}, and $shell syntax freely — they render verbatim.
EOF

Inside <<'EOF' (quoted delimiter), backticks, $, and \ are already literal — never backslash-escape them. A reflexive \`` survives into the rendered PR description and needs a follow-up gh pr edit --body-fileto clean up. (TheWritetool →--body-file` path above sidesteps the question entirely and stays the default for non-trivial bodies.)

Body content of /tmp/pr-body.md:

## Summary
Brief description of what this PR does.

## Motivation
Why this change is needed.

## Changes
- Change 1
- Change 2

## Pre-merge Checklist
- [ ] Tests pass locally
- [ ] Code reviewed

## Follow-up Issues
- #456: run database migration after deploy
- #457: update production config

## Related Issues
Fixes #123
Related: #456

5. Verify Closing Keywords

After the PR is created, audit the body: every issue referenced by number must have a matching Fixes / Closes / Resolves keyword. Issues mentioned only in a markdown table or prose will not auto-close on merge.

Re-run the data-gathering script against the just-created PR's body (write it to a tempfile first, or pass the fetched body) — it emits BODY_REFERENCED, BODY_CLOSING, and BODY_NOT_AUTOCLOSING:

gh pr view --json body --jq .body > /tmp/pr-body-check.md
bash "${CLAUDE_SKILL_DIR}/scripts/git-pr.sh" --home-dir "$HOME" --project-dir "$(pwd)" --body-file /tmp/pr-body-check.md

If BODY_NOT_AUTOCLOSING is non-empty, edit the PR body with gh pr edit <num> --body-file ... to add Fixes #N / Closes #N lines for any issue this PR is meant to close. Related: #N is correct for issues the PR references but does not close — those should not appear in the warning if you re-run the check.

PR Title Format

Use conventional commits format (see github-pr-title skill):

<type>(<scope>): <subject>

Examples:

  • feat(auth): add OAuth2 support
  • fix(api): handle null response
  • docs(readme): update installation

PR Options

OptionCommand
Draftgh pr create --draft
Labelsgh pr create --label "enhancement"
Reviewersgh pr create --reviewer user1,user2
Base branchgh pr create --base develop
Assigneegh pr create --assignee @me

Main-Branch Development

When on main, push to remote feature branch:

# Push main to remote feature branch
git push origin main:feat/feature-name

# Create PR with --head
gh pr create --head feat/feature-name --base main --title "..." --body-file /tmp/pr-body.md

Stacked PRs

When merging a PR whose head branch is the base of one or more open downstream PRs, deleting the head branch on merge will close every dependent PR. gh pr merge --delete-branch and the matching UI checkbox both delete the head branch — safe for leaf PRs, destructive for stack parents.

Pre-merge check

The data-gathering script (Step 1) already scanned for open PRs targeting the current branch as their base — read STACK_PARENT and the DEPENDENT_PR=<n> HEAD=<branch> lines from its output. If STACK_PARENT=true, this PR is the parent of a stack. To re-probe on demand:

bash "${CLAUDE_SKILL_DIR}/scripts/git-pr.sh" --home-dir "$HOME" --project-dir "$(pwd)" --base origin/main

Merge rules for stacked PRs

SituationMerge command
No dependents (leaf PR)gh pr merge --squash --delete-branch (default)
Has dependentsgh pr merge --squashomit --delete-branch
Has dependents, want to clean upRe-target dependents first (see below), then merge with --delete-branch

Re-targeting dependents

Before merging the parent, point each dependent at the parent's base so they don't auto-close when the parent's branch disappears:

# For each dependent PR returned above:
gh pr edit <dep-pr-num> --base "$(gh pr view --json baseRefName --jq .baseRefName)"

Once every dependent has been re-targeted (or you have explicitly chosen not to), it is safe to merge the parent with --delete-branch.

After a squash-merge: rebase dependents off the squashed commits

Re-targeting alone keeps the dependent open, but its diff is still wrong. When the parent is squash-merged (the release-please / conventional-commit default), its commits collapse into one new commit on the base with a fresh SHA — so a re-targeted dependent still carries the parent's original commits in its history and now double-counts the parent's work. Drop them by replaying only the dependent's own commits onto the updated base:

git fetch origin
git rebase --onto origin/main <old-parent-tip> <dependent-branch>
git push --force-with-lease origin <dependent-branch>
git log --oneline origin/main..HEAD   # verify: only the dependent's own commits

Capture <old-parent-tip> with git rev-parse <parent-branch> before merging the parent (the branch is deleted on merge, so grab the SHA first). A merge-merged parent keeps its patch-ids, so a plain git rebase origin/main auto-skips the duplicates instead — but squash is the common default, so assume the --onto form. If the dependent and the parent edited the same lines, expect a conflict here: resolve it once and let git rerere replay it across this and any sibling dependent (see the git-conflicts skill).

Stacked PRs get no CI until retargeted

CI configured with on: pull_request: branches: [main] only runs for PRs targeting main. A dependent PR based on a feature branch therefore shows no checks at all until it is re-targeted — its pre-merge verification falls to a local build/test run in the meantime. Retarget early (or verify locally); don't wait on a green check that will never appear while the PR's base is a feature branch.

Pre-merge Checklist Guidelines

Include only actions before merging:

  • Tests pass locally
  • Code reviewed
  • Documentation updated
  • Breaking changes documented

Do NOT include post-merge steps in the checklist. PR descriptions are closed and buried after merge — checklists embedded there are easily missed. Post-merge actions must be tracked as GitHub issues.

Post-Merge Follow-up Issues

When a PR requires actions after it is merged, create a separate GitHub issue for each follow-up. Link all follow-up issues in the PR description under a Follow-up Issues section.

Why issues, not PR checklists: Once a PR is merged and closed, its description is rarely revisited. A GitHub issue stays open and assignable until explicitly closed, ensuring the follow-up is not lost.

Common post-merge follow-up types

TypeExample follow-up issue title
Database migration[Chore] DB: Run schema migration for user_preferences table
Deployment[Chore] Ops: Deploy feature-flag config to production
Manual configuration[Chore] Config: Enable new OAuth provider in admin panel
External documentation[Docs] Wiki: Update runbook for new deploy process
Communication[Chore] Comms: Announce deprecation of /v1 API to customers
Dependent PR[Feature] Next: Implement follow-on X after Y lands

Workflow

  1. Identify post-merge actions from commit messages, PR body, or conversation context.
  2. Create an issue for each follow-up:
    gh issue create \
      --title "[Chore] DB: Run migration for new schema" \
      --body "After #42 merges, run: \`rake db:migrate\` in production.\n\nSee PR #42 for context." \
      --label "chore"
    
  3. Link the newly created issues in the PR description:
    gh pr edit <pr-number> --body "$(gh pr view <pr-number> --json body -q '.body')
    
    ## Follow-up Issues
    - #<issue-num>: run database migration
    - #<issue-num>: update deployment runbook"
    
  4. Do NOT add post-merge steps to the Pre-merge Checklist.

Example: PR description with follow-up issues

## Follow-up Issues
<!-- These issues track post-merge work and will stay open until completed -->
- #456: run database migration for user_preferences table
- #457: update production feature-flag config

Output

On success, report:

Created PR #42: feat(auth): add OAuth2 support
URL: https://github.com/org/repo/pull/42

Related Issues:
  Fixes #123
  Related: #456

Status: Open

Error Handling

ErrorSolution
Branch not pushedPush first or use main-branch pattern
PR existsgh pr view or gh pr edit
No commitsCommit changes first

Quick Reference

ActionCommand
Create PRgh pr create --title "..." --body-file /tmp/pr-body.md
Draft PRgh pr create --draft
View PRgh pr view
Edit PRgh pr edit --title "..." --body-file /tmp/pr-body.md
List PRsgh pr list
Check statusgh pr checks
Verify closing keywordsgh pr view <num> --json body --jq .body | grep -oiE '(closes|fixes|resolves)[[:space:]]+#[0-9]+'
Check for stacked dependentsgh pr list --base <head> --state open --json number,title
Merge stacked parentgh pr merge --squash (omit --delete-branch)
Create follow-up issuegh issue create --title "[Chore] ..." --body-file /tmp/issue-body.md

Agentic Optimizations

ContextCommand
PR readinessgh pr view --json number,state 2>/dev/null
Commitsgit log origin/main..HEAD --format='%s'
Issue refsgit log origin/main..HEAD --format='%B' | grep -oE '#[0-9]+'
Verify auto-closegh pr view <num> --json body --jq .body | grep -oiE '(closes|fixes|resolves)[[:space:]]+#[0-9]+'
Stacked-PR safety checkgh pr list --base <head> --state open --json number,title,headRefName
Create follow-up issuegh issue create --title "[Chore] ..." --body-file /tmp/follow-up.md
Create PRgh pr create --title "..." --body-file /tmp/pr-body.md

Frequently asked questions

What to verify before installation and use

What does the git-pr source document cover?

Create pull requests with comprehensive descriptions and proper issue linkage.

How do I install git-pr?

The source record exposes this install command: npx skills add https://github.com/laurigates/claude-plugins --skill "git-plugin/skills/git-pr". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged exec-script, network, write-files in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 9861

magnus919/agent-skills

software-architecture-analysis

Use this skill to reverse-engineer an existing software system, map its architecture, data flow, privacy posture, coupling, quality characteristics, and feature surface, then produce an evidence-grounded clean-room design document, PRD, or migration plan under new constraints. Use for codebase archaeology, implicit contract extraction, architecture health assessment, or decomposition-readiness analysis. Do not use for greenfield architecture design, direct code review, bug hunting, security audi

Computed 9721

VincentChuWaiChow/vanguard-frontier-agentic

salesforce-apex-log-analyzer-skill

Retrieves and analyzes Apex debug logs from a connected Salesforce org to identify governor-limit hits, SOQL N+1 patterns, unhandled exceptions, and async job failures. T1 read-only runtime — retrieves logs only, never executes code or mutates data. TRIGGER when: user asks to analyze an Apex log, debug a trigger failure, diagnose a governor limit hit, interpret a stack trace from a Salesforce org, or review a DEBUG log for performance issues. Trigger phrases: analyze apex log, debug this trigger

Computed 9691,908

ruvnet/RuView

github-code-review

Comprehensive GitHub code review with AI-powered swarm coordination

Computed 955,277

dotnet/skills

grade-tests

Grade specified test methods individually and produce a concise PR-ready table with each fully qualified test name, an A-F grade, score band, and one-line note. USE FOR per-test feedback on a curated list such as new or modified tests in a pull request, not a suite-wide audit. Polyglot: .NET, Python, TS/JS, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, C++. Inputs may be test methods, method bodies, or file-and-line spans. DO NOT USE FOR: full suite audits (use test-quality-auditor agent or t