aic

Capability · merge conflicts

Resolve merge conflicts.
Without the manual merge.

aic reads every conflicted file, proposes a clean resolution, and shows you the diff. You approve each file — nothing lands without your say-so — then it finalizes the merge for you.

then run aic resolve

How aic resolves a conflict

Resolve is a workflow, not a magic wand. aic walks each conflicted file, proposes a fix, and stops for your approval at every step.

  1. Detect aic resolve reads the repo state. If you're mid-merge with unmerged files, it lists them.
  2. Resolve, per file For each file, aic sends the conflicted content to your model and gets back a marker-free version. If any conflict markers slip through, it retries once.
  3. Review the diff aic builds one combined diff of every proposed resolution — the markers removed, both sides reconciled — so you see exactly what will change.
  4. Approve, per file Each file gets its own apply? prompt. Say yes and aic writes the resolution and stages it. Say no and that file stays untouched.
  5. Finalize When nothing is left unmerged, aic runs the merge's --continue for you. Mid-flow blockers are reported with a clear hand-off, not a mystery count.

Two ways in

You don't have to remember a command. There's an explicit verb, and a guard that catches you when you forget.

  • aic resolve The explicit verb. Run it any time your repo is mid-merge and aic takes it from the detection step above.
  • The commit guard Run plain aic in a conflicted repo and it notices, offers to hand off to resolve, and a deeper guard blocks any commit that still carries conflict markers. The friendly front door, plus the safety net.

Nothing lands without your say-so

The whole point: aic proposes, you decide. It never writes a resolution you haven't seen and approved.

What aic leaves to you

Honesty up front, so you know where the tool ends and you begin. These are the v1 limits.

  • Merge conflicts only aic handles conflicted merge state. A rebase or am in flight is detected and refused in v1 — finish or abort it, then resolve.
  • Some conflicts can't be auto-resolved Binary files, oversized files, and delete/modify conflicts are skipped with a reason — aic points you at them to resolve by hand.
  • Finalize is all-or-nothing --continue blocks on any unmerged path regardless, so a single remaining blocker holds finalize. aic's hand-off tells you exactly what's left.

The short version

aic resolve reads your conflicted files, proposes resolutions you can actually review, and writes only what you approve — then finishes the merge. It's the same "read the diff, draft the fix, ship it" loop aic uses for commits, pointed at the ugliest part of git.

v0.3.0 release notes