pr-draft-summary について
openai-agents-js で条件を満たす作業について、変更概要、ブランチ名の提案、PR タイトル、説明文の草案を作るリポジトリ向けスキルです。タスクに属する差分を基にし、定められた完了条件の対象外は除外します。
主な機能
- 01タスクに属する変更とリポジトリ状態の確認
- 02変更ファイルに基づく分類
- 03ブランチ名と PR タイトルの提案
- 04簡潔な PR 説明文の作成
- 05対象外の変更の除外
活用シーン
- 01コード変更後の PR 草案作成
- 02ステージ済み・未追跡ファイルを含む変更の要約
- 03PR を作成・プッシュせずに草案を用意
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openai/ openai-agents-js --skill pr-draft-summaryインストール後、Claude Code で/pr-draft-summaryを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
PR ドラフトの概要
目的
対象となる作業の完了後、このリポジトリで必要となる PR 用の概要を作成します。変更内容の簡潔な概要に加え、openai-agents-js 向けの PR タイトルとドラフト説明を用意します。
完了時の確認事項
- 最終回答を送信する前に、実際のタスク差分を確認します。PR ドラフトを明示的に求める依頼は、以下の自動実行対象外の条件よりも優先されます。ドラフトの作成によって、ブランチの作成、コミット、プッシュ、PR の作成が許可されることはありません。
- 差分にランタイムコード、テスト、サンプル、ビルド/テスト設定、または動作に影響するドキュメントが含まれる場合は、このスキルを実行します。変更の規模が小さいと思われることを理由に、対象となる変更を除外しないでください。
- 必要な検証と変更履歴の作業をすべて終えた後、「作業完了」の回答を送信する前に実行します。
- 対象ファイルに変更がない場合、変更がすべてリポジトリのメタデータまたは動作に影響しないドキュメントのみの場合、タスクが会話のみの場合、またはユーザーが明示的に不要と指定した場合に限り、省略します。
自動で収集する入力情報(ユーザーに質問しないでください)
- 現在のブランチ:
git rev-parse --abbrev-ref HEAD。 - 作業ツリー:
git status -sb。 - 未追跡ファイル:
git ls-files --others --exclude-standard(git status -sbと併用してください。--statには含まれません)。 - 変更されたファイル:
git diff --name-only(ステージングされていない変更)とgit diff --name-only --cached(ステージング済みの変更)。変更量はgit diff --statとgit diff --stat --cachedで確認します。 - プルリクエストのベース参照(
origin/mainを使用してください。フィーチャーブランチの upstream は PR のベースとして使用しないでください):BASE_REF=origin/main。ローカルに存在しない場合はmainを使用します。BASE_COMMIT=$(git merge-base "$BASE_REF" HEAD)。
- コミット済みのブランチ差分:
git diff --name-only "${BASE_COMMIT}..HEAD"とgit diff --stat "${BASE_COMMIT}..HEAD"。 - ベースの分岐点より先のコミット:
git log --oneline --no-merges ${BASE_COMMIT}..HEAD。 - このリポジトリの分類シグナル:ランタイム(
packages/、examples/、helpers/、scripts/)、テスト(packages/**/test、integration-tests/)、ドキュメント(docs/、README.md、AGENTS.md、.github/)、ビルド/テスト設定(package.json、pnpm-lock.yaml、pnpm-workspace.yaml、tsconfig*.json、tsc-multi.json、eslint.config.*、vitest*.ts)。
タスクの所有範囲
コミット済み、ステージング済み、ステージングされていない変更、および未追跡の変更を含む、タスクが所有する差分全体を使用します。ブランチの差分をコンテキストとして確認したうえで、ユーザーの依頼とタスクの開始時点の状態、実装履歴から、タスクが所有する変更を特定します。関連のない既存のブランチ変更やワークスペース変更はドラフトに含めないでください。ブランチ全体を対象とする依頼では、そのブランチの差分全体を対象とします。所有範囲が不明確で、ドラフトの内容が大きく変わる場合は、完成版として提示する前に具体的な疑問を解消してください。
無関係なフィーチャーブランチ上で特定のトピックに絞った修正を行う場合は、修正内容を説明し、適切なブランチ名をテキストで提案します。現在のチェックアウトとブランチはそのまま維持してください。現在のブランチ名に含まれる、無関係な課題のクローズ参照を引き継がないでください。
ワークフロー
- ユーザーに確認せず、上記のコマンドを実行します。後続のコマンドで再利用できるよう、まず
BASE_REF/BASE_COMMITを計算します。現在のブランチの上流ではなく、origin/mainまたはmainと比較します。 - タスクに関係するコミット済み差分に、タスクに関係するステージ済み、未ステージ、および未追跡の変更を組み合わせます。その差分が空の場合は、コードの変更が検出されなかったことを簡潔に伝え、PR ブロックの出力を省略します。
- 「Category signals」に記載された変更対象パスから変更の種類を推測し、feature、fix、refactor、docs-with-impact に分類します。後方互換性のリスクとして指摘するのは、リリース済みの公開 API、外部設定、永続化データ、またはワイヤープロトコルに差分がある場合に限ります。このリスクは、未リリースのブランチのみの変更ではなく、最新のリリースタグを基準に判断します。
- コミット済み、ステージ済み、および未ステージの差分から、タスクに関係する最も重要なパスと統計情報を使って、変更を1~3文で簡潔にまとめます。未追跡ファイルは
--statに含まれないため、必ず明記します。コミットメッセージは補足情報として使い、コミット済み差分の確認の代わりにしてはいけません。 - 説明文の先頭に使う動詞を選びます。feature →
adds、バグ修正 →fixes、リファクタリング/パフォーマンス改善 →improvesまたはupdates、ドキュメントのみ →updates。 - ブランチ名を提案します。すでにこのタスク用のブランチにいる場合はそのまま使い、それ以外の場合は主な対象領域に応じて
feat/<slug>、fix/<slug>、またはdocs/<slug>を提案します(例:docs/pr-draft-summary-guidance)。 - 現在のブランチがこのタスクに属し、
issue-<number>(数字のみ)に一致する場合は、そのブランチ名を提案として維持します。イシュー番号がある場合は、同一リポジトリ内のネイティブな参照#<number>を使い、This pull request resolves #<number>.のような自動クローズ行を含めます。イシューを取得できなくても作業を妨げないでください。 - 以下のテンプレートを使って PR のタイトルと説明を作成します。リポジトリ全体に適用される GitHub への貼り付け準備ルールを守ります。同一リポジトリ内のイシューまたは PR には
#123、別リポジトリへの参照にはowner/repo#123を正確に使います。[PR #123](https://github.com/owner/repo/pull/123)、[#123](...)、Codex ナビゲーションリンク、ローカルファイルへのリンク、Codex 専用の引用マーカーや脚注、アプリ用ディレクティブは、コピー可能なブロックに出力しないでください。API ドキュメント、設計メモ、その他のリンク先への通常の説明的なリンクは、GitHub のイシューまたは PR の参照形式でない限り、そのまま維持します。 - ブロックを返す前に参照を正規化します。同一リポジトリの URL または
openai/openai-agents-js#<number>の参照はすべて#<number>に置き換え、別リポジトリのイシューまたは PR の URL はすべてowner/repo#<number>に置き換えます。その後、ブロック全体を再確認します。Markdown リンク化されたイシューまたは PR のラベル、同一リポジトリのリポジトリ名付き参照、GitHub のイシューまたは PR の URL が残っている場合は返さないでください。 - 「出力形式」のブロックのみを出力します。周囲に状況説明を添える場合は、英語で最小限にします。
出力形式
タスクを完了する際は、文書化された省略条件に該当する場合、またはユーザーが不要と指定した場合を除き、簡潔な以下の Markdown ブロックを短い状況説明の後に追加します(英語のみ)。
# Pull Request Draft
## Branch name suggestion
git checkout -b <kebab-case suggestion, e.g., feat/pr-draft-summary-skill>
## Title
<single-line imperative title, which can be a commit message; if a common prefix like chore: or feat: etc., having them is preferred>
## Description
<include what you changed plus a draft pull request title and description for your local changes; start the description with prose such as "This pull request resolves/updates/adds ..." using a verb that matches the change (you can use bullets later), explain the change background (for bugs, clearly describe the bug, symptoms, or repro; for features, what is needed and why), any behavior changes or considerations to be aware of, and you do not need to mention any tests you ran.>
簡潔にまとめ、ブロックの前後に冗長な文章を加えず、Changes と説明文で同じ内容を繰り返さないでください。特に依頼されない限り、テストを列挙する必要はありません。