<?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: Jonathan Armstrong</title>
    <description>The latest articles on DEV Community by Jonathan Armstrong (@jarmstrong158).</description>
    <link>https://dev.to/jarmstrong158</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%2F4026408%2F2c487420-01fe-46a4-814e-4337f65c2305.png</url>
      <title>DEV Community: Jonathan Armstrong</title>
      <link>https://dev.to/jarmstrong158</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jarmstrong158"/>
    <language>en</language>
    <item>
      <title>I built a production multi-agent MCP stack — from my phone</title>
      <dc:creator>Jonathan Armstrong</dc:creator>
      <pubDate>Sun, 12 Jul 2026 20:30:45 +0000</pubDate>
      <link>https://dev.to/jarmstrong158/i-built-a-production-multi-agent-mcp-stack-from-my-phone-37ma</link>
      <guid>https://dev.to/jarmstrong158/i-built-a-production-multi-agent-mcp-stack-from-my-phone-37ma</guid>
      <description>&lt;p&gt;I manage a warehouse. I am not a professional software engineer. But over the&lt;br&gt;
last several months I built and shipped a stack of AI-agent infrastructure —&lt;br&gt;
most of it typed on my phone during breaks and after shifts — and it's now live&lt;br&gt;
on the official Model Context Protocol registry. Here's what it is and the one&lt;br&gt;
idea that made it work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The problem.&lt;/strong&gt; When you run more than one AI coding agent against the same&lt;br&gt;
repo, two things break: they forget (every session starts from zero) and they&lt;br&gt;
collide (two agents editing the same files). The usual fixes are heavyweight —&lt;br&gt;
a database, a server, a queue. I wanted something local-first that works&lt;br&gt;
offline and needs no infrastructure I'd have to babysit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The one idea: git is already a coordination primitive.&lt;/strong&gt; &lt;code&gt;git push&lt;/code&gt; rejects&lt;br&gt;
your write if someone changed the branch first. That's a compare-and-swap — the&lt;br&gt;
exact "only save if nobody beat you to it" rule you'd normally reach for a&lt;br&gt;
database to get. So I put the agents' coordination state in a JSON file on a&lt;br&gt;
dedicated branch and let &lt;code&gt;git push&lt;/code&gt; be the lock. No server. A phone and a&lt;br&gt;
desktop become equal peers on one board, because the GitHub Contents API&lt;br&gt;
enforces the same rule the phone's git client does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The stack (Xylem):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;context-keeper&lt;/strong&gt; — durable project memory. Records the &lt;em&gt;why&lt;/em&gt; behind
decisions, not just the what, in human-editable JSON. Published evals: up to
~92% context reduction vs. dumping the whole store, with calibrated
abstention when it doesn't actually know.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;agentsync&lt;/strong&gt; — the coordination layer above. 1,000 simulated concurrent
races in the test suite: zero lost claims, zero double-grants.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;cambium&lt;/strong&gt; — the knowledge lifecycle. It distills finished work into
recallable lessons and promotes them by &lt;em&gt;earned trust&lt;/em&gt;: local → team → org.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The part I still find a little wild: the stack now runs its own development. It&lt;br&gt;
audited a reinforcement-learning agent I'm training, compared the agent's&lt;br&gt;
recorded design decisions against what actually happened in the training run,&lt;br&gt;
found a learning-rate bug, and I fixed it and relaunched — coordinated from my&lt;br&gt;
phone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it's not.&lt;/strong&gt; It's lexical recall, not semantic (yet). Coordination is&lt;br&gt;
advisory, not enforced. I've tried to be honest about every limit in the&lt;br&gt;
READMEs, because tools that oversell their guarantees are worse than none.&lt;/p&gt;

&lt;p&gt;If you're building with agents, it's all open source and on the MCP registry:&lt;br&gt;
&lt;a href="https://github.com/jarmstrong158/xylem" rel="noopener noreferrer"&gt;https://github.com/jarmstrong158/xylem&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd genuinely like feedback — especially on where the git-as-CAS model breaks&lt;br&gt;
down at scale.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>git</category>
      <category>mcp</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
