AgentSkillsCN

pull-request

分析当前分支的变更内容,以日语撰写 PR。适用于被委托创建 PR 或发起 Pull Request 时。

SKILL.md
--- frontmatter
name: pull-request
description: 現在のブランチの変更内容を分析し、日本語でPRを作成する。PR作成やプルリクエストを依頼された際に使用。

現在のブランチの変更内容を分析し、日本語でPRを作成してください。

手順

Step 1: 状態確認

  1. git status で未コミットの変更がないか確認(あればコミットを促す)
  2. git log --oneline main..HEAD でブランチの全コミットを確認
  3. git diff main...HEAD --stat でmainとの差分の概要を確認
  4. コミットが0件の場合はその旨を伝えて終了

Step 1.5: 差分が大きい場合の対策

git diff main...HEAD --stat の結果、変更ファイルが10個以上または差分が500行以上の場合は、コンテキストの圧迫を避けるため以下の方法で差分を確認する:

  • git diff main...HEAD の全文を一度に読まず、--stat とコミットメッセージから全体像を把握する
  • 必要に応じてファイル単位で git diff main...HEAD -- <path> を使い、重要な変更のみ詳細を確認する
  • 各コミットメッセージ(git log main..HEAD --format="%h %s")を主な情報源として活用する

差分が小さい場合は git diff main...HEAD で全体を確認して問題ない。

Step 2: 秘密情報の検出(PR作成前に必ず実行)

git diff main...HEAD に以下が含まれていないか検査する。1つでも検出した場合はPR作成を中断し、該当箇所をユーザーに報告する:

  • APIキー・トークンのパターン(sk-, ghp_, AKIA, 32文字以上の英数字文字列など)
  • ハードコードされた秘密情報(パスワード、接続文字列など)
  • .env ファイルの追加・変更

Step 3: 関連issueの確認

gh issue list や現在のブランチ名から関連issueを推測する。関連issueが見つかった場合はbodyに含める。見つからない場合はユーザーに確認する(なければスキップ可)。

Step 4: 破壊的変更の検出

差分に以下のような破壊的変更が含まれていないか確認する:

  • APIエンドポイントの削除・パス変更
  • リクエスト/レスポンスのフィールド削除・型変更
  • 公開インターフェース・構造体のシグネチャ変更
  • DB マイグレーション(カラム削除・型変更)
  • 環境変数の追加・削除・リネーム

破壊的変更がある場合はbodyの「破壊的変更」セクションに記載する。

Step 5: PRタイトルとbodyの生成

全コミットと差分を分析し、以下の形式でPR内容を生成する:

タイトル:

  • 70文字以内
  • プレフィックスは英語の慣例に従う: feat:, fix:, docs:, refactor:, test:, chore:, ci:
  • 形式: <prefix>: <日本語の説明>

body:

text
## 概要
<PRの内容と理由の簡潔な説明(1-3文)>

## 変更内容
- <主な変更点の箇条書き>

## 破壊的変更
- <破壊的変更がある場合のみ記載。影響範囲と移行方法を明記する>

## 関連issue
- closes #<issue番号>(または refs #<issue番号>)

## テスト
- <変更のテスト方法(ユニットテスト、手動テスト等)>

## レビューポイント
- <レビュアーが注目すべき観点(任意、必要な場合のみ)>
  • 「破壊的変更」セクションは該当がなければ省略する
  • 「関連issue」セクションは該当がなければ省略する
  • 「レビューポイント」セクションは必要な場合のみ記載する

Step 6: 通常PRかドラフトPRかの確認

ユーザーに通常のPRとドラフトPRのどちらで作成するかを確認する。以下の場合はドラフトPRを提案する:

  • WIP(作業途中)のブランチである
  • コミットメッセージに wipWIP が含まれる
  • ユーザーがレビュー前に確認したい旨を伝えている

Step 7: 内容の確認

生成したPRタイトルとbodyをユーザーに表示し、確認を得る。

Step 8: PR作成

ユーザーの承認後、以下を実行する:

  1. リモートにブランチをpush(未pushの場合)
  2. gh pr create でPRを作成(ドラフトの場合は --draft フラグを付与)
  3. 作成されたPRのURLを表示

注意事項

  • ベースブランチは main をデフォルトとする(ユーザーが別途指定した場合はそれに従う)
  • 未コミットの変更がある場合はPR作成前にコミットを促す
  • 必ずユーザーの確認を取ってからPRを作成する