<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: James</title>
    <description>The latest articles on DEV Community by James (@jamesjindoai).</description>
    <link>https://dev.to/jamesjindoai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4142024%2Fe99cc79d-b852-4cf9-9f70-14e4851cd1db.png</url>
      <title>DEV Community: James</title>
      <link>https://dev.to/jamesjindoai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jamesjindoai"/>
    <language>en</language>
    <item>
      <title>I run 4 coding agents in parallel. The merge is where it dies.</title>
      <dc:creator>James</dc:creator>
      <pubDate>Fri, 25 Sep 2026 00:10:12 +0000</pubDate>
      <link>https://dev.to/jamesjindoai/i-run-4-coding-agents-in-parallel-the-merge-is-where-it-dies-197g</link>
      <guid>https://dev.to/jamesjindoai/i-run-4-coding-agents-in-parallel-the-merge-is-where-it-dies-197g</guid>
      <description>&lt;p&gt;All four of my agents reported success. Then I merged their branches and the build broke. I spent the evening passing messages between agents that were supposed to save me time.&lt;/p&gt;

&lt;p&gt;I've tried separate worktrees, clearer session names, and a shared planning doc. The worktrees kept agents from writing over each other. The names helped me keep track of them. But I was still the one carrying changes from one session to the next, and keeping that planning doc current was another job.&lt;/p&gt;

&lt;p&gt;We built Pawsly to work on this problem. The tests so far have been useful, though the results need some explanation: we got better coordination, but the two-agent coding pass rate didn't improve over shared Git. It also took more steps and cost more.&lt;/p&gt;

&lt;p&gt;Here's what kept going wrong, and what we actually measured.&lt;/p&gt;

&lt;h2&gt;
  
  
  The branches looked fine on their own
&lt;/h2&gt;

&lt;p&gt;One agent renamed an auth parameter. Another was still working from the old signature. Both had green tests in their own branches; the combined build failed on its first run.&lt;/p&gt;

&lt;p&gt;We saw plenty of overlap in the benchmark too. In all 10 &lt;a href="https://github.com/cooperbench/CooperBench" rel="noopener noreferrer"&gt;CooperBench&lt;/a&gt; tasks we ran with two agents, both features touched the same file. In five, they touched the same lines. When agents could message each other but couldn't share code, seven of the ten merges conflicted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc6pbs2v198wy7nb8i5bq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc6pbs2v198wy7nb8i5bq.png" alt="Separate workspaces, shared files: CooperBench's two features overlap in every task." width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Separate workspaces helped with isolation. They still left us needing a way to get a change on one branch to the agent working on another.&lt;/p&gt;

&lt;h2&gt;
  
  
  I kept repeating decisions
&lt;/h2&gt;

&lt;p&gt;I told the gateway agent to change our rate-limit strategy. The other three kept building on the old one for two days.&lt;/p&gt;

&lt;p&gt;That was an easy thing to miss while each conversation looked reasonable on its own. I'd made the decision, but I'd only made it in one chat. Getting it to the other sessions was still my responsibility.&lt;/p&gt;

&lt;p&gt;Handoffs caused a similar problem. One agent finished a migration but left two judgment calls unwritten. The agent doing the backfill worked from the stale ticket and corrupted a few thousand rows.&lt;/p&gt;

&lt;p&gt;We also looked at commit handoffs in our own runner. Across 60 handoffs where both agents changed the same file, eight missed the point when the next agent needed the commit. In five of those eight, the commit already existed. It just hadn't been passed along.&lt;/p&gt;

&lt;p&gt;Those eight missed handoffs involved seven agent pairs. Replaying the final branch merges with git produced conflicts for all seven pairs. Replaying an earlier handoff would have applied cleanly in six of the eight cases.&lt;/p&gt;

&lt;p&gt;That's a narrower result than saying we'd fixed those runs. We replayed the merges; we didn't rerun the agents. A clean merge doesn't tell us whether the next agent would have used the code correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built
&lt;/h2&gt;

&lt;p&gt;Pawsly connects the decisions in Slack, Linear and GitHub with the agents doing the work. Agents talk to it over MCP. Before acting, an agent declares what it intends to do and gets an alignment check: proceed, or stop because a decision or dependency is in the way.&lt;/p&gt;

&lt;p&gt;For dependent tasks, we pass along the accepted commits. One designated integrator combines the work, and a separate verifier checks it before human review.&lt;/p&gt;

&lt;p&gt;That's the approach we're testing. The benchmarks below cover particular parts of it, rather than proving the whole workflow works reliably in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the tests showed
&lt;/h2&gt;

&lt;p&gt;These were small internal runs, using the same model within each comparison.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;CooperBench&lt;/strong&gt;, four agents submitted identical patches on nine of ten tasks with Pawsly, compared with three of ten using the benchmark's shared-Git option. With two agents, it was ten of ten versus seven of ten.&lt;/p&gt;

&lt;p&gt;The correctness result was less exciting. In the &lt;strong&gt;two-agent&lt;/strong&gt; runs, both Pawsly and shared Git passed the same six of ten tasks. We didn't grade the four-agent runs for correctness. Getting everyone to submit the same code still leaves the question of whether that code works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhspc3zi7o6sl5ekbx7ec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhspc3zi7o6sl5ekbx7ec.png" alt="CooperBench results: agreement rose, correctness did not." width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also tested whether an agent would follow decisions outside its immediate task:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In our &lt;a href="https://github.com/TheAgentCompany/TheAgentCompany" rel="noopener noreferrer"&gt;TheAgentCompany&lt;/a&gt; adaptation, there were 36 GitLab issues to clean up. Twelve had to stay open because of decisions the cleanup task didn't mention. The bare agent respected none of those holds; the Pawsly-guided agent respected all twelve. Both completed the required cleanup. We supplied the decisions to Pawsly, so this tested whether it could deliver them, not whether it could discover them.&lt;/li&gt;
&lt;li&gt;For our &lt;a href="https://github.com/multi-agent-systems-failure-taxonomy/MAST" rel="noopener noreferrer"&gt;MAST&lt;/a&gt; adaptation, we wrote scenarios for fourteen failure modes. Twelve had objective checks, giving us 36 scored outputs per arm across three seeds. The bare arm passed 22; the guided arm passed 35. We loosened one check after the run. Under the original check, the guided score was 32/36. These scenarios also used supplied decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There was a cost to the coordination. In the two-agent CooperBench comparison, Pawsly used about 1.5 times the steps and estimated dollars of shared Git. Estimated cost per passing task was $5.80 versus $3.86. We haven't measured the time or money spent finding and fixing the failures it prevented, so we can't say it saves money overall.&lt;/p&gt;

&lt;p&gt;One correction worth keeping visible: I originally reported the four-agent shared-Git result as 2/10. Our count included leftover patches from an interrupted run. Counting the final submissions gives 3/10.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://jindoai.net/engineering" rel="noopener noreferrer"&gt;full methods, per-case results and corrections&lt;/a&gt; are on our engineering page.&lt;/p&gt;

&lt;p&gt;I'm looking for design partners using Claude Code or Codex on real work. If you're dealing with this too, I'd like to hear what happens when you combine the results. You can reach us at &lt;a href="mailto:founders@jindoai.net"&gt;founders@jindoai.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What are you still having to pass between your agents by hand?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>showdev</category>
      <category>ai</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
