一键导入
merge-pr
Check if a PR is ready, squash-merge it into main, and delete the branch. The standard completion workflow after a PR is approved and all checks pass.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Check if a PR is ready, squash-merge it into main, and delete the branch. The standard completion workflow after a PR is approved and all checks pass.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Add a new device profile to podcast-tui's config.json so episodes sync to an MP3 player / DAP / USB drive with device-appropriate filenames and folder layout. Covers device research, field selection, and safe config editing.
Prepare a new release by finalizing CHANGELOG, tagging, and verifying builds. Covers everything before pushing the tag that triggers CI.
Query the GitHub project board to find the next stack-ranked issue to work on. Returns the top actionable Todo item from the Task List view, checking issue dependencies and filtering out epics, closed issues, and blocked items.
Reorder items on the Task List project board to reflect current priorities. Supports full strategic reranks and targeted insertions. Always shows proposed order for user confirmation before executing.
Write a checkpoint file at session end so the next session can pick up exactly where you left off. Captures what was done, what's next, key decisions, and reminders.
Bootstrap a new session from a previous session's checkpoint. Reads the handoff file, confirms the project board state, and prepares to continue work.
| name | merge-pr |
| description | Check if a PR is ready, squash-merge it into main, and delete the branch. The standard completion workflow after a PR is approved and all checks pass. |
When a PR is ready to land: review comments have been addressed, CI is green, and the branch is mergeable. Use this skill to complete the lifecycle of a work-on-issue branch.
Before merging, verify all of the following:
gh pr view <PR_NUMBER> --json mergeable,mergeStateStatus,isDraft,reviews
Required state:
mergeable: MERGEABLE (no conflicts)mergeStateStatus: CLEAN or BLOCKED only by missing approvals (not by failing CI)isDraft: falseIf any check fails, stop and report the blocker. Do not merge with conflicts or failing CI.
gh pr view <PR_NUMBER> --json reviews
First verify that copilot-pull-request-reviewer is present in the reviews list. If the bot has not yet posted its review, stop — do not merge. The bot runs asynchronously and an absent review means it hasn't finished, not that the PR is clean.
Then check inline threads:
get_review_comments MCP tool or the GitHub UIACCEPT items must be implemented and pushedDEFER items must have a corresponding GitHub issue[Unreleased] in CHANGELOG.md contains an entry for this changeupdate-changelog skill before mergingUse squash merge to keep main history linear:
gh pr merge <PR_NUMBER> --squash --delete-branch
Flags:
--squash — squashes all branch commits into one clean commit on main--delete-branch — deletes the remote branch immediately after merge (GitHub also deletes the local tracking ref)The squash commit title defaults to the PR title. This is correct — ensure the PR title follows conventional commit format (fix(scope): description) before merging.
git checkout main
git pull origin main
git log --oneline -3
Confirm the squash commit appears at the tip of main with the correct message and Closes #N in the body.
The Closes #N in the commit message automatically closes the linked issue. Verify:
gh issue view <ISSUE_NUMBER> --json state
Should return "state": "CLOSED".
| Condition | Action |
|---|---|
mergeStateStatus: CLEAN | ✅ Merge |
mergeStateStatus: DIRTY (conflicts) | 🚫 Rebase branch first, re-run checks |
mergeStateStatus: BLOCKED (failing CI) | 🚫 Fix CI failures first |
isDraft: true | 🚫 Mark ready for review first |
| Unresolved review comments | 🚫 Address comments first |
| CHANGELOG missing for user-facing change | 🚫 Add changelog entry first |
git log on main clean and bisectable.--delete-branch fails (branch already deleted), that's fine — it's idempotent.