pr-description-writer について
現在の Git ブランチの差分から GitHub のプルリクエスト説明文を作成し、PR の作成や更新も行う開発者向けスキルです。指定フォーマットに従い、環境や既存 PR、説明文の品質を確認します。
主な機能
- 01ブランチ差分とコミット情報の収集
- 02GitHub CLI の認証とブランチ状態の確認
- 03指定された PR 形式ガイドへの準拠
- 04GitHub CLI による PR の作成・更新
- 05変更項目の具体性と追跡可能性の確認
活用シーン
- 01機能ブランチの PR 説明文の作成
- 02既存 PR の本文の更新
- 03手動出力用の差分ベース説明文の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ varnan-tech/ opendirectory --skill pr-description-writerインストール後、Claude Code で/pr-description-writerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdevals/evals.jsonreferences/pr-format-guide.md詳細
PR 説明文の作成
現在のブランチの差分を読み取り、GitHub プルリクエストの説明文を作成します。1 つのコマンドで PR を作成または更新します。
文体
生成するすべての PR 説明文に適用します。
- 能動態を使います。「X を追加します」とし、「X が追加されました」とはしません。
- 要約には現在形を使います(「キャッシュ層を追加します」)。背景には過去形を使います(「以前の方法ではレンダリングごとに N 件のリクエストが発生していました」)。
- 短い文にし、箇条書き 1 つにつき 1 つの内容にします。
- ダッシュは使わず、読点または句点を使います。
- 「この PR」「このコミット」「議論に従って」などの埋め草は使いません。
- 一般論より具体的な内容を優先します。「パフォーマンスを改善します」より「p95 レイテンシを 800ms から 90ms に短縮します」とします。
ステップ 1:セットアップを確認する
gh が認証済みであることを確認します。
gh auth status
認証されていない場合は、gh auth login を実行して、プロンプトに従います。
現在のディレクトリが Git リポジトリで、アクティブなブランチがあることを確認します。
git branch --show-current
HEAD が切り離されている場合、またはブランチがない場合は、停止して、説明するブランチをユーザーに確認します。
ステップ 2:差分のコンテキストを収集する
コンテキストを把握するため、次の 3 つのコマンドをすべて実行します。
ファイルの概要(何が変更されたか):
git diff main...HEAD --stat
コミットメッセージ(なぜ変更されたか):
git log main...HEAD --oneline
完全な差分(どのように変更されたか):
まず origin/main を使い(常に最新の状態です)、次にローカルの main、最後に master を使います。
if git rev-parse origin/main &>/dev/null 2>&1; then
BASE=origin/main
elif git rev-parse main &>/dev/null 2>&1; then
BASE=main
else
BASE=master
fi
git diff $BASE...HEAD
差分が非常に大きい場合(500 行超)は、--stat の概要とコミットメッセージだけを読みます。また、出力全体を処理せずに主な変更を理解できるよう、差分の最初の 200 行も読みます。
既存の PR があるかどうかを確認し、現在のタイトルと本文を読みます。
gh pr view --json title,body,baseRefName 2>/dev/null
ステップ 3:フォーマットガイドを読む
何かを書く前に、references/pr-format-guide.md を最後まで読みます。次の内容を把握します。
- 必須セクションとその順序
- 各セクションの書き方
- 含める内容と省く内容
- テストセクションの形式
ステップ 4:説明文を作成する
references/pr-format-guide.md の形式に沿って PR の説明文を作成します。
ルール:
- Changes セクションの各箇条書きは、差分の内容に対応させます。
- コード変更から示唆されないテスト手順を作りません。
- 関連する内容がないセクションは、完全に省略します(「該当なし」と書いたり、空欄にしたりしません)。
- スクリーンショットセクションは、差分に画面上で確認できる UI の変更がある場合にのみ含めます。
- コミットメッセージで「なぜ」が説明されている場合は、その背景を Summary に反映します。
QA チェックポイント: 提示する前に、次の点を確認します。
- Summary は 1~2 文で、能動態で書かれ、埋め草がない
- 変更点の各箇条書きは具体的で、差分の内容に対応している
- 発明した指標や結果がない
- テスト手順が実行可能である(誰でも手順に従える)
- どの行にもダッシュを使っていない
ステップ 5:PR を作成または更新する
説明文をユーザーに提示し、「PR を作成する、既存の PR を更新する、それとも出力のみですか?」と尋ねます。
新しい PR を作成する:
バッククォート、引用符、改行を安全に扱えるよう、標準入力から本文を渡します。
gh pr create --title "TITLE_HERE" --body-file - << 'EOF'
BODY_HERE
EOF
コミットメッセージと差分の概要に基づいてタイトルを提案します。タイトルは命令形で 72 文字未満にします。「Redis caching for user session lookups を追加する」とし、「キャッシュを追加しました」とはしません。
既存の PR を更新する:
gh pr edit --body-file - << 'EOF'
BODY_HERE
EOF
出力のみ: 手動でコピーして貼り付けられるよう、タイトルと本文をコードブロックに入れて提示します。
作成または更新後、「PR の説明文を更新しました。こちらで確認できます:[URL]」と伝えます。