Agent skill
ralph-merge
Merge completed RALPH worktree changes to main branch
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/ralph-merge
SKILL.md
RALPH-MERGE - Merge Worktree to Main
Merge completed RALPH worktree changes back to the main branch.
Commands
| Command | Description |
|---|---|
/ralph-merge |
Merge current worktree to main |
/ralph-merge {spec-name} |
Merge specific worktree |
/ralph-merge --squash |
Squash all commits into one |
/ralph-merge --dry-run |
Show what would be merged |
Triggers
/ralph-merge- "merge worktree"
- "integrate RALPH changes"
- "merge ralph branch"
Prerequisites
bash
# Check for worktrees
WORKTREES=$(git worktree list --porcelain | grep -c "^worktree" || echo "0")
if [ "$WORKTREES" -le 1 ]; then
echo "❌ No RALPH worktrees found"
echo "Run /ralph-run first to create a worktree"
exit 1
fi
# List available worktrees
echo "Available RALPH worktrees:"
git worktree list | grep "ralph/"
Process
Step 1: Select Worktree
If multiple worktrees exist, use AskUserQuestion:
? Which worktree do you want to merge?
○ ralph/user-authentication (4 commits, 12 files)
○ ralph/payment-integration (2 commits, 5 files)
○ Cancel
Step 2: Review Changes
Show summary of changes to be merged:
╔════════════════════════════════════════════════════════════════╗
║ Merge Preview ║
╚════════════════════════════════════════════════════════════════╝
Worktree: .worktrees/user-authentication
Branch: ralph/user-authentication
Target: main
Commits to merge: 4
abc1234 feat: ST-001-1 - Create User type definitions
def5678 feat: ST-001-2 - Create Zod validation schema
ghi9012 feat: ST-001-3 - Create User service layer
jkl3456 feat: ST-001-4 - Add unit tests
Files changed: 12
src/types/user.ts (new)
src/types/index.ts (modified)
src/schemas/user.schema.ts (new)
src/services/user.service.ts (new)
...
Diff stats:
+342 lines added
-12 lines removed
Step 3: Confirm Merge
? Proceed with merge?
○ Yes, merge to main (Recommended)
○ Yes, squash merge (combine all commits)
○ No, review changes first (/ralph-review)
○ No, abandon changes (/ralph-discard)
Step 4: Execute Merge
bash
# Save current branch
CURRENT=$(git rev-parse --abbrev-ref HEAD)
# Checkout main
git checkout main
# Merge worktree branch (--no-ff preserves history)
git merge ralph/{spec-name} --no-ff -m "feat: Implement {spec-name}
Merged from RALPH worktree:
- {summary of changes}
Stories completed:
- US-001: {title}
- US-002: {title}
Co-Authored-By: RALPH <noreply@anthropic.com>"
# Remove worktree
git worktree remove .worktrees/{spec-name} --force
# Delete branch
git branch -d ralph/{spec-name}
Step 5: Cleanup
╔════════════════════════════════════════════════════════════════╗
║ Merge Complete ║
╚════════════════════════════════════════════════════════════════╝
✓ Merged ralph/user-authentication into main
✓ Removed worktree: .worktrees/user-authentication
✓ Deleted branch: ralph/user-authentication
Commits merged: 4
Files changed: 12
Current branch: main
Next steps:
- Run tests: npm test
- Push to remote: git push origin main
Squash Merge
With --squash, all commits are combined:
bash
git checkout main
git merge ralph/{spec-name} --squash
git commit -m "feat: Implement {spec-name}
Combined from 4 commits in RALPH worktree.
Changes:
- Created User type definitions
- Added Zod validation schema
- Implemented User service layer
- Added unit tests
Co-Authored-By: RALPH <noreply@anthropic.com>"
Error Handling
| Error | Action |
|---|---|
| Merge conflicts | Show conflict files, offer resolution |
| No worktrees | Direct to /ralph-run |
| Tests fail post-merge | Warn user, suggest /ralph-qa |
| Branch already deleted | Skip branch deletion |
Conflict Resolution
If conflicts occur:
╔════════════════════════════════════════════════════════════════╗
║ Merge Conflicts ║
╚════════════════════════════════════════════════════════════════╝
Conflicts in 2 files:
✗ src/types/index.ts
✗ src/services/auth.service.ts
Options:
1. Resolve conflicts now (I'll help)
2. Abort merge (keep worktree)
3. Accept theirs (worktree version)
4. Accept ours (main version)
Use AskUserQuestion to determine resolution strategy.
Didn't find tool you were looking for?