[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:foremerge":3},"\u003Ch1>Foremerge\u003C\u002Fh1>\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fnaw103\u002Fforemerge\u002FHEAD\u002Fdocs\u002Fassets\u002Fforemerge-readme-banner.png\" alt=\"Foremerge: Catch intent conflicts before code conflicts\" width=\"100%\" \u002F>\n\u003C\u002Fp>\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnaw103\u002Fforemerge\u002Factions\u002Fworkflows\u002Fci.yml\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnaw103\u002Fforemerge\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\" alt=\"CI\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fforemerge\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fforemerge.svg\" alt=\"crates.io\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnaw103\u002Fforemerge\u002Fblob\u002FHEAD\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue.svg\" alt=\"License: Apache-2.0\" \u002F>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Foremerge is the open-source coordination protocol for coding agents, built\nabove Git. Agents keep isolated worktrees while sharing intent, semantic\nclaims, dependencies, provisional ChangeSets, decisions, validation, and\nprovenance.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"center\">\u003Ca href=\"#quickstart-first-conflict-in-under-five-minutes\" rel=\"nofollow ugc noopener\">\u003Cstrong>Tell your agent to install\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fth>\n\u003Cth align=\"center\">→\u003C\u002Fth>\n\u003Cth align=\"center\">\u003Cstrong>Done\u003C\u002Fstrong>\u003C\u002Fth>\n\u003Cth align=\"center\">→\u003C\u002Fth>\n\u003Cth align=\"center\">\u003Cstrong>See collisions before they land\u003C\u002Fstrong>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd align=\"center\">Paste one line into Claude Code, Codex, or Cursor\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003C\u002Ftd>\n\u003Ctd align=\"center\">It installs Foremerge and wires itself up\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003C\u002Ftd>\n\u003Ctd align=\"center\">Every agent sees what the others are about to change, even in separate worktrees\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Status:\u003C\u002Fstrong> Foremerge \u003Ccode>0.5.0\u003C\u002Fcode> is a pre-1.0, local-first MVP. The CLI, JSON API,\nMCP server, SQLite store, deterministic conflict detector, and\nverification-gated lifecycle are implemented. Public schemas may still\nchange. Published benchmark results do not yet exist, and coordination\nbetween machines is outside this project's scope.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>How it works\u003C\u002Fh2>\n\u003Cp>Say you have two AI agents working on the same project at the same time. Each\none gets its own copy of the code, so they never fight over files. Both finish.\nBoth look correct. Then you find they undid each other's work.\u003C\u002Fp>\n\u003Cp>Git cannot warn you about that, because Git compares text and not intent. It\nwill stop you when two agents edit the same part of the same file. What it\ncannot see is two edits that are each perfectly reasonable on their own and\nland in different files. If one agent moves every caller onto a new\n\u003Ccode>StripePaymentService\u003C\u002Fcode> while another adds PayPal support to the old\n\u003Ccode>PaymentService\u003C\u002Fcode>, nothing overlaps, so Git merges both without complaint and\nthe PayPal work is left stranded on a class nothing calls any more.\u003C\u002Fp>\n\u003Cp>Foremerge fixes this by having agents announce what they are about to do,\nbefore they do it.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Each agent says what it is about to touch.\u003C\u002Fstrong> Not the code, just the\ntarget, like \"I am going to change the \u003Ccode>sendEmail\u003C\u002Fcode> function.\"\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Every agent reads from one shared list.\u003C\u002Fstrong> It is a small database inside\nyour project's \u003Ccode>.git\u003C\u002Fcode> folder, so every agent on your machine sees the same\npicture, whether it is Claude, Codex, or Cursor.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>If two plans collide, you hear about it right away.\u003C\u002Fstrong> Foremerge names the\ntwo agents, explains why their plans clash, and suggests how to split the\nwork. Both worktrees are still clean at that point, so no work has to be\nthrown away.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Think of it as a shared whiteboard. Before an agent starts, it writes down what\nit is about to work on, and it reads what everyone else already wrote.\u003C\u002Fp>\n\u003Cp>Two things Foremerge deliberately does not do. It never locks a file or blocks\nan agent, because a single crashed agent would then stall the whole fleet, so\nthe warnings are advisory and you stay in charge. And it never asks a model to\njudge conflicts, so the same inputs always produce the same answer.\u003C\u002Fp>\n\u003Ch2>The conflict Git cannot see yet\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-text\">Agent A: Replace PaymentService with StripePaymentService\nAgent B: Add PayPal support to PaymentService\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>These agents can work in different trees without touching the same line. The\nplans still collide: one removes the extension point while the other depends on\nit.\u003C\u002Fp>\n\u003Cp>Both agents declare the same \u003Ccode>symbol:PaymentService\u003C\u002Fcode> scope, one saying it will\n\u003Ccode>replace\u003C\u002Fcode> it and the other that it will \u003Ccode>extend\u003C\u002Fcode> it. Foremerge compares those\ntwo declarations before either writes code, raises a \u003Ccode>HIGH\u003C\u002Fcode> advisory, and\nsuggests coordinating on a stable abstraction such as \u003Ccode>PaymentProvider\u003C\u002Fcode>. That\nsuggestion is explain\u003C\u002Fp>\n",1790633828296]