HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
naw103
foremerge
Rust2026–2026
naw103 / foremerge

foremerge

Catch intent conflicts before code conflicts. The open-source coordination protocol for coding agents, built above Git.

2Distinct people
4Mentions
0Explicit recommenders
437GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Catch intent conflicts before code conflicts. The open-source coordination protocol for coding agents, built above Git.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day4 dated mentions

Observed mentions: 2026-08-28 19:34:36 UTC to 2026-09-22 13:29:34 UTC.

012026-08-28 00:00:00 UTC to 2026-08-29 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsAug 282026-08-29 00:00:00 UTC to 2026-08-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-30 00:00:00 UTC to 2026-08-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-31 00:00:00 UTC to 2026-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-01 00:00:00 UTC to 2026-09-02 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-09-02 00:00:00 UTC to 2026-09-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-03 00:00:00 UTC to 2026-09-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-04 00:00:00 UTC to 2026-09-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-05 00:00:00 UTC to 2026-09-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-06 00:00:00 UTC to 2026-09-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-07 00:00:00 UTC to 2026-09-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-08 00:00:00 UTC to 2026-09-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-09 00:00:00 UTC to 2026-09-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 92026-09-10 00:00:00 UTC to 2026-09-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-11 00:00:00 UTC to 2026-09-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-12 00:00:00 UTC to 2026-09-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-13 00:00:00 UTC to 2026-09-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-14 00:00:00 UTC to 2026-09-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-15 00:00:00 UTC to 2026-09-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-16 00:00:00 UTC to 2026-09-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-17 00:00:00 UTC to 2026-09-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-18 00:00:00 UTC to 2026-09-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-19 00:00:00 UTC to 2026-09-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-20 00:00:00 UTC to 2026-09-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-21 00:00:00 UTC to 2026-09-22 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-09-22 00:00:00 UTC to 2026-09-23 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 22

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Aug 282026-08-28 00:00:00 UTC2026-08-29 00:00:00 UTC110
Aug 292026-08-29 00:00:00 UTC2026-08-30 00:00:00 UTC000
Aug 302026-08-30 00:00:00 UTC2026-08-31 00:00:00 UTC000
Aug 312026-08-31 00:00:00 UTC2026-09-01 00:00:00 UTC000
Sep 12026-09-01 00:00:00 UTC2026-09-02 00:00:00 UTC110
Sep 22026-09-02 00:00:00 UTC2026-09-03 00:00:00 UTC000
Sep 32026-09-03 00:00:00 UTC2026-09-04 00:00:00 UTC000
Sep 42026-09-04 00:00:00 UTC2026-09-05 00:00:00 UTC000
Sep 52026-09-05 00:00:00 UTC2026-09-06 00:00:00 UTC000
Sep 62026-09-06 00:00:00 UTC2026-09-07 00:00:00 UTC000
Sep 72026-09-07 00:00:00 UTC2026-09-08 00:00:00 UTC000
Sep 82026-09-08 00:00:00 UTC2026-09-09 00:00:00 UTC000
Sep 92026-09-09 00:00:00 UTC2026-09-10 00:00:00 UTC000
Sep 102026-09-10 00:00:00 UTC2026-09-11 00:00:00 UTC000
Sep 112026-09-11 00:00:00 UTC2026-09-12 00:00:00 UTC000
Sep 122026-09-12 00:00:00 UTC2026-09-13 00:00:00 UTC000
Sep 132026-09-13 00:00:00 UTC2026-09-14 00:00:00 UTC000
Sep 142026-09-14 00:00:00 UTC2026-09-15 00:00:00 UTC000
Sep 152026-09-15 00:00:00 UTC2026-09-16 00:00:00 UTC000
Sep 162026-09-16 00:00:00 UTC2026-09-17 00:00:00 UTC000
Sep 172026-09-17 00:00:00 UTC2026-09-18 00:00:00 UTC000
Sep 182026-09-18 00:00:00 UTC2026-09-19 00:00:00 UTC000
Sep 192026-09-19 00:00:00 UTC2026-09-20 00:00:00 UTC000
Sep 202026-09-20 00:00:00 UTC2026-09-21 00:00:00 UTC000
Sep 212026-09-21 00:00:00 UTC2026-09-22 00:00:00 UTC110
Sep 222026-09-22 00:00:00 UTC2026-09-23 00:00:00 UTC101

What Hacker News says

4 sources
There were several comments here that got marked dead but had some legitimate points and questions so answering them on gh discussions instead https://github.com/naw103/foremerge/discussions/32 laika23 asked for two kinds of conflicts: replace vs extend and contract change by one agent vs new agents writing against the old contract. The first case already exists today and the second will also catch if the agent declares it but currently today no rule evaluates the dependancies at acceptance unless it is specifically declared as a check. We already added to the roadmap from initial feedback to solve this through a treesitter code graph. We've measured it internally but havnt build it yet. One thing that we found while measuring this was that only edges the parser extracted are usable and the ones it had to guess were name collisions on com
Read the rest
mon helper names.
In Show HN: Foremerge – Catch intent conflicts between parallel coding agents
naw103·Sep 21, 2026Submission

Show HN: Foremerge – Catch intent conflicts between parallel coding agents

At, GPTree, we run several coding agents across our team on one repo using parallel worktrees. Apart from wasted time reviewing and fixing conflicts at PR time, the failures that hurt the most are when multiple plans or tickets cause architecture changes that cannot both be true. Ex. one agent replaces a class while another one is in the process of extending it. Git only notices if the resulting patches happen to touch the same lines and the review only catches it if they are familiar with both tickets. Foremerge is a local "git like" coordination layer that sits above git (ie. does not interact with or change the way git and worktrees function), Before editing each agent publishes an intent and the scopes it will change, with the operation it plans to complete on each one. foremerge intent publish --agent "$A" \ --summary "Re
Read the rest
place PaymentService with StripePaymentService" \ --scope symbol:PaymentService=replace foremerge intent publish --agent "$B" \ --summary "Add PayPal support to PaymentService" \ --scope symbol:PaymentService=extend The publish by the 2nd agent returns a HIGH destructive_vs_additive finding before writing any code. Agents keep their own worktrees and the shared state is one SQLite file in gits common direectory. No hooks, no merge drivers, nothing rewrites your history. It ships as one Rust binary with a CLI and MCP server with 18 tools and `foremerge setup all` wires it into Claude Code, Codex and Cursor. Because the protocol has nothing provider specific, a Claude agent and a Codex agent coordinate through the same store. Before any work is accepted, Foremerge runs a named check that you configured against the exact git state of the change. An agent that says tests pass is recorded but it dosnt satisfy the acceptance gate without running the check itself. Detection is deterministic, no judge model reading your code. HIGH conflicts are only asserted for declared operations, ie. matches inferred from prose cap out below high. Claims are advisory leases, not locks so two agents can still hold the same scope without deadlock. The open source version is single matching and so not a distributed consensus. We have tested this up to 98 parallel agents all working on the same repo with zero conflicts (was supposed to be 100 but 2 agents failed to run due to resource limitations) I replayed 76 intents on my own agents from a build last week in the order they happened. The sample had exactly 1 conflict (which was flagged) and the review found a blind spot where one agent claimed scope by class name and the other claimed it by an internal method. We are working on fixing that for the next release. Setup is a 30s install by pasting the quickstart instructions from the readme.md into your agent or manually: `curl -fsSL https://foremerge.com/install.sh | sh` or `cargo install --locked foremerge`, then `foremerge init && foremerge setup all` in a repo. Apache-2.0. The feedback I want most is which conflicts between your agents plans would you actually want flagged and which would you tollerate as noise? Repo here: https://github.com/naw103/foremerge Website: https://foremerge.com More information on the problems this solves: https://foremerge.com/blog/
45 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.