with one click
pull-request
// Pull Request作成スキル。OpenSpec の proposal.md / tasks.md と .github/PULL_REQUEST_TEMPLATE.md に基づいて、変更の背景・完了タスク・検証結果が揃った高品質なPRを作成。Use when: PR作成、Pull Request作成、変更内容のPR化、OpenSpec change をPRにまとめる依頼をされた時。
// Pull Request作成スキル。OpenSpec の proposal.md / tasks.md と .github/PULL_REQUEST_TEMPLATE.md に基づいて、変更の背景・完了タスク・検証結果が揃った高品質なPRを作成。Use when: PR作成、Pull Request作成、変更内容のPR化、OpenSpec change をPRにまとめる依頼をされた時。
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | pull-request |
| description | Pull Request作成スキル。OpenSpec の proposal.md / tasks.md と .github/PULL_REQUEST_TEMPLATE.md に基づいて、変更の背景・完了タスク・検証結果が揃った高品質なPRを作成。Use when: PR作成、Pull Request作成、変更内容のPR化、OpenSpec change をPRにまとめる依頼をされた時。 |
OpenSpec で作業した proposal.md と tasks.md を一次情報として読み、.github/PULL_REQUEST_TEMPLATE.md に沿った Pull Request を作成します。
PR 本文では「なぜやるか」「何を完了したか」「差分として何が入ったか」「どう検証したか」が自然につながるようにします。
proposal.md の背景・目的と tasks.md の完了状況を最初に確認するgit diff / git status / コミット履歴で実際の変更を確認する.github/PULL_REQUEST_TEMPLATE.md の見出しに合わせて本文を作る| 情報源 | 用途 |
|---|---|
openspec/changes/<change>/proposal.md | PR の背景、目的、Related Issues の候補 |
openspec/changes/<change>/tasks.md | 完了タスク、未完了タスク、Test Plan の候補 |
git diff <base>...HEAD | 実際に入った変更内容、リスク、レビュー観点 |
git log <base>...HEAD --oneline | PR タイトル、コミット単位の確認 |
.github/PULL_REQUEST_TEMPLATE.md | PR 本文の最終フォーマット |
| Issue / レビューコメント / CI 結果(あれば) | Related Issues、検証結果、注意事項の補強 |
| PR セクション | 主な情報源 | 書き方 |
|---|---|---|
| Summary | proposal.md | 「なぜやるか」と変更の到達点を 2-3 文で要約する |
| Related Issues | proposal、Issue、commit | Closes #123 / Fixes #123 / Related to #123 を必要に応じて記載 |
| OpenSpec | change directory | change 名、proposal/tasks の有無、タスク完了状況を記載 |
| Changes Made | tasks.md と diff | 完了タスクを軸に、実際の差分で確認できる変更をグループ化して列挙する |
| Testing | tasks.md と実行結果 | 実行したコマンド、CI、手動確認など、判断可能な検証結果を明示する |
| Follow-up Items | tasks.md未完了、diff中の関連箇所 | 今回のスコープ外としたが後でやるべき事項を列挙する |
| Review Notes | diff、未完了タスク | レビュアーに見てほしい点、リスク、未完了事項、補足を簡潔に書く |
| Evidence | UI、CLI、API 実行結果 | スクリーンショット、実行ログ、リクエスト/レスポンス例などを載せる |
会話やブランチ名から change 名を推定します。曖昧な場合は一覧を確認し、対象を選びます。
openspec list --json
openspec status --change <change-name> --json
次のファイルを必ず読みます。
openspec/changes/<change-name>/proposal.md
openspec/changes/<change-name>/tasks.md
OpenSpec change が存在しない PR でも作成は可能です。その場合は、PR 本文の OpenSpec セクションに「なし」と明記し、diff とコミット履歴を主情報源にします。
git branch --show-current
git merge-base HEAD origin/main
git log origin/main...HEAD --oneline
git diff origin/main...HEAD --name-only
git diff origin/main...HEAD
ベースブランチが main ではない場合は、リポジトリの既定ブランチや PR の向きに合わせて置き換えます。
PR 作成前に、ブランチ差分をレビュー観点で確認します。 詳細な手順は self-review/SKILL.md を参照してください。
特に以下を確認します。
実装中に見つかったが今回のスコープ外とした事項を洗い出します。
これらを Follow-up Items セクションに簡潔に記述します。 OpenSpec change として起票済みの場合は change 名を、未起票の場合は概要を記載します。
## Follow-up Items
- [ ] 関連リファクタリング: XXXモジュールの責務分割(別changeで対応予定)
- [ ] テストカバレッジ向上: YYY関数のエッジケース追加
proposal.md の「なぜやるか」を主軸にします。
ただし、PR では実装後の状態を伝えるため、目的だけでなく「今回どこまで完了したか」も含めます。
## Summary
OpenSpec で整理した PR 作成フローに合わせて、pull-request スキルと PR テンプレートを更新します。proposal/tasks を PR 本文の一次情報として扱うことで、変更の背景、完了範囲、検証結果をレビューしやすくします。
change 名と artifacts の状態を記載します。
tasks.md は完了数と未完了タスクの有無が伝わるようにします。
## OpenSpec
- Change: `align-pr-template-with-openspec`
- Proposal: `openspec/changes/align-pr-template-with-openspec/proposal.md`
- Tasks: 6/6 complete
tasks.md のタスクを骨格にし、git diff で確認できる実ファイル単位の変更を添えます。
## Changes Made
- pull-request スキルを OpenSpec 起点の PR 作成フローに更新
- proposal/tasks を一次情報として読む手順を追加
- diff とコミット履歴で実装内容を裏取りする流れに整理
- PR テンプレートを proposal/tasks と揃う構成に更新
- Summary、OpenSpec、Changes Made、Testing、Review Notes を追加
実行済みのコマンドを具体的に書きます。 未実施の検証がある場合は、Review Notes に理由を添えます。
## Testing
- [x] `openspec status --change align-pr-template-with-openspec --json`
- [x] `prettier --check .agents/skills/pull-request/SKILL.md .github/PULL_REQUEST_TEMPLATE.md`
- CI checks: not run locally
テンプレートに沿った本文を一時ファイルに作成してから gh pr create を実行します。
gh pr create --title "<type>: <subject>" --body-file /tmp/pr-body.md
| 項目 | チェック内容 |
|---|---|
| Summary | proposal の目的と実装後の到達点が 2-3 文で説明されている |
| OpenSpec | change 名、proposal/tasks、タスク完了状況が記載されている |
| Changes Made | tasks と diff の両方に基づいて変更内容が説明されている |
| Testing | CI や実行コマンドなど、決定的に確認できる検証結果が書かれている |
| Evidence | UI、CLI、API 変更でレビュー判断に使える証跡が添えられている |
| Review Notes | 既知リスク、未完了事項、レビューしてほしい点が隠されていない |
| Follow-up Items | 実装中に発見された後続タスクや改善候補が隠されていない |
| Template | .github/PULL_REQUEST_TEMPLATE.md の見出しを崩していない |
| Title | Conventional Commits 形式になっている |
| Related Issues | proposal や Issue 情報に基づいて正確な参照になっている |
self-review: PR 作成前の差分確認に使うcommit-message: PR タイトルを Conventional Commits 形式に整える時に使うgithub-issue: Related Issues や受け入れ基準の確認に使うcode-review: リスクやレビュアー観点を洗い出す時に使うtasks.md にチェックが付いていても、diff や検証結果で確認できない内容は PR に断定的に書かない