Synthèse automatique
Crée ou met à jour une pull request GitHub via le CLI `gh`, en commitant les changements en cours, en choisissant la branche de base et en rédigeant un description centrée sur les changements de comportement.
Points forts
- Automatise le flux complet : commit, création de branche selon une convention de nommage, push, puis `gh pr create` ou `gh pr edit`
- Détermine la branche de base en remontant l'historique des commits jusqu'à la plus proche `release/*` ou `master`/`main`, au lieu de supposer `main`
- Respecte le template de PR du dépôt s'il existe et fournit une structure standard sinon
- Rédige le description autour des changements observables de comportement et évite les formulations vagues comme « correctement »
- Réutilise une PR existante liée à la branche au lieu d'en créer une seconde
Limites
- Suppose que `gh` est installé et authentifié, et que le répertoire courant est bien le dépôt cible
- Le nommage de branche impose la présence d'un numéro de ticket en suffixe, ce qui ne convient pas aux dépôts sans suivi de tickets
- Le comportement de la section de nommage des branches est tronqué dans le document fourni, donc les conventions exactes de certains préfixes (ex. correctifs urgents) restent à confirmer
À utiliser lorsqu'un développeur demande de « créer une PR » ou « soumettre une pull request » sur un dépôt GitHub déjà configuré avec `gh`.
À éviter sur des dépôts hébergés ailleurs que sur GitHub, ou lorsque `gh` n'est pas installé et authentifié dans l'environnement.
Analyse de sécurité
PrudenceThe skill is a legitimate PR automation workflow and does not contain destructive, exfiltrating, or obfuscated instructions. However, it uses powerful tools that commit, push, and modify remote GitHub PRs, so it warrants caution rather than being classified safe.
- •Uses powerful git/gh operations that mutate local and remote state: git commit, git push, gh pr create, and gh pr edit.
- •Can commit all uncommitted changes after inspection without explicitly requiring selective staging or a final user confirmation before committing.
- •Can overwrite an existing PR body with generated content; the skill includes a confirmation note only when uncertainty remains, not as a mandatory safeguard.
- •Relies on ambient gh authentication and repository permissions, so its impact depends on the user's credentials.
Exemples
PRを作って。未コミットの変更もまとめてコミットしておいて。release/v1.24.0 上で作業してしまったので、適切なブランチを切って PR を出してください。チケットは DVSPBASE-31415 です。今のブランチの PR の description を、挙動の変化が中心になるように書き直して更新して。name: create-pr description: gh コマンドで GitHub の Pull Request を作成する。未コミット変更のコミット、release/* または master 上での新規ブランチ作成(命名規則つき)、過去のコミット履歴を辿ったマージ先の自動判定、リポジトリの PR テンプレート追従、挙動の変化を中心にした PR description 生成を行う。「PRを作って」「プルリクを出して」等の依頼で利用する。
Create PR スキル
gh コマンドを使って Pull Request を作成する。コードの差分そのものではなく 挙動の変化 を中心に説明する PR を作る。
各ステップは順番に実行する。判断に迷う箇所はユーザーに確認し、勝手に推測で埋めない。
前提
ghCLI がインストール済みで認証済み (gh auth statusで確認できる)- カレントディレクトリが対象の git リポジトリ
手順
1. 現在の状態を把握する
以下を確認する。
git status --porcelain # 未コミット変更の有無
git branch --show-current # 現在のブランチ名
git log --oneline -20 # 直近の履歴
2. 未コミット変更の処理
git status --porcelain に出力がある(=未コミット変更がある)場合:
- 現在のブランチが
release/*またはmaster(およびmain)の場合は、コミット前に新しいブランチを作成する。 後述の「ブランチ命名ルール」に従う。新しいブランチ名を決める際、チケット番号が不明ならステップ3に進む前にユーザーに確認する(推測しない)。 - 変更内容を確認した上でコミットする。コミットメッセージは変更の意図がわかるものにする。
現在のブランチが release/* / master / main 以外なら、ブランチはそのままでコミットだけ行う。
未コミット変更が無い場合はこのステップをスキップする。
3. マージ先(base ブランチ)の判定
以下の順で決定する。
-
コミット履歴を遡って
release/*またはmasterを探す。 現在の HEAD から到達可能なコミットのうち、release/*またはmaster(main)ブランチが指しているものを探し、直近(最も近い祖先)のものを base にする。# HEAD の祖先に含まれる release/* と master/main を、HEAD から近い順に列挙する git for-each-ref --format='%(refname:short)' refs/heads/ refs/remotes/origin/ \ | grep -E '(^|/)(release/|master$|main$)' \ | while read ref; do if git merge-base --is-ancestor "$ref" HEAD 2>/dev/null; then # HEAD から ref までの距離(近いほど小さい) dist=$(git rev-list --count "$ref"..HEAD 2>/dev/null) echo "$dist $ref" fi done | sort -n上記で複数出た場合は
distが最小(最も近い)ものを採用する。1つに定まればそれを base にする。 -
1で定まらない場合は、ユーザーに選んでもらう。 候補となる
release/*およびmaster/mainを列挙し、どれをマージ先にするかユーザーに尋ねる。git for-each-ref --format='%(refname:short)' refs/heads/ refs/remotes/origin/ \ | grep -E '(^|/)(release/|master$|main$)' | sort -u
4. PR テンプレートの確認
リポジトリに PR テンプレートがあればそれに従って本文を組み立てる。以下を確認する。
ls .github/PULL_REQUEST_TEMPLATE.md \
.github/pull_request_template.md \
.github/PULL_REQUEST_TEMPLATE/ \
docs/PULL_REQUEST_TEMPLATE.md \
PULL_REQUEST_TEMPLATE.md 2>/dev/null
テンプレートが存在する場合は、その見出し・セクション構成を維持したまま中身を埋める。テンプレートが無い場合は次節の標準構成で本文を作る。
5. PR description の作成
差分を確認してから本文を書く。
git diff <base>...HEAD # base はステップ3で決めたブランチ
git log <base>..HEAD --oneline
description の方針:
- コードの変更点を逐一説明しない。差分を見ればわかる。挙動の変化 を中心に書く。
- コードについて触れるのは、理解が難しい箇所・注意を払うべきと判断した箇所に限る。
- チェック項目を作る場合は、実際の挙動から観測できる変化 を具体的に書く。コード内部の状態(変数・フラグ等)は通常観測できないので書かない。
- 「正しく」「正常に」など解釈に余地のある言葉は使わない。何がどう変わるかを具体的な事象で書く。
- チケット番号は推測しない。 ブランチ名や明示された情報から判別できない場合はユーザーに尋ねる。
テンプレートが無い場合の標準構成:
## 概要
<このPRで何が変わるか。挙動の変化を1〜3行で>
## 変更による挙動の変化
- <操作Xをすると、これまではAだったが、これからはBになる>
- <画面/コマンド/APIレスポンスなどで観測できる差分を列挙>
## 確認項目
- [ ] <操作手順> を行うと <観測できる結果> になる
- [ ] <別の操作> を行うと <観測できる結果> になる
## 補足
<理解が難しい箇所・注意点があれば。なければ省略>
6. PR の作成または更新
まずブランチを push する。
git push -u origin "$(git branch --show-current)"
次に、現在のブランチに紐づく PR が既に存在するかを確認する。
gh pr view --json number,url,baseRefName,title 2>/dev/null
-
既存 PR がある場合: 新規作成せず、その PR を更新する。本文・タイトルはステップ4・5で作り直したものに差し替える。base を変更する必要があれば
--baseも付ける。gh pr edit \ --title "<タイトル>" \ --body "<上で作成した本文>" # マージ先が変わる場合のみ: --base "<base>"既存の本文をテンプレート構成で上書きしてよいか不安が残る場合(手動で書き加えられた節がある等)は、上書き前にユーザーへ確認する。
-
既存 PR が無い場合: 新規に作成する。
gh pr create \ --base "<base>" \ --title "<タイトル>" \ --body "<上で作成した本文>"
作成・更新後、gh pr view --web の URL を含め、対象の PR をユーザーに伝える。
ブランチ命名ルール
新しいブランチを作るときは以下に従う。チケットが存在する場合は チケット名を末尾につける(-- 区切り)。
| 種別 | プレフィックス | 例 |
|------|---------------|----|
| リリース | release/ | release/v1.23.0 |
| 機能追加 | feature/ | feature/add-user-roles--DVSPBASE-12345 |
| 修正 | fix/ | fix/role-permission-inconsistency--DVSPBASE-23456 |
| 緊急修正 | hotfix/ | hotfix/role-permission-inconsistency |
- 説明部分はケバブケース(小文字・ハイフン区切り)で、変更内容が伝わる短い英語にする。
- チケット番号が不明な場合は 推測せず ユーザーに確認する。確認の結果チケットが無いなら末尾のチケット名は省略する。
やらない
- チケット番号・チケット名の推測(不明ならユーザーに尋ねる)
- マージ先の推測(履歴から1つに定まらなければユーザーに選んでもらう)
- コードの差分を逐一なぞる説明(挙動の変化に集約する)
- 「正しく動く」「正常に処理される」等、観測できない・解釈に幅のある表現
- コード内部状態をチェック項目にすること(観測できる挙動だけを項目にする)
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-github-pull-request-mryiqfw4/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-github-pull-request-mryiqfw4' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/create-github-pull-request-mryiqfw4/download' --output '.skill-downloads/create-github-pull-request-mryiqfw4/SKILL.md.part' && mv '.skill-downloads/create-github-pull-request-mryiqfw4/SKILL.md.part' '.skill-downloads/create-github-pull-request-mryiqfw4/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-github-pull-request-mryiqfw4/SKILL.md' && test -s '.skill-downloads/create-github-pull-request-mryiqfw4/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/create-pr' && cp -R '.skill-downloads/create-github-pull-request-mryiqfw4' '.claude/skills/create-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-github-pull-request-mryiqfw4'openskills read 'create-github-pull-request-mryiqfw4'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-github-pull-request-mryiqfw4/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.