
Parallel AI coding is fast but dangerous. Two agents can each produce correct-looking code that merges cleanly in Git yet contradicts itself semantically — one agent sets the privileged role as owner, another gates access on admin, and the feature silently breaks with all tests green. Git compares text. It has no model of intent, business rules, or the assumptions two independently working agents made about the same shared concept, so this exact class of defect reaches production undetected as parallel AI development becomes the normal way teams ship code. MergeMind exists to catch that class of failure before it reaches a merge button. The flow starts on the /demo Verify screen. The user provides the base branch, two competing changes, and the original feature requirement, then clicks Verify. The backend ingests the real diffs of both changes against the base and hands them to two layers working together: a deterministic, zero-LLM semantic engine, and a live IBM Bob subagent pipeline. The deterministic engine extracts structured assumptions — authorization rules, business rules, contracts, and dependencies — normalizes them into canonical predicates so "owner role" and "role=owner" are recognized as the same concept, classifies pairwise contradictions, and assigns severity and confidence through explicit rules. Every finding becomes a ConflictReport with both evidence sides, a plain-language explanation, the affected files, and a verification hint. Alongside it, five Bob subagents — Intent, Change, Contract, Dependency, Adversary — independently analyze the same requirement and diffs. Intent extracts what the feature was meant to guarantee. Change examines what each diff really does. Contract checks whether APIs and schemas agree. Dependency maps assumptions one change makes about behavior the other owns. Adversary is deliberately hostile, trying to disprove the other four, so findings aren't just a confident-sounding false positive. Results flow into the /demo experience: live Analysis progress, a Conflict Graph tracing Requirement → Assumption → File → Conflict, a Conflict Detail view with real evidence from both changes, a suggested resolution derived from the engine's own hint, and a Change Passport containing only genuinely measured values — anything unmeasured honestly renders as "Not measured." Technology Stack Runtime/languages: TypeScript throughout, Node.js 18+. Frontend (apps/ui): React 18, React Router 6, Vite 5, hand-rolled SVG graph canvas for the Conflict Graph. API (apps/api): Express 4, execFile-only Git access, in-memory session store tracking each run's lifecycle. Semantic engine (packages/semantic-engine): fully unit-tested, zero-LLM deterministic pipeline — extraction, normalization, conflict detection, ConflictReport. Repository ingestion (packages/git-ingest): structured diff extraction from the base and both changes. Domain & contracts (packages/domain, packages/fixtures): Zod-validated models, deterministic test factories, three canonical conflict scenarios. Tooling: pnpm workspaces, Jest + ts-jest, ESLint, Prettier, strict tsc typechecks. IBM Bob: five parallel subagents — Intent, Change, Contract, Dependency, Adversary — run against the ingested diffs through a live Bob integration alongside the deterministic engine, so every conflict is backed by both a reproducible rule-based finding and Bob's own independent analysis. Bob agents produce the changes across a real engineering team; MergeMind verifies the ideas behind them can actually coexist — turning "Git says it merges" into "we checked, and it's still right."
27 Sep 2026