Synthèse automatique
Automatise la préparation d'une pull request depuis une branche de fonctionnalité vers le dépôt upstream, en générant le titre et la description à partir des commits de la branche.
Points forts
- Vérifie les prérequis du workflow fork : branche non-main, remotes upstream et origin présents
- Lance cargo fmt et amende le dernier commit si seules des modifications de formatage subsistent
- Calcule la merge base avec upstream/main pour ne retenir que les commits propres à la branche
- Présente le titre et le corps générés à l'utilisateur avant le push et la création de la PR
Limites
- Suppose un projet Rust avec cargo fmt et une organisation fork avec remotes upstream/origin
- Nécessite que la CLI gh soit installée et authentifiée
- La branche de base est fixée à main et l'amend du dernier commit réécrit l'historique local
À utiliser lorsque votre branche de fonctionnalité est prête et que vous voulez ouvrir une PR formatée et bien décrite contre le dépôt upstream.
À éviter sur la branche main, dans un dépôt sans configuration fork upstream/origin, ou sur un projet non-Rust où cargo fmt n'a pas sa place.
Analyse de sécurité
PrudenceThe skill uses powerful version-control and GitHub CLI operations for a legitimate PR workflow. It does not exfiltrate data or perform destructive system actions, but the automatic commit amendment and remote pushes warrant caution.
- •Executes git and gh CLI commands that push branches and create pull requests, modifying remote repositories.
- •Automatically amends the last commit after running cargo fmt, which rewrites local history.
- •No allowed-tools are declared in the skill metadata despite instructing shell commands.
Exemples
/pr/pr Fix saturation search convergenceOpen a pull request from my current feature branch against upstream and write the description from the commits.name: pr description: Prepare outstanding commits on a feature branch for a pull request to upstream
Prepare a pull request from the current feature branch. This skill collects all commits on the current branch that are ahead of upstream/main, generates a PR title and description summarizing the changes, and creates the PR against upstream.
Arguments
The skill accepts optional arguments:
- No arguments: auto-generate title and description from commits
- A short description: used as the PR title (e.g.,
/pr Add support for TLS client certs)
Example: /pr or /pr Fix saturation search convergence
Steps
-
Verify prerequisites:
- Must NOT be on
mainbranch (should be on a feature branch) - The
upstreamremote must exist - The
originremote must exist
BRANCH=$(git branch --show-current) if [ "$BRANCH" = "main" ]; then echo "Error: Must be on a feature branch, not main" exit 1 fi git remote get-url upstream >/dev/null 2>&1 || { echo "Error: 'upstream' remote not found"; exit 1; } git remote get-url origin >/dev/null 2>&1 || { echo "Error: 'origin' remote not found"; exit 1; } - Must NOT be on
-
Run
cargo fmtand amend the last commit if formatting changes are needed:cargo fmt if [ -n "$(git status --porcelain)" ]; then git add -u git commit --amend --no-edit fiAfter this step, the working directory must be clean. If there are still uncommitted changes (non-formatting), stop and tell the user to commit or stash them first.
-
Sync with upstream:
git fetch upstream git fetch origin -
Identify commits for the PR:
- Find the merge base between the current branch and
upstream/main - List all commits from the merge base to HEAD
- Show the full diff against
upstream/main
MERGE_BASE=$(git merge-base upstream/main HEAD) git log --oneline ${MERGE_BASE}..HEAD git diff ${MERGE_BASE}..HEAD --statIf there are no commits ahead of upstream/main, stop and tell the user there is nothing to submit.
- Find the merge base between the current branch and
-
Generate PR title and description:
- If the user provided a title argument, use that as the PR title
- Otherwise, analyze the commits and diff to generate a concise PR title (under 70 characters)
- Generate the PR body with:
- A
## Summarysection with 1-3 bullet points describing the changes - A
## Changessection listing the commits - A
## Test plansection with a checklist of testing suggestions
- A
Present the title and body to the user for review before creating the PR.
-
Push the feature branch to origin:
BRANCH=$(git branch --show-current) git push -u origin ${BRANCH} -
Create the PR against upstream:
BRANCH=$(git branch --show-current) gh pr create \ --repo "$(git remote get-url upstream | sed 's/.*github.com[:/]\(.*\)\.git/\1/' | sed 's/.*github.com[:/]\(.*\)/\1/')" \ --head "$(git remote get-url origin | sed 's/.*github.com[:/]\(.*\)\.git/\1/' | sed 's/.*github.com[:/]\(.*\)/\1/' | cut -d/ -f1):${BRANCH}" \ --base main \ --title "${PR_TITLE}" \ --body "${PR_BODY}" -
Report the PR URL to the user.
Troubleshooting
- No
upstreamremote: Add it withgit remote add upstream <repo-url> - No
originremote: This is your fork. Add withgit remote add origin <fork-url> - gh CLI not installed:
brew install ghor see https://cli.github.com/ - Not authenticated with gh:
gh auth login - PR already exists: If a PR already exists for this branch, report the existing PR URL instead
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/create-a-pull-request-from-a-feature-branch-mu7w4fqq/download' --output '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md.part' && mv '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md.part' '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md' && test -s '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/pr' && cp -R '.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq' '.claude/skills/pr'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq'openskills read 'create-a-pull-request-from-a-feature-branch-mu7w4fqq'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/create-a-pull-request-from-a-feature-branch-mu7w4fqq/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.