From bee
Resolves Git merge conflicts by parsing markers, showing side-by-side diffs with context, explaining causes via git history and blame, and offering reasoned resolution options one hunk at a time.
npx claudepluginhub incubyte/ai-plugins --plugin beeThis skill uses the workspace's default tool permissions.
Guide the developer through merge conflicts one at a time, with full context and clear choices. The goal is not just to resolve conflicts — it's to help the developer make an informed decision about each one.
Resolves Git merge and rebase conflicts efficiently using bulk strategies like `git checkout --theirs/--ours` over manual conflict marker editing. Activates on merge/rebase conflicts.
Resolves Git merge and rebase conflicts file-by-file using modern tooling. Activates for conflicted merges, rebases, PRs unable to merge, or diverged branches. Supports --ours, --theirs, auto-push.
Analyzes git merge conflicts by type and context, proposes automated/manual resolutions, and validates fixes. Handles content, structural, semantic, and formatting issues.
Share bugs, ideas, or general feedback.
Guide the developer through merge conflicts one at a time, with full context and clear choices. The goal is not just to resolve conflicts — it's to help the developer make an informed decision about each one.
Run git diff --name-only --diff-filter=U to find all files with unmerged paths. If no conflicts exist, tell the developer and stop.
Present a summary:
Found N conflicts across M files:
file1.ts,file2.ts, ...
Then work through them one file at a time, one conflict hunk at a time.
For each conflict hunk (bounded by <<<<<<<, =======, >>>>>>>), extract:
==============This is what makes the resolution informed rather than a coin flip. For each conflict:
Git blame both sides. Run git log --merge -p -- <file> or use git log on each branch to find the commits that touched the conflicting lines. Extract:
Summarize the story. Write a short narrative:
Ours (branch
feature-x, commitabc1234by Alice, 2 days ago): RenamedgetUserNametogetDisplayNameas part of the naming convention cleanup. Theirs (branchmain, commitdef5678by Bob, 1 day ago): Added afallbackparameter togetUserNamefor graceful degradation when user data is missing.
This tells the developer why both changes exist, not just what they are.
Identify the conflict type. Categorize it to guide the resolution:
Use AskUserQuestion with markdown previews to show the conflict clearly and offer resolution options. The developer should be able to see the code for each option before choosing.
Structure the question like this:
src/user.ts (lines 42-58)?"Parallel edits (most common):
Delete vs. modify:
Structural refactor:
The recommendation is NOT arbitrary. Explain the reasoning transparently. Consider these factors in order:
Scope of change — Larger, structural changes (refactors, renames across many files) are harder to redo. Smaller, targeted changes (add a parameter, fix a value) are easier to re-apply. Favor keeping the larger change and re-applying the smaller one.
Recency and intent — More recent changes on actively developed branches often represent the latest product decisions. Check if one side's commit message references a ticket, spec, or discussion that signals deliberate intent.
Safety — If one side adds error handling, null checks, or fallbacks, lean toward keeping the safer code, especially in production-critical paths.
Test coverage — If one side's change has accompanying tests and the other doesn't, the tested version is more trustworthy.
Reversibility — Favor the option that's easier to undo if wrong. Keeping a deletion is hard to reverse if you realize later the code was needed. Keeping extra code is easier to clean up.
Always state the reasoning explicitly in the option description, e.g.:
"(Recommended) The rename spans 12 files and is part of a tracked cleanup. Bob's one-line fallback is simpler to re-apply after."
After the developer picks an option:
Once all conflicts are resolved:
git diff --check to confirm no conflict markers remain.Resolved N conflicts across M files:
src/user.ts: Kept refactored names + ported fallback logic (3 conflicts)src/api.ts: Kept incoming error handling (1 conflict)
Be a collaborator, not a resolver. The developer is making the call — you're providing the context and analysis to make that call well-informed. When you recommend an option, explain why honestly and acknowledge the trade-off of not picking the other option.
Any workflow where git conflicts arise — during merges, rebases, cherry-picks, or stash pops. Can be triggered from any Bee agent that encounters merge conflicts, or directly by the developer.