AgentSkillsCN

pr-description

自动为 GitHub PR 生成标题与描述,并直接同步更新至 PR 中。可通过 PR 的 URL、PR 编号,或类似“生成 PR 描述”的请求触发。利用 gh CLI 获取 PR 的差异与提交历史,按照合适的标题与模板生成日语描述,然后通过 `gh pr edit` 直接更新 PR。

SKILL.md
--- frontmatter
name: pr-description
description: GitHubのPRのtitleとdescriptionを自動生成し、直接PRに反映する。PRのURL、PRの番号、または「PRのdescriptionを作成して」のようなリクエストで起動する。gh CLIでPRの差分・コミット履歴を取得し、適切なタイトルとテンプレートに沿った日本語のdescriptionを生成して `gh pr edit` で直接更新する。

PR Description 作成・反映スキル

GitHub PRのURLまたは番号を受け取り、titleとdescriptionを自動生成して直接PRに反映する。

ワークフロー

1. PR情報の取得

$ARGUMENTS からPR URLまたは番号を取得する。引数がない場合は現在のブランチのPRを対象とする。

以下のコマンドで情報を収集する:

bash
# PR概要(タイトル、ブランチ、ベースブランチ、コミット数)
gh pr view <PR_NUMBER_OR_URL> --json title,body,baseRefName,headRefName,commits,labels,number

# 差分の取得
gh pr diff <PR_NUMBER_OR_URL>

# コミットログ
gh pr view <PR_NUMBER_OR_URL> --json commits --jq '.commits[].messageHeadline'

2. 差分の分析

取得した差分とコミット履歴から以下を分析する:

  • 変更されたファイルとその種類(新規/変更/削除)
  • 実装の目的と内容
  • 影響範囲(どのモジュール・機能に影響するか)
  • 関連するissue番号(ブランチ名やコミットメッセージから推測)

大きなPR(差分が多い場合)はサブエージェントを使って差分を分析する。

3. タイトルの生成

コミット履歴と差分から変更の主目的を要約し、適切なPRタイトルを生成する:

  • 70文字以内の簡潔な日本語タイトル
  • 変更内容の「何を」「なぜ」が一目でわかるようにする
  • 既存のタイトルが適切でない場合は改善する

4. descriptionの生成

以下のテンプレートに沿ってdescriptionを生成する。差分から読み取れる事実に基づいて各セクションを埋める:

markdown
## issue
close #ISSUE_NUMBER

## 実装概要
<!-- 何をしたかを簡潔に(1-3行) -->

## 背景
<!-- なぜこの変更が必要だったか -->

## やらなかったこと
<!-- スコープ外にしたこと。なければ「特になし」 -->

## 受入基準
<!-- この PR がマージ可能と判断するための条件をチェックリストで -->
- [ ] 基準1
- [ ] 基準2

## 実装詳細
<!-- 技術的な実装内容。ファイル単位やモジュール単位で説明 -->

## スクリーンショット
<!-- UI変更がある場合のみ。なければ「なし」 -->

## 確認手順
<!-- レビュワーが動作確認するための具体的な手順 -->
1. 手順1
2. 手順2

## 影響範囲
<!-- この変更が影響する画面・機能・モジュール -->

## コード上の懸念点
<!-- レビュワーに特に見てほしい箇所や、判断に迷った実装 -->

## その他
<!-- 補足情報。なければ「特になし」 -->

5. PRへの直接反映

生成したtitleとdescriptionを gh pr edit で直接PRに反映する:

bash
gh pr edit <PR_NUMBER> --title "<タイトル>" --body "$(cat <<'EOF'
<description内容>
EOF
)"

反映後、更新したtitleとdescriptionの要約をユーザーに報告する。

注意事項

  • 日本語で記述する
  • 差分から読み取れる事実に基づいて記述し、推測が入る箇所は明示する
  • issue番号がブランチ名やコミットから特定できない場合は close # の行は空欄にする(推測で番号を入れない)
  • 対話での確認は行わず、即座に生成・反映する