skills/pr-complete/SKILL.md
Complete a pull request by monitoring CI checks and merging when ready. Use when: (1) User says 'complete pr', 'merge pr', or 'finish pr', (2) PR is reviewed and ready but CI may still be running, (3) User wants to wait for CI and auto-merge.
npx skillsauth add takazudo/claude-resources pr-completeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This PR is checked, reviewed, and no other tasks are left. Complete the following:
On Claude Code on the web (
$CLAUDE_CODE_REMOTE=true): followweb/web-mode.md. Check CI, merge the PR, and close the linked issue via the GitHub MCP (pull_request_read/get_check_runs,merge_pull_request,issue_write), notgh. CI-watch + merge run in-turn on web — see web-mode.md §8: web has no background-task wakeup, so do NOT "watch CI in the background" and end the turn (Step 1.4's background path and "do NOT block the conversation with polling" are terminal-only). Instead poll the PR's checks via MCP in a loop and merge in the same run the moment they're green — under-m/-cthe merge is already authorized; never end the turn at "CI running, I'll check back." Branch deletion — see web-mode.md §5: when the PR's head is theclaude/*session branch (the common web case — head=$WEB_BASE, base=$WEB_PARENT), merge via MCPmerge_pull_requestWITHOUT any branch-delete (nodelete_branch:true). The web platform owns the session branch — never delete it. Deleting aclaude/agent-fix-*fix branch is fine; deleting the session branch is not. Translate the--delete-branchin Step 1 /--no-waitaccordingly: on web, drop the delete for the session branch.
Before anything else, run git status and git diff --stat to check for unstaged or staged-but-uncommitted changes.
/pr-complete./commits push to commit and push automatically, then continue to step 1./commits push first, then re-invoke /pr-complete." and stop here.gh pr view and gh pr checks--no-wait / -now was passed → skip the CI wait and merge immediately (see "--no-wait (-now) option" below)/watch-ci to monitor CI in the backgroundpull_request_read / get_check_runs) in a loop (~30–60 s between polls) until terminal, then merge in the same run (step 5) the moment they're green. Do not end the turn at "watching in background."gh pr merge --merge --delete-branch (on web (web-mode.md §5): MCP merge_pull_request with NO branch-delete when the head is the claude/* session branch — the web owns it; only claude/agent-fix-* heads may be deleted)Important: Before merging, verify:
/watch-ci and stop), unless --no-wait was passedIf any CI checks fail, report the failure and do not merge (unless --no-wait was explicitly passed — see below).
--no-wait (-now) optionIf --no-wait or -now is passed, skip the CI watch entirely and merge the PR immediately, regardless of check status:
/watch-cigh pr merge --merge --delete-branch straight away--close / --keep-issue / --watch-ci) as normalWhen to use: the user has already verified locally that the changes are good (or doesn't care about CI for this merge) and wants the PR merged now without waiting on the pipeline. This is an explicit opt-in — never assume --no-wait from context.
Note: --no-wait only skips waiting for CI checks. The --watch-ci (-w) option, which watches post-merge CI on the target branch, is independent and still works alongside -now.
--close (-c) optionIf --close or -c is passed, after the PR is successfully merged:
gh pr view --json closingIssuesReferencesCheck if it is an epic issue (one that holds sub-issues):
a. Fetch the issue body: gh issue view <number> --json body
b. Look for task list entries referencing issues in the body:
Patterns: - [ ] #N, - [x] #N, - [ ] owner/repo#N, - [x] owner/repo#N
c. Also try the GitHub sub-issues API: gh api repos/{owner}/{repo}/issues/<number>/sub_issues
(this returns a list if the newer GitHub sub-issues feature is in use)
If sub-issues are found (either from the body task list or the API):
gh issue view <sub-issue-number> --json stategh issue close <sub-issue-number>gh issue close <number>If no sub-issues are found (regular issue):
gh issue close <number>--keep-issue (-k) optionIf --keep-issue or -k is passed, after the PR is successfully merged:
--close)[PR-Merged][Confirm] to the issue title:gh issue edit <number> --title "[PR-Merged][Confirm] <original title>"Note: --keep-issue and --close are mutually exclusive. If both are passed, --keep-issue takes precedence.
--watch-ci (-w) optionIf --watch-ci or -w is passed, after the PR is successfully merged:
gh run list --branch <base-branch> --limit 5 --json databaseId,name,status,conclusion/watch-ci to monitor the merge target branch CI in the background/watch-ci already handles merged PRs — it will detect the merged state and watch the target branch CIOn web (web-mode.md §8): the post-merge watch is also in-turn — do NOT background /watch-ci. Web has no background-task wakeup, so a backgrounded post-merge watch would leave this step hanging exactly like the pre-merge case. Poll the target-branch CI via MCP (pull_request_read / actions_* per github-ops.md) in a loop (~30–60 s between polls) until terminal, then report. If it goes red, fix via a claude/agent-fix-* PR (web-mode.md §5) and re-poll until green. Stay in the turn — never end at "watching in background, I'll check back."
This option is only activated when explicitly passed. Without -w, pr-complete does not watch post-merge CI.
tools
Acceptance gate for a branch produced by an OpenAI Codex CLI run — usually Codex implementing a /big-plan epic that was handed off to it. Codex reports the work 'done' (or the user flags it WIP with corrections); this skill confirms the branch actually fulfils the original spec, fixes what falls short, and routes larger discoveries into GitHub issues. Use when: (1) User says '/finalize-codex-work', 'finalize codex work', 'confirm the codex work', 'check the codex branch', or 'codex said it's done', (2) A branch is the result of a Codex CLI session and needs verification against its spec issue/PR, (3) After assigning a /big-plan epic to Codex CLI. Pass -m/--merge to run /pr-complete -c at the end.
tools
Read a Figma design node directly from a share URL via the Figma REST API — no Dev Mode subscription, no MCP, no desktop app. Renders the node to PNG and dumps its full style/layout JSON so the design can be described, compared, or implemented. Use whenever the user gives a Figma design URL (figma.com/design/... or /file/...) and wants to see, read, inspect, reference, or implement that node — including `/fig-url-refer <url>`. This is the URL-based counterpart to `/figrefer` (which needs a Dev-plan desktop MCP); prefer this one when the input is a URL rather than a live desktop selection.
tools
Sync the user's Claude Code workflow skills into the OpenAI Codex CLI settings repo ($HOME/.codex) as Codex-native ports, fix the Codex .gitignore for new local state, then commit and push. Use when: (1) user says '/dev-codex-sync-settings-from-claude', 'sync codex settings', 'sync claude skills to codex', 'port skills to codex', or 'update codex from claude'; (2) after updating ~/.claude workflow skills (big-plan, x, x-as-pr, x-wt-teams) and Codex should catch up; (3) the $HOME/.codex repo has drifted behind $HOME/.claude. The ports are condensed Codex-native REWRITES, never file copies.
development
Analyze a video file (mov, mp4, webm, etc.) or a YouTube video by extracting still frames with ffmpeg and reading them chronologically with vision — Claude cannot ingest video files directly. Use whenever the user provides a video file path or YouTube URL and wants to know what happens in it: "read this video", "watch this video", "check this recording", "what happens in this .mov/.mp4", analyzing a screen recording of a UI bug, or verifying UI behavior captured in a video, even if they don't name this skill.