| name | git-resolve-conflicts |
| description | Resolve merge or rebase conflicts semantically, then re-verify the full gates |
Resolve Conflicts
The result must preserve the intent of both sides, never just pick one. Invoke when git reports conflicts or a PR shows CONFLICTING.
Steps
git status - identify the operation (merge/rebase/cherry-pick) and the conflicted files.
- For each file: read the whole conflict, then both sides' intent -
git log --oneline <ours>..<theirs> -- <file> and the reverse. Goals matter more than text.
- Resolve by combining intents. Genuinely incompatible - STOP and present both intents with a recommendation; that call is the owner's.
- Generated files - regenerate with the owning tool, never hand-merge output. Lockfiles - resolve the manifest, regenerate the lockfile with the package manager.
- Check the unmarked overlap: when both branches touched the same feature, verify the merged behavior, not only the conflict-marked files.
- Re-run the full gates (
dev-run-tests) - a clean merge that fails tests is not resolved.
- Complete the operation (standard merge message, or
git rebase --continue) and push fast-forward.
Verify
git grep -n '<<<<<<<' returns nothing; gates green; behavior from both branches survives.
Scope / hand-off
- Merge vs rebase policy - profile
update_strategy; the PR loop - git-finalize-pr.
CRITICAL
- Never resolve by discarding one side wholesale; never force-push the result to a shared branch.