Skip to main content

pr

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

Datos de origen

Repositorio
FlorianBruniaux/claude-code-ultimate-guide
Última actividad en el origen
30 de septiembre de 2026 a las 13:41
Idioma detectado de SKILL.md
inglés
Estrellas
6360
Forks
826

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
pr
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)
Ver en GitHub