# Ralph Merge

> Merge completed RALPH worktree changes to main branch

- Skill: `majiayu000/ralph-merge` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/ralph-merge`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/ralph-merge/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/ralph-merge

---


# 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.

