pr-merge-workflow
PRの作成からマージ、クリーンアップ、ロールバックまでの標準フローを定義
When & Why to Use This Skill
This Claude skill automates the end-to-end Pull Request (PR) lifecycle, from initial creation and CI/CD monitoring to merging and post-merge cleanup. By standardizing GitHub workflows through the GitHub CLI, it ensures consistent documentation, prevents the merging of failing code, and provides a structured safety net for rapid rollbacks, significantly improving developer productivity and repository health.
Use Cases
- Standardizing PR creation: Automatically generating PRs with consistent templates that include summaries, issue links, and testing checklists.
- Automated CI Monitoring: Monitoring CI/CD status in real-time and blocking merges until all automated checks and linting have successfully passed.
- Workflow Cleanup: Executing post-merge tasks such as deleting feature branches, closing related issues, and cleaning up temporary development environments.
- Emergency Rollbacks: Providing a structured and rapid response mechanism to revert problematic merges or security issues using predefined rollback commands.
| name | pr-merge-workflow |
|---|---|
| description | PRの作成からマージ、クリーンアップ、ロールバックまでの標準フローを定義 |
PRマージワークフロー
責任範囲: PR作成 → CIチェック → マージ → クリーンアップ
このスキル ci-workflow PR作成テンプレート CIポーリング・ログ分析 マージ戦略選択 失敗時の自動修正 ロールバック手順 リトライ管理(3回) クリーンアップ 成功時の自動マージ呼び出し
PR作成
基本コマンド
gh pr create --title "<タイトル>" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points summarizing changes>
## Related Issues
Closes #XX
## Changes
- <specific change 1>
- <specific change 2>
## Testing
- [ ] Tests passed
- [ ] Lint passed
- [ ] Manual verification (if applicable)
EOF
)"
必須要素
| 要素 | 説明 | 例 |
|---|---|---|
Closes #XX |
Issue自動クローズ | Closes #42 |
| Summary | 変更概要(1-3行) | バグ修正、機能追加等 |
| Changes | 具体的な変更リスト | ファイル、関数等 |
CIチェック待機
PR作成後、CIが完了するまで待機する。
# CI完了まで待機(必須)
gh pr checks <pr-number> --watch
重要: CIが失敗した場合はマージせず、修正を行う。
PRマージ
標準マージコマンド
# CI成功後にマージ + ブランチ削除
gh pr merge <pr-number> --merge --delete-branch
マージ戦略
| 戦略 | 用途 | コマンド |
|---|---|---|
--merge |
通常(履歴保持) | gh pr merge --merge |
--squash |
WIPコミットが多い場合 | gh pr merge --squash |
--rebase |
線形履歴が必要な場合 | gh pr merge --rebase |
Worktreeエラー対応
--delete-branch がworktreeエラーで失敗する場合:
# 1. ブランチ削除なしでマージ
gh pr merge <pr-number> --merge
# 2. 後でブランチを手動削除
git push origin --delete <branch-name>
マージ後クリーンアップ
必須手順
# 1. Issue自動クローズを確認(Closes #XX使用時)
gh issue view <issue-number> # Should show "CLOSED"
# 2. 環境削除(コンテナ・ファイル・JSON一括削除)
bash .opencode/skill/delete-environment/scripts/delete_env.sh <env_id>
GitHub Issue ラベル更新
環境削除後、Issue のラベルを更新します({{skill:github-issue-state-management}} API):
bash .opencode/skill/github-issue-state-management/scripts/issue-state.sh merged <issue-number>
ロールバック手順
マージ後に問題が発覚した場合:
1. 問題の切り分け
| 問題の種類 | 対応 |
|---|---|
| 軽微なバグ | 新しいPRで修正 |
| 重大なバグ | git revert でロールバック |
| セキュリティ問題 | 即座にロールバック |
2. Revertコマンド
# 通常のコミット
git revert <commit-hash>
# マージコミット
git revert -m 1 <merge-commit-hash>
# Revert用PRを作成
gh pr create --title "revert: <original PR title>" --body "## Rollback
Reverts PR #<original-pr-number>
**Reason**: <問題の説明>
"
# 緊急時は管理者権限でマージ
gh pr merge <pr-number> --admin --merge
チェックリスト
PR作成前
- 実装完了
- テスト通過
- Lint通過
- 品質レビュー通過(9点以上)
PR作成時
-
Closes #XXでIssue参照 - Summary記載
- 変更リスト記載
マージ前
- CI全て通過
- コードレビュー承認
マージ後
- Issue自動クローズ確認
- 環境削除(
delete_env.sh実行) - Issue ラベル更新(
env:merged)
関連ドキュメント
| ドキュメント | 内容 |
|---|---|
| {{skill:ci-workflow}} | CI監視・修正フロー |
| {{skill:github-issue-state-management}} | 環境状態管理 |
| {{skill:delete-environment}} | 環境削除手順 |
| {{skill:quality-review-flow}} | 品質レビュー基準 |
CLIスクリプト
PRマージ完全フローの自動化スクリプト:
bash .opencode/skill/pr-merge-workflow/scripts/pr-merge-full.sh <pr-number> [env-id]
| 引数 | 説明 | 必須 |
|---|---|---|
pr-number |
PR番号 | ✅ |
env-id |
container-use環境ID(クリーンアップ用) | - |
処理フロー:
- CI完了待機(ci-wait.sh呼び出し)
- PRマージ(
gh pr merge --merge --delete-branch) - Issue ラベル更新(
env:merged) - 環境削除(env-id指定時)
使用例:
bash .opencode/skill/pr-merge-workflow/scripts/pr-merge-full.sh 42 abc-123-def