<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>coordination on tomrochette.com</title>
    <link>https://tomrochette.com/tags/coordination/</link>
    <description>Recent content in coordination on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Wed, 23 Sep 2026 22:00:46 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/coordination/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Foremerge</title>
      <link>https://tomrochette.com/agents/orchestration/foremerge/</link>
      <pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/orchestration/foremerge/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>orchestration</category><category>parallel-agents</category><category>coordination</category><category>git-worktrees</category><category>open-source</category>
      <description>&lt;p&gt;Foremerge is an Apache-2.0 coordination protocol for coding agents, built above Git: agents publish what they are about to change before they change it, and a deterministic detector flags collisions between plans that Git merges without complaint.&#xA;Facts below verified as of 2026-09-22.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Worktree isolation solved file collisions and left plan collisions untouched, and Foremerge is the first tool in this category to attack exactly that residue: two agents, two clean worktrees, zero textual conflicts, one stranded extension point.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A single Rust binary with three adapters over one SQLite store that lives in the repository&amp;rsquo;s git common directory, which linked worktrees share automatically: a CLI with &lt;code&gt;--json&lt;/code&gt; output, an authenticated loopback JSON API, and an MCP server exposing eighteen tools (&lt;code&gt;publish_intent&lt;/code&gt;, &lt;code&gt;claim_work&lt;/code&gt;, &lt;code&gt;check_conflicts&lt;/code&gt;, &lt;code&gt;publish_changeset&lt;/code&gt;, &lt;code&gt;run_verification&lt;/code&gt;, and more).&#xA;Agents declare intents with semantic scopes, &lt;code&gt;symbol:PaymentService=replace&lt;/code&gt;, &lt;code&gt;api:POST /v1/charges&lt;/code&gt;, &lt;code&gt;schema:invoices.total&lt;/code&gt;, covering twelve scope kinds, because file paths miss API, schema, and cross-language collisions.&#xA;Detection is deterministic and explainable, never an LLM: the same inputs produce the same findings, each naming the rule that fired and suggesting a resolution.&#xA;Claims are leased and advisory; nothing locks, because a crashed agent must not stall the fleet.&#xA;Acceptance is gated on verification the tool runs itself against the exact Git fingerprint of the candidate, and agent-reported test results are recorded as provenance, not proof.&#xA;The author is Nick Woodhead, who built it as internal tooling at GPTree, a company that runs Claude Code, Codex, and Cursor on one repository at once, and open-sourced it in September 2026.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Active, young, and gaining traction fast.&#xA;The repository was created 2026-08-21 and shows 498 stars and 20 forks as of 2026-09-22 (GitHub API; repository timestamps ran into the early hours of 2026-09-23 UTC, just after this verification).&#xA;Its Show HN on 2026-09-21 drew 45 points and 16 comments, modest by this category&amp;rsquo;s standards but substantive, with real pushback answered in the thread.&#xA;v0.4.3 shipped 2026-09-18, and v0.5.0 was tagged in the early hours of 2026-09-23 UTC, hours after this note&amp;rsquo;s verification, still pre-1.0 with public schemas that may change.&#xA;The author reports it has been a critical part of GPTree&amp;rsquo;s development flow since January, which makes it one of the few tools in this section dogfooded in production before it was a product.&#xA;No published benchmark results exist yet; the project says so itself rather than claiming them.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The problem is real and every worktree manager here has it&lt;/strong&gt;: worktrees isolate files, not plans, and the destructive-versus-additive, duplicate-work, and contract-drift failures all merge cleanly.&lt;/li&gt;&#xA;&lt;li&gt;Deterministic, explainable detection with no model in the path, so findings are reproducible and cheap.&lt;/li&gt;&#xA;&lt;li&gt;Worktree-native by construction: the store lives in the git common directory, so every worktree of the same repo shares one picture without a daemon.&lt;/li&gt;&#xA;&lt;li&gt;The limitations documentation is unusually rigorous for a pre-1.0 tool, down to refusing performance claims until benchmarks are published.&lt;/li&gt;&#xA;&lt;li&gt;Mixed fleets are the design center: the protocol carries nothing provider-specific, and every ChangeSet records which agent and model did what.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pre-1.0 MVP with public schemas that may still change, so adopt it as a protocol experiment, not infrastructure.&lt;/li&gt;&#xA;&lt;li&gt;Detection is heuristic: it can miss synonymous concepts and warn on work that was always compatible, and a false HIGH is worse than silence when severity decides what an agent stops for.&lt;/li&gt;&#xA;&lt;li&gt;Local-first means one machine; multi-machine shared mode does not exist and is explicitly out of scope today.&lt;/li&gt;&#xA;&lt;li&gt;Advisory-only means an agent can ignore a warning, and the project&amp;rsquo;s own Q&amp;amp;A treats &amp;ldquo;what happens when an agent does&amp;rdquo; as an open question.&lt;/li&gt;&#xA;&lt;li&gt;One author, one production user (his own company), and no independent critical review yet.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free and open source under Apache-2.0.&#xA;No paid tier, cloud, or hosted component exists; the runtime cost is your own agents.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/worktrunk/&#34; &gt;Worktrunk&lt;/a&gt;: automates the worktree lifecycle but knows nothing of what agents plan inside them; Foremerge complements it rather than competing, coordinating the plans that worktrees isolate.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/dmux/&#34; &gt;dmux&lt;/a&gt;: fans agents out into worktree panes with the same blind spot; pair it with Foremerge if you want the fan-out plus intent awareness.&lt;/li&gt;&#xA;&lt;li&gt;A shared task list: catches duplicate work if every agent reads it every time, and catches none of the destructive-versus-additive or contract-drift failures, which is precisely the gap Foremerge claims.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended for engineers running three or more parallel agents on one repository who have already lost a clean merge to a design collision, and who can tolerate pre-1.0 schema churn.&lt;/strong&gt;&#xA;Not for multi-machine fleets, anyone needing a supported product, or teams that want locks instead of warnings.&#xA;My disagreeable claim: this is the missing layer the whole worktree-manager category assumed somebody else would build, and it is more likely to be absorbed into every orchestrator here than to stay a standalone install.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-09-22 - Created from the same-day entrant resolution (45-point Show HN on 2026-09-21, 498 stars, six primary sources fetched this run).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/worktrunk/&#34; &gt;Worktrunk&lt;/a&gt; - the worktree lifecycle manager whose isolation Foremerge&amp;rsquo;s coordination sits above&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/dmux/&#34; &gt;dmux&lt;/a&gt; - the terminal fan-out tool with the same plan-collision blind spot&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/orchestration/orchestration-feature-matrix/&#34; &gt;Orchestration Feature Matrix&lt;/a&gt; - the category comparison this column joins&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/managing-many-llm-agent-sessions/&#34; &gt;Managing Many Concurrent LLM Agent Sessions&lt;/a&gt; - the supervision problem whose merge-time residue Foremerge attacks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/naw103/foremerge&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/naw103/foremerge&lt;/a&gt; - repository, Apache-2.0, 498 stars, Rust, created 2026-08-21 (GitHub API, 2026-09-22)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/naw103/foremerge/HEAD/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/naw103/foremerge/HEAD/README.md&lt;/a&gt; - protocol, scope vocabulary, status banner, and the deterministic no-LLM design&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://foremerge.com&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=foremerge.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://foremerge.com&lt;/a&gt; - official site: MCP tools, the intent lifecycle, semantic scopes, and the &amp;ldquo;what it does not claim&amp;rdquo; section&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/naw103/foremerge/releases&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/naw103/foremerge/releases&lt;/a&gt; - v0.4.3 (2026-09-18) and v0.5.0 (tagged early 2026-09-23 UTC) (GitHub API)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://naw103.substack.com/p/parallel-coding-agents-without-the&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=naw103.substack.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://naw103.substack.com/p/parallel-coding-agents-without-the&lt;/a&gt; - the founding post: the PaymentService failure, leased claims, verification gates, and limitations&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/items/49789356&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/items/49789356&lt;/a&gt; - the 45-point Show HN thread (2026-09-21) with the determinism pushback and the author&amp;rsquo;s answers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
