| name | create-draft-pr |
| description | Facilitating the creation of Draft Pull Requests on GitHub using the GitHub CLI (gh). This skill guides the collection of branch diffs, issue context via GraphQL, and the generation of structured PR titles and bodies in Japanese. Mandatory when the current task is ready for review as a draft to ensure all necessary context and issue links are included. |
-
情報収集と分析
あなたが以下の情報を自動的に収集・分析する。
以下のコマンドリストは、修正や最適化を行わず、文字列として完全に一致する状態で実行すること。別コマンドへの置換は禁止する。
セキュリティエラーが発生するので && などでコマンドを接続することは禁止する。
- 現在のブランチ名: !{git rev-parse --abbrev-ref HEAD}
- mainからの差分コミット: !{git log main..HEAD --oneline --pretty=format:"%h - %s"}
- リモートURL: !{git remote get-url origin}
- PRテンプレート: !{cat "$(git rev-parse --show-toplevel)/.github/pull_request_template.md"}
- GitHub CLI確認: !{gh version}
- チケット番号: !{git rev-parse --abbrev-ref HEAD | grep -oE '^[0-9]+'}
- Actual Code Changes (Diff) ノイズを除外し、本質的な変更差分のみを取得する: !{git diff main..HEAD -- . ':(exclude)package-lock.json' ':(exclude)yarn.lock' ':(exclude)*.lock'}
-
Issueの確認 (GraphQL-Scalpel)
チケット番号が存在する場合、Issueの内容を確認するため、必ず以下の GraphQL-Scalpel プロトコルを使用して情報を取得すること。
- 情報取得:
gh api graphql -f query='query($owner: String!, $name: String!, $num: Int!) { repository(owner: $owner, name: $name) { issue(number: $num) { title body } } }' -f owner='naoyukik' -f name='emeditor-terminal' -F num=TICKET_NUMBER を実行し、背景情報を抽出する。
-
推論と構築 (Reasoning)
取得した情報を以下の優先順位で統合し、PRの内容を構築せよ。
- Diff情報: 実際のコード変更が最優先。「何をしたか」の事実とする。
- Issue情報: 「なぜそれをしたか」の背景情報として利用する。
- Commit情報: 作業の流れを補足する情報として利用する。
-
PR内容の生成
分析結果に基づき、以下の項目を生成する。
- PRタイトル: 変更内容の要点を的確に表現したタイトルを生成する。
- PR本文: 読み込んだテンプレートに基づき、変更の概要、背景、詳細などを具体的に記述する。テンプレートがない場合は適当に作る。
- Issue連携: 関連するIssueを自動的に閉じるため、本文内に必ず
Closes #チケット番号 の形式で記述を含めること。
- チケット番号の頭には
# を付与する。
-
コマンド生成と実行
GitHub CLI (gh) を使用して Draft PR を作成する。
--draft: Draft PRとして作成する。
--title: 生成したPRタイトルを設定する。
--body: 生成したPR本文を設定する。
--base: ベースブランチは常にmainとする。
--head: 自動取得した現在のブランチ名を設定する。
--assignee: "@me" を設定する。
a. GitHub CLI (gh) を使用する:
run_shell_command を使用し、上記の仕様で gh pr create を実行する。
- 注意: 引数のパース精度を優先するため、
cmd /c を介さず直接実行すること。
b. いずれも使用できない場合:
- 実行すべき
gh pr create コマンドとその引数をテキストとして出力する。
6.結果報告
PRが正常に作成されたことをユーザーに報告する。