- name
- babysit-pr
- description
- Babysit a PR until merge-ready, then ask before merging. Runs pr-merge-prep on a 10-minute loop, monitors readiness (CI, reviews, conflicts), auto-stops when ready, and requires explicit user confirmation to merge. Never merges autonomously. Use when: "babysit this pr", "watch pr until ready", "keep fixing pr until mergeable".
- user-invocable
- true
**User request**: $ARGUMENTS
## Goal
Thin orchestration wrapper: start a recurring pr-merge-prep loop, monitor the PR until it reaches merge-ready state, stop the loop, and ask the user whether to merge. **Never merge without explicit user confirmation.**
## Flow
### 1. Detect PR
If PR number/URL is in $ARGUMENTS, use it. Otherwise detect from the current branch via `gh pr view --json number,url,title,isDraft`.
If no PR found, report and stop.
If PR is draft, report "PR is draft — nothing to babysit" and stop.
### 2. Start the Loop
Invoke the loop skill with: "10m /pr-merge-prep $PR_IDENTIFIER"
This starts pr-merge-prep running every 10 minutes in the background.
### 3. Monitor for Merge Readiness
After starting the loop, immediately run a readiness check (don't wait 10 minutes for the first one). Then continue checking after each loop iteration.
**Readiness check** — run `gh pr view $PR_NUMBER --json mergeable,reviewDecision,statusCheckRollup,reviewRequests,comments` and evaluate:
| Condition | Ready? |
|-----------|--------|
| All CI/status checks pass (no pending, no failing) | Required |
| No unresolved review threads | Required |
| No merge conflicts (mergeable != CONFLICTING) | Required |
| Review decision is APPROVED or no reviewers assigned | Required |
If **all conditions met**: PR is merge-ready. Proceed to step 4.
If **not ready**: Log what's still blocking and let the loop continue. The next pr-merge-prep iteration will work on remaining blockers.
### 4. Stop the Loop
When the PR is merge-ready, stop the cron schedule that was created in step 2. Use CronDelete to remove it.
### 5. Ask User to Merge
**CRITICAL: Never merge automatically. Always ask.**
Report the PR status summary to the user:
- PR title and URL
- All checks passing
- Review status
- Any remaining open (uncertain) comment threads that pr-merge-prep left for human review
Then ask the user: **"PR is ready to merge. Would you like me to merge it?"**
- If user says **yes**: merge via `gh pr merge $PR_NUMBER --merge` (or `--squash`/`--rebase` if user specifies)
- If user says **no** or **not yet**: acknowledge and stop. Do not merge.
- If user doesn't respond: do nothing. The PR stays open.
GitHub에서 보기