Merge PR #$ARGUMENTS
PR #$ARGUMENTS のマージ処理を行います。
PR Status
!gh pr view $ARGUMENTS --json headRefName,state,mergeable,reviewDecision --jq '"Branch: \(.headRefName)\nState: \(.state)\nMergeable: \(.mergeable)\nReview: \(.reviewDecision)"' 2>/dev/null
CI Status
!gh pr checks $ARGUMENTS 2>/dev/null
Worktree Status
!git worktree list
One-Command Merge
Recommended: Use the merge script that handles all edge cases:
bash
./scripts/merge-pr.sh $ARGUMENTS
This script automatically:
- •Waits for CI if still running
- •Merges the PR (squash by default)
- •Switches to main if currently in worktree
- •Kills any agents running in the worktree
- •Removes the worktree (force if locked)
- •Deletes local and remote branches
- •Moves task file to completed (if found)
Options
bash
# Squash merge (default) ./scripts/merge-pr.sh $ARGUMENTS --squash # Regular merge commit ./scripts/merge-pr.sh $ARGUMENTS --merge # Rebase merge ./scripts/merge-pr.sh $ARGUMENTS --rebase # Skip task file management ./scripts/merge-pr.sh $ARGUMENTS --no-task # Preview what would happen ./scripts/merge-pr.sh $ARGUMENTS --dry-run
Batch Merge
For multiple PRs, run sequentially:
bash
./scripts/merge-pr.sh 123 ./scripts/merge-pr.sh 124 ./scripts/merge-pr.sh 125
Or parallel (if no conflicts expected):
bash
./scripts/merge-pr.sh 123 & ./scripts/merge-pr.sh 124 & ./scripts/merge-pr.sh 125 & wait
Post-Merge Tasks
After merge, update ROADMAP if needed:
- •Open
spec/tasks/ROADMAP.md - •Change task status to "Done"
- •Commit:
git add spec/tasks/ROADMAP.md && git commit -m "chore(tasks): complete task X" - •Push:
git push
Troubleshooting
"Worktree locked"
The script handles this with --force, but if it still fails:
bash
PARENT_DIR="$(cd "$(git rev-parse --show-toplevel)/.." && pwd)"
rm -rf "${PARENT_DIR}/reference-manager--worktrees/<branch-dir>"
git worktree prune
"Branch not fully merged"
Use -D (force delete):
bash
git branch -D <branch-name>
"Cannot delete current branch"
You're still in the worktree. Switch first:
bash
cd "$(git rev-parse --show-toplevel)" git checkout main
Agent still running in worktree
Kill it first:
bash
./scripts/kill-agent.sh <pane-id>