Installable skillMIT

Create pull request

Analyze changes, detect scope issues, and create a well-structured PR

BY FlorianBruniauxUPDATED Oct 28, 2026
INTENDED FOR✳Claude CodeInstall in a listed agent.

instructions.md

---
name: pr-dea9d22e49ca
description: Analyze changes, detect scope issues, and create a well-structured PR
argument-hint: "[--base <branch>] [--draft]"
effort: medium
when_to_use: "Use when ready to open a PR: analyzes changes and drafts the PR description."
disable-model-invocation: true
---

# Create pull request

Analyze changes, detect scope issues, and create a well-structured PR following project conventions.

## Process

1. **Analyze Changes**: Calculate complexity score from files, commits, and directories
2. **Detect Scope Issues**: Warn if PR is too large or mixes unrelated changes
3. **Suggest Split**: If needed, group commits by scope and propose separate PRs
4. **Collect Info**: Ask for type, target branch, draft status, labels
5. **Generate Content**: Create TLDR + description + checklist
6. **Create PR**: Execute `gh pr create` with proper formatting
7. **Remind Follow-up**: Display post-PR checklist (SonarQube, Claude Review)

## Complexity score

Calculate PR complexity to detect if split is needed:

| Criterion | Weight | Description |
|-----------|--------|-------------|
| Code files | x2 | `*.ts, *.tsx` (excluding tests) |
| Test files | x0.5 | `*.test.ts, *.spec.ts` |
| Config files | x1 | `*.json, *.yml, *.md` |
| Directories | x3 | Distinct `src/*` directories |
| Commits | x1 | Number of commits |

**Thresholds**: 0-15 ✅ Normal | 16-25 ⚠️ Large | 26+ 🔴 Split recommended

## Scope coherence

| Pattern | Verdict |
|---------|---------|
| Single scope | ✅ OK |
| Related scopes (sessions + calendar) | ✅ OK |
| Unrelated scopes (payments + auth) | 🔴 Split |
| feat + fix same scope | ✅ OK |
| feat + fix different scopes | 🔴 Split |

## Split suggestion format

When split is recommended, display:

```
🔴 Scope trop large (score: 32)

Commits par scope :
├── payments (5 commits, 8 fichiers)
│   ├── feat(payments): add Stripe checkout
│   └── fix(payments): handle currency
│
└── notifications (3 commits, 6 fichiers)
    └── feat(notifications): add email templates

💡 Suggestion :
1. PR #1 : feature/payments-stripe → Commits payments
2. PR #2 : feature/notifications → Commits notifications

Options :
[A] Continuer avec une seule PR (non recommandé)
[B] Découper (semi-auto - commandes git fournies)
[C] Voir détail fichiers
```

**Semi-auto split** provides copy-paste commands:
```bash
git checkout develop
git checkout -b feature/payments-stripe
git cherry-pick abc1234 def5678
git push -u origin feature/payments-stripe
```

## Questions to ask

1. **Type**: feature | fix | tech | docs | security
2. **Target Branch**: Show recent branches (develop, main, others)
3. **Draft**: Yes (WIP) | No (ready for review)
4. **Labels**: Based on type + optional (breaking-change, security)

## PR title format

```
<type>(<scope>): <description>
```

Examples:
- `feat(payments): add Stripe checkout integration`
- `fix(sessions): resolve timezone calculation bug`

## PR body template

```markdown
## TLDR
<!-- 2 lines max - Executive summary -->

---

## Type
{Feature | Fix | Tech | Docs | Security}

## Description
{Context and changes}

## Technical Changes
{List of main modifications}

## Tests
- [ ] Unit tests added/passing
- [ ] Manual testing completed

## Checklist
- [ ] Code follows conventions
- [ ] No console.log left
- [ ] Types OK (`pnpm typecheck`)

---

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
```

## Available labels

| Label | Color | Use When |
|-------|-------|----------|
| `feature` | 🟢 | New functionality |
| `fix` | 🔴 | Bug fix |
| `tech` | 🔵 | Refactoring, tech debt |
| `docs` | 📘 | Documentation only |
| `security` | 🟣 | Security fix |
| `breaking-change` | ⚫ | Breaking changes |
| `WIP` | 🟡 | Work in progress (draft) |

## Commands to execute

```bash
# 1. Get base branch (usually develop)
BASE_BRANCH="develop"

# 2. Calculate complexity score
CODE=$(git diff --name-only $BASE_BRANCH..HEAD | grep -E '\.(ts|tsx)$' | grep -v test | wc -l)
TESTS=$(git diff --name-only $BASE_BRANCH..HEAD | grep -E '\.test\.|\.spec\.' | wc -l)
DIRS=$(git diff --name-only $BASE_BRANCH..HEAD | cut -d'/' -f1-2 | sort -u | wc -l)
COMMITS=$(git rev-list --count $BASE_BRANCH..HEAD)
SCORE=$((CODE * 2 + TESTS / 2 + DIRS * 3 + COMMITS))

# 3. Get scopes from commits
git log --oneline $BASE_BRANCH..HEAD --format="%s" | sed -n 's/^\w*(\([^)]*\)).*/\1/p' | sort | uniq -c

# 4. Recent branches for selection
git branch --sort=-committerdate --format='%(refname:short)' | head -5

# 5. Create PR
gh pr create \
  --title "<type>(<scope>): <description>" \
  --body "$BODY" \
  --base $BASE_BRANCH \
  --label "<label>" \
  --draft  # if WIP
```

## Post-PR output

After PR creation, ALWAYS display:

```
✅ PR créée : https://github.com/org/repo/pull/XXX

📋 Prochaines étapes automatiques :
   • SonarQube analysera la qualité du code (bugs, vulnérabilités, code smells)
   • Claude Code Review fournira un feedback IA sur votre PR

⏳ Pensez à surveiller ces analyses dans les prochaines minutes.
   Si des problèmes sont détectés, corrigez-les avant de demander une review humaine.
```

## Edge cases

| Situation | Behavior |
|-----------|----------|
| No scope in commits | Analyze by directories |
| Non-conventional commits | Warn + ask type manually |
| No commits (same as base) | Error: "Aucun changement" |
| Single commit | Use commit message as title |
| Merge commits | Ignore (`--no-merges`) |

## Usage

```
/pr
/pr --base main
/pr --draft
```

Target: $ARGUMENTS (optional: --base, --draft)
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.