| name | pr |
| description | Crée ou met à jour une PR complète (rebase, push, create/update) |
| allowed-tools | Bash, Read, Edit, Write, Grep |
Crée une Pull Request propre :
-
Vérifie l'état actuel :
git status
CURRENT=$(git branch --show-current)
MAIN=$(git remote show origin | grep 'HEAD branch' | cut -d' ' -f5)
- Si la branche est
main ou master → STOP, on ne crée pas de PR depuis main
-
Vérifie si une PR existe déjà pour cette branche :
gh pr view --json number,title,body,url 2>/dev/null
Retenir le résultat — on en aura besoin à l'étape 8.
-
Si changements non commités (working tree dirty) :
git stash -u
Note : stash uniquement si git status --porcelain retourne des fichiers. Les commits non pushés ne nécessitent PAS de stash.
-
Rebase sur main (NE PAS checkout main — worktrees) :
git fetch origin $MAIN
git rebase origin/$MAIN
Si conflits → les résoudre
-
Si on avait stash :
git stash pop
Si conflits → les résoudre
Puis commit et push (message clair, sans Co-Authored-By)
-
Push la branche :
git push -u origin $CURRENT --force-with-lease
-
Prépare la PR — détecter les conventions du repo :
cat .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null || cat .github/pull_request_template.md 2>/dev/null
gh pr list --state merged --limit 5 --json title,body --jq '.[] | "Title: \(.title)\nBody: \(.body[:200])\n---"'
- Titre : toujours en anglais, clair et concis
- Description : si un template existe, l'utiliser comme structure. Adapter la langue à celle des PR existantes (français si les PR récentes sont en français, anglais sinon)
- PAS de mention de Claude/AI dans la description
- Explique le "quoi" et le "pourquoi"
-
Crée ou met à jour la PR :
-
Affiche le lien de la PR (créée ou mise à jour)