---
name: resolving-merge-conflicts
description: Resolve an in-progress git merge or rebase conflict. Use when you need to resolve a merge or rebase conflict, or the user reports a conflict during a merge or rebase.
---

Every message to the operator follows the `operator-communication`
skill: load it before your first message.

If a `tw_*` tool or the workflow misbehaves, refuses you, or otherwise surprises you, invoke the `workflow-failure` skill before improvising.

1. **See the current state** of the merge/rebase. Check git history, and the
   conflicting files.

2. **Find the primary sources** for each conflict. Understand deeply why each
   change was made, and what the original intent was. Read the commit messages,
   check the PRs, check original issues/tickets.

3. **Resolve each hunk.** Preserve both intents where possible. Where
   incompatible, pick the one matching the merge's stated goal and note the
   trade-off. Do **not** invent new behaviour. Always resolve; never `--abort`.

4. Discover the project's **automated checks** and run them, typically
   typecheck, then tests, then format. Fix anything the merge broke.

5. **Finish the merge/rebase.** Stage everything and commit. If rebasing,
   continue the rebase process until all commits are rebased.
