Create Pr

Fandhe-AI/agent-cli-skills/skills/create-pr

作者 Fandhe-AIb8c1f3669cc3eff5079b57ae6da56a42d395e94c無授權條款2 個星標收錄於 2026年10月9日更新於 2026年10月9日儲存庫今天更新

Conventional Commits 形式で GitHub PR を作成する。OWASP Top 10 のセキュリティチェック必須で、問題があれば PR 作成を中止。Summary/Test plan/Design を含む body を生成。「PR 作って」「プルリク」「`gh pr create`」などで使用。別リポジトリ (upstream) への貢献は contribute-skill。

AI 產生的概覽

在強制進行 OWASP Top 10 安全檢查後,以 Conventional Commits 格式建立 GitHub PR。

功能
分析分支變更,執行強制安全檢查(涵蓋驗證授權、硬編碼密鑰、XSS、輸入驗證與 OWASP Top 10),發現問題即中止建立 PR。它也會檢查本 PR 將關閉的 Issue 的 milestone 指派情況,產生 Conventional Commits 標題以及包含 Summary、Test plan、Design 的內文,再用 gh CLI 建立 PR 並回傳連結。建立後會驗證 PR 及其 CI 狀態。
適用情境
適用於希望由代理為目前分支建立 GitHub 拉取請求的情境,例如被要求建立 PR 或執行 gh pr create 時。適合遵循 Conventional Commits 且希望在開 PR 前設置安全關卡的儲存庫。
執行需求
需要安裝並已驗證的 gh CLI、從基礎分支分叉出的目前分支,以及用於 git push 和 gh pr create 的網路存取;相關命令需在停用沙箱的情況下執行。不含指令碼,僅為指示。

create-pr

変更内容を分析してセキュリティチェック後に GitHub PR を作成します。

前提条件

  • gh CLI がインストールされ、認証済みであること
  • 現在のブランチがベースブランチからフォークされていること

フロー

Step 1: 変更内容を分析する

bash
git log main..HEAD --onelinegit diff main...HEAD --stat

ベースブランチはリポジトリの規約に従う(main / develop 等)。

Step 2: セキュリティチェック(必須)

Agent ツールでセキュリティ確認を行う。

確認項目:

  • 認証・認可の実装漏れ
  • API キー・シークレットのハードコーディング
  • XSS の可能性
  • 入力バリデーションの欠如
  • OWASP Top 10

問題が見つかった場合はユーザーに警告し、対処後に PR 作成を再試行するよう案内する。

Step 2.5: Closes 対象 Issue の milestone 確認

この PR で close する予定の Issue(same-repo のみ)を特定し、milestone の割当状況を確認する。

  1. 候補の特定: 作業対象の Issue 番号(会話文脈)・ブランチのコミットメッセージ中の Closes #N / Fixes #N / Resolves #N 参照から候補を挙げる
  2. close 可否の確認: 候補ごとに「この PR で当該 Issue が完了するか」を確認する (部分実装・関連のみの Issue は close 対象にしない。Step 4 の PR body には close 対象のみ Closes #N と記載し、それ以外は Refs #N 等の関連参照にとどめる)
  3. milestone 確認: close 対象と確定した Issue について、以下で割当状況を確認する。 milestone 非運用リポジトリのガード: リポジトリに milestone が 1 件も存在しない場合 (closed 含む)は milestone 非運用リポジトリとみなし、この手順 3 のみ確認・警告なしで スキップして Step 3 へ進む(milestone を使わないリポジトリの PR 作成にノイズを加えない。 手順 1〜2 の close 可否確認は milestone と無関係の安全確認のためスキップしない)
bash
# 非運用ガード: MILESTONE_COUNT が 0 なら手順 3 をスキップして Step 3 へ進むMILESTONE_COUNT=$(gh api "repos/{owner}/{repo}/milestones?state=all" --jq 'length')
if ! [[ "${MILESTONE_COUNT}" =~ ^[0-9]+$ ]]; then  # gh api の失敗等で件数が数値化できない場合は fail-open せず中止して原因を確認する  echo "milestone 件数の取得に失敗した。原因を確認してから手順 3 をやり直す" >&2  exit 1   # fail-closed: 診断だけ出して PR 作成へ進まないelif [ "${MILESTONE_COUNT}" -eq 0 ]; then  echo "milestone 非運用リポジトリのためスキップして Step 3 へ進む"else  # close 対象 Issue の milestone 割当状況を確認する  gh issue view <N> --json milestone --jq '.milestone.title // empty'fi
  • milestone が既に割当済み → 次の Step へ進む
  • 未割当の場合:
    • オープン中の milestone が 1 件のみなら、その milestone を割り当ててよいかユーザーに確認し、 同意が得られたら gh issue edit <N> --milestone <title> で付与する
    • 複数件 or 0 件の場合はユーザーに確認する。どの milestone を使うか決まらない場合は milestone なしのまま Step 3 へ進めてよいが、その旨を PR body に警告として明記する (milestone を必須とする CI ゲートがあるリポジトリではそちらが最終防衛線として 機能する前提とし、本 Step は PR 作成自体をブロックしない)

この PR で close する Issue がない場合はこの Step をスキップする。

Step 3: PR タイトルを生成する

Conventional Commits 形式: type(scope): subject

例:

feat(auth): ソーシャルログイン機能を追加fix(api): レスポンスのエラーハンドリングを修正

Step 4: PR body を生成する

markdown
## Summary
- 変更内容の箇条書き
## Test plan
- [ ] 動作確認手順1- [ ] 動作確認手順2- [ ] エッジケース確認
## Design
- Figma: (あれば記載)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Step 5: PR を作成する

bash
gh pr create \  --base main \  --title "type(scope): subject" \  --body "$(cat <<'EOF'...EOF)"

ユーザーに PR URL を返す。

検証

PR 作成後に以下を確認してから完了を宣言する(対象リポジトリに .claude/rules/verification.md が存在する場合はそちらの5段階ゲートに従う。存在しない場合は次の要点に従う: コマンドを新規実行し、出力全体・終了コードを確認してから完了を宣言する)。「PR を作成したはず」等の推測語での完了主張は禁止。

bash
# PR が作成されたことと CI ステータスを確認するgh pr view <pr-number>gh pr checks <pr-number>

よくある失敗

問題回避策
セキュリティ問題を検出しても PR 作成を続行するStep 2 で問題を発見したら即座に処理を中止し、ユーザーに警告して修正を依頼する
PR URL を返さずに完了するgh pr create の出力から PR URL を取得してユーザーに提示する
Conventional Commits 形式に準拠しないタイトルをつけるtype(scope): subject(72文字以内)の形式を厳守する
Closes 対象 Issue が milestone 未割当のまま PR 作成 → CI で初めて失敗するStep 2.5 で必ず確認する。milestone を決めきれない場合も PR body に警告を残す

注意事項

  • ベースブランチはリポジトリの規約に従う
  • セキュリティ問題が未解決の場合は PR 作成を中止する
  • Step 2.5 の milestone 確認は省略しない(Closes 対象がない場合は Step 2.5 全体を、milestone 非運用リポジトリでは手順 3 のみをスキップ可)
  • Draft PR を作成する場合は --draft フラグを追加する(ユーザーに確認)

sandbox 環境での実行

このスキルはネットワーク越しの GitHub 操作(git push / gh pr create)を必須とする。該当コマンドはコマンド単位で sandbox 無効にして実行する。ネットワーク遮断を解除できない環境では実行できない。

來源與署名

來源:Fandhe-AI/agent-cli-skills位於skills/create-pr提交b8c1f36

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架