Skip to content
Back to skills

Merge Prep

ASecurity

Pre-merge analysis and preparation. Analyzes source branch vs target branch: commit stats, conflict detection, file impact. Analysis-only v1 — outputs report + suggested commands, does not auto-merge. Use when: user says 'merge prep', 'pre-merge', 'merge analysis', or /merge-prep

  • 192 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 4, 2026
ai-agentsbashgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add sd0xdev/sd0x-harness --skill merge-prep --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Merge Prep?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Merge Prep
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sd0xdev-merge-prep-sd0x-harness/badge)](https://www.skillsdirectory.com/skills/sd0xdev-merge-prep-sd0x-harness)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: merge-prep
description: "Pre-merge analysis and preparation. Analyzes source branch vs target branch: commit stats, conflict detection, file impact. Analysis-only v1 — outputs report + suggested commands, does not auto-merge. Use when: user says 'merge prep', 'pre-merge', 'merge analysis', or /merge-prep"
allowed-tools: Bash(git:*), Read, Grep, Glob
---

# Merge Prep — Pre-merge Analysis and Preparation

Analyze source branch vs target branch, detect conflicts, output analysis report with suggested commands. **v1 is analysis-only** — does not execute merge/commit/push.

## When NOT to Use

| Scenario | Use Instead |
|----------|-------------|
| Commit code (not merge) | `/smart-commit` |
| Merge to main (production) | Manual PR flow |
| Just view diff | `git diff <target>..<branch>` |
| Rebase or squash | Manual operation |

## Input

`/merge-prep <source-branch> [--target <branch>]`

- `<source-branch>`: Branch to merge (required)
- `--target`: Target branch (default: `{TARGET_BRANCH}` or `main`)

## Workflow

```mermaid
sequenceDiagram
    participant C as Claude
    participant U as User
    C->>C: Step 1: Validate prerequisites
    C->>C: Step 2: Pre-merge analysis
    C->>U: Show analysis report
    U->>C: Acknowledge
    C->>C: Step 3: Conflict analysis (if any)
    C->>U: Show conflict details + resolution suggestions
    C->>C: Step 4: Generate merge commands
    C->>U: Output commands for manual execution
```

### Step 1: Validate Prerequisites

```bash
# 1a. Verify source branch exists
git rev-parse --verify <branch>

# 1b. Verify target branch exists
git rev-parse --verify <target>

# 1c. Verify working tree is clean
git status --porcelain
```

| Check | Failure Action |
|-------|---------------|
| Branch doesn't exist | Halt, list available branches |
| Target not found | Halt, suggest creating it |
| Uncommitted changes | Halt, suggest `/smart-commit` first |

### Step 2: Pre-merge Analysis

Run the analysis script:

```bash
bash skills/merge-prep/scripts/pre-merge-check.sh <branch> [target]
```

Script outputs JSON containing:

- `merge_base`: Common ancestor
- `source_commits`: New commits on source branch
- `target_commits`: Commits on target that source doesn't have
- `has_conflicts`: Whether conflicts exist
- `conflict_files`: List of conflict files
- `file_stats`: Affected file statistics

Display analysis report:

```markdown
## Pre-merge Analysis

| Item | Value |
|------|-------|
| Source branch | feat/new-feature |
| Target branch | main |
| Common ancestor | b03ad72a |
| New commits | 12 |
| Affected files | 46 |
| Predicted conflicts | 9 files |

### Recent Commits

| Hash | Message |
|------|---------|
| abc1234 | feat: Add new API endpoint |
| def5678 | test: Add integration tests |
```

### Step 3: Conflict Analysis (if conflicts detected)

For each conflict file, analyze commit history to determine conflict pattern:

| Pattern | Detection | Suggested Strategy |
|---------|-----------|-------------------|
| Iterative (v1→v3) | Both sides changed, source is superset | Take source |
| Parallel modification | Different people changed different logic | Per-hunk selection |
| Hotfix conflict | Target has hotfix merge, source doesn't | Take target |
| Doc add/add | Both sides added same-name file | Take source |

Display resolution suggestions:

```markdown
### Conflict Files

| # | File | Pattern | Suggestion | Reason |
|---|------|---------|------------|--------|
| 1 | src/xxx.ts | Iterative | Take source | v3 includes all v1 changes |
| 2 | src/yyy.ts | Parallel | Per-hunk | Two sides changed different functions |
| 3 | docs/zzz.md | add/add | Take source | Target version is outdated |
```

### Step 4: Generate Merge Commands

Output commands for manual execution:

```markdown
## Suggested Merge Commands

### Option A: Merge commit (recommended)

```bash
git checkout <target>
git pull --ff-only origin <target>
git merge <source> --no-ff
# Resolve conflicts if any
# git add <resolved-files>
# git commit
git push origin <target>
```

### Option B: Squash merge

```bash
git checkout <target>
git pull --ff-only origin <target>
git merge --squash <source>
git commit -m "merge: Merge <source> into <target>"
git push origin <target>
```

```

### Step 5: Summary

```markdown
## Merge Summary

| Item | Value |
|------|-------|
| Source | feat/new-feature |
| Target | main |
| Commits | 12 |
| Files | 46 |
| Conflicts | 9 (resolution suggestions provided) |
| Tickets | PROJ-520, PROJ-123 |

⚠️ This is an analysis-only report. Execute the commands manually.
```

## Multi-branch Mode

Supports `/merge-prep branch1 branch2 branch3 --target develop`:

1. Analyze each branch sequentially
2. Output combined summary
3. Suggest merge order (fewest conflicts first)

## Prohibited (v1)

- **No auto-merge**: Only output commands, never execute `git merge`
- **No auto-push**: Never execute `git push`
- **No auto-commit**: Never execute `git commit`
- **No rebase**: Never suggest or execute rebase operations

## References

| File | Purpose | When to Read |
|------|---------|-------------|
| [pre-merge-check.sh](scripts/pre-merge-check.sh) | Pre-merge analysis script | Step 2 |

## Verification

- [ ] Source branch exists and working tree is clean
- [ ] Pre-merge analysis displayed with user acknowledgment
- [ ] Conflicts analyzed with resolution suggestions
- [ ] Merge commands are output-only (not executed)
- [ ] No secrets in output, no force push suggested

Files in this skill

  • SKILL.md5.4 KB
  • scripts/pre-merge-check.sh3.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.