resolving-merge-conflicts
-
See the current state of the merge/rebase. Check git history, and the conflicting files.
-
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.
-
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. Do not abort, reset, clean, or rewrite history unless the user explicitly authorizes that exact action.
-
Discover the project's automated checks and run them — typically typecheck, then tests, then format. Fix anything the merge broke.
-
Finish the merge/rebase only with authorization. Once the conflict set is clean and the relevant checks pass, stage only the reviewed paths and complete the repository's normal merge/rebase command. If rebasing, continue only when the user has authorized the history-changing operation. Otherwise stop at the verified clean conflict state and report the exact remaining command.
Cross-Client Portability
This skill is written to stay usable across GitHub Copilot, Claude Code, and Codex.