[RFC v2 0/7] LLMinus: LLM-Assisted Merge Conflict Resolution

Sasha Levin
2026-01-11T21:29:18Z

This series introduces LLMinus, an LLM-powered tool for assisting with
git merge conflict resolution in the Linux kernel.

The tool builds a searchable database of historical conflict resolutions
from the kernel's git history, uses semantic embeddings to find similar
past conflicts, and constructs rich prompts for LLMs to resolve current
conflicts with appropriate context.

Commands:
learn - Extract historical conflict resolution cases from git history
vectorize - Create semantic embeddings using fastembed (BGE-small model)
find - Perform similarity search on historical resolutions
resolve - LLM-assisted conflict resolution with contextual guidance
pull - Fetch pull requests from lore.kernel.org and auto-resolve

The tool works with any LLM that accepts stdin input, performing best
with models that support tool use for dynamic investigation.

Changes since RFC v1:
====================
- Add --max-tokens option (default: 100K) with adaptive RAG reduction
to prevent prompt overflow errors across different LLM providers.
When prompts exceed the token limit, historical examples are
progressively removed until the prompt fits.

- Add semantic conflict detection via build test integration. When
no textual conflicts exist but the merge may have introduced build
failures, LLMinus runs the build and generates specialized prompts
for the LLM to investigate and fix compile errors caused by
incompatible changes from different branches.

- Update ureq HTTP client from v2 to v3.

Real-World Testing:
==================
LLMinus is being actively tested through automated subsystem integration
branches. These are available for anyone who wants to follow along or
help identify edge cases:

https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-next.git/

The repository contains ~40 subsystem-specific integration branches
(drivers-next, fs-next, net-next, etc.) that are merged into an all-next
integration branch. This exercises LLMinus on actual kernel merges from
maintainer trees.

Note that these branches are experimental and primarily serve to shake
out LLMinus itself. They are not intended to replace or compete with
existing integration workflows - rather, they provide a testing ground
for the tool. Build testing is performed after merges complete, and
trees are only recreated when upstream maintainers rebase.

Build:
cd tools/llminus && cargo build --release

RFC v1: https://lore.kernel.org/all/20251219181629.1123823-1-sashal@kernel.org/

Sasha Levin (7):
LLMinus: Add skeleton project with learn command
LLMinus: Add vectorize command with fastembed
LLMinus: Add find command for similarity search
LLMinus: Add resolve command for LLM-assisted conflict resolution
LLMinus: Add pull command for LLM-assisted kernel pull request merging
LLMinus: Add prompt token limit enforcement
LLMinus: Add build test integration for semantic conflicts

tools/llminus/.gitignore | 1 +
tools/llminus/Cargo.toml | 20 +
tools/llminus/src/main.rs | 2678 +++++++++++++++++++++++++++++++++++++
3 files changed, 2699 insertions(+)
create mode 100644 tools/llminus/.gitignore
create mode 100644 tools/llminus/Cargo.toml
create mode 100644 tools/llminus/src/main.rs

--
2.51.0