<?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: Jamshid sadiq</title>
    <description>The latest articles on DEV Community by Jamshid sadiq (@jamshid_sadiq_e99c62c781b).</description>
    <link>https://dev.to/jamshid_sadiq_e99c62c781b</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%2F4113046%2Fe7c2337e-69bf-4d2a-8061-092d869cb3e7.png</url>
      <title>DEV Community: Jamshid sadiq</title>
      <link>https://dev.to/jamshid_sadiq_e99c62c781b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jamshid_sadiq_e99c62c781b"/>
    <language>en</language>
    <item>
      <title>I gave my Claude Code agents a shared brain, and they stopped starting from zero</title>
      <dc:creator>Jamshid sadiq</dc:creator>
      <pubDate>Tue, 20 Oct 2026 06:47:13 +0000</pubDate>
      <link>https://dev.to/jamshid_sadiq_e99c62c781b/i-gave-my-claude-code-agents-a-shared-brain-and-they-stopped-starting-from-zero-2em</link>
      <guid>https://dev.to/jamshid_sadiq_e99c62c781b/i-gave-my-claude-code-agents-a-shared-brain-and-they-stopped-starting-from-zero-2em</guid>
      <description>&lt;p&gt;Every time I opened a new Claude Code session, the same thing happened. It re-read the same files. It rediscovered the same conventions. It repeated investigations it had already done yesterday. And while it worked, I couldn't really see what it was doing until it was finished.&lt;/p&gt;

&lt;p&gt;On a single repo that's annoying. On a project with several services, it's where the bugs slip through, because each session only sees one piece of the picture.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://github.com/JamshidS/aiset" rel="noopener noreferrer"&gt;aiset&lt;/a&gt;&lt;/strong&gt;: it turns your repositories into a team of Claude Code agents that share one brain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3k0ayy3dxi89tlb7of64.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3k0ayy3dxi89tlb7of64.gif" alt="The aiset Office: a PM and six engineer agents working on a real project" width="600" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;One command scans your project and generates a team:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pipx &lt;span class="nb"&gt;install &lt;/span&gt;aiset-cli
aiset-init ~/work/shop &lt;span class="nt"&gt;--team&lt;/span&gt; shop
shop-pm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;aiset-init&lt;/code&gt; detects each repo's stack and writes plain Claude Code agent files into &lt;code&gt;.claude/&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;PM&lt;/strong&gt; that plans the work, assigns it, and verifies it before reporting back&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;one engineer per repo&lt;/strong&gt; (or per stack in a big monorepo)&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;QA engineer&lt;/strong&gt; and an &lt;strong&gt;integration checker&lt;/strong&gt; that looks at how the services fit together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;shop-pm&lt;/code&gt; starts a conversation with the PM from any folder. You talk to it in plain words, and it runs the team.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the shared brain works
&lt;/h2&gt;

&lt;p&gt;This is the part I care about most. The memory isn't magic. It's a workflow built on plain files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your-project/
└── .claude/
    ├── agents/          PM, engineers, QA, integration checker
    └── team/
        ├── roster.json  who owns which repo, and on which model
        ├── knowledge/   briefs: architecture, conventions, pitfalls, dated field notes
        ├── tasks/       boards, contracts, handoffs
        └── episodes/    what each finished task decided and learned
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Briefs.&lt;/strong&gt; Each engineer keeps a knowledge brief for its repo: architecture, conventions, test commands, known pitfalls and dated field notes. Before a task, an engineer reads the brief's index and only the sections it needs, instead of exploring the codebase from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Episodes.&lt;/strong&gt; When a task closes, the PM writes an episode: what was asked, what was decided, what went wrong, what was learned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The feedback loop.&lt;/strong&gt; The PM then carries those lessons back into the owner's brief. So every finished task leaves the team knowing a bit more, and the next one starts ahead.&lt;/p&gt;

&lt;p&gt;Everything is Markdown and JSON in your workspace. You can read it, edit it, and version it with your code if you like.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real run
&lt;/h2&gt;

&lt;p&gt;To show it honestly, I built a small demo app called &lt;strong&gt;&lt;a href="https://github.com/JamshidS/beanboard" rel="noopener noreferrer"&gt;Beanboard&lt;/a&gt;&lt;/strong&gt;: three FastAPI services (catalog on PostgreSQL, reviews on MongoDB, and an insights service that calls both) plus a React UI. Small enough to read in an afternoon, real enough to have genuine bugs.&lt;/p&gt;

&lt;p&gt;I asked the PM one thing: &lt;em&gt;"Can you do a quick bug analysis?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The PM wrote a task board, split the work between two engineers running in parallel, and watched them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr9ldzz3sbw5mdz1iogp0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr9ldzz3sbw5mdz1iogp0.gif" alt="The task board: two engineers analysing bugs in parallel" width="600" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;About two minutes later, it came back with a ranked table: severity, cause with file and line, proposed fix and effort.&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%2Fjbckmzfutg5l7rx4pn53.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%2Fjbckmzfutg5l7rx4pn53.png" alt="The PM's ranked findings table" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It found the issues I'd planted, plus two I hadn't. My favourite is in the "things that would trip up the fix" section. The fix for one bug needed the reviews service to call the catalog service, and the team noticed that &lt;code&gt;httpx&lt;/code&gt; was only in &lt;code&gt;requirements-dev.txt&lt;/code&gt;. Without moving it to &lt;code&gt;requirements.txt&lt;/code&gt;, the reviews container would have crashed on startup. That's exactly the kind of cross-repo problem a single session focused on one service tends to miss.&lt;/p&gt;

&lt;p&gt;Then I said go ahead. The engineers fixed the issues in parallel, and QA and the integration checker verified the result. After that, I asked for a feature: &lt;em&gt;"Let users sort the reviews."&lt;/em&gt; The PM asked which sort options I wanted before anyone wrote code, then shipped it across the UI and the API.&lt;/p&gt;

&lt;p&gt;Everything the team changed is on Beanboard's &lt;a href="https://github.com/JamshidS/beanboard/compare/main...aiset-run" rel="noopener noreferrer"&gt;&lt;code&gt;aiset-run&lt;/code&gt;&lt;/a&gt; branch, including 26 new tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watching the team work
&lt;/h2&gt;

&lt;p&gt;I didn't want a black box, so aiset comes with a local dashboard (&lt;code&gt;aiset&lt;/code&gt;, then open &lt;code&gt;http://127.0.0.1:8765&lt;/code&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Office:&lt;/strong&gt; a live view of every agent, their assignments, task boards, model, tokens and estimated cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brain:&lt;/strong&gt; one graph of agents, briefs, episodes, files, endpoints and models, with live trails showing what each agent is reading and editing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; a map of your services and infrastructure, read straight from the code, with a file and line behind every link.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings:&lt;/strong&gt; pick the model per agent, for example Opus for the PM and Sonnet or Haiku for routine work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu0pheswa2npt6tt74a9o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu0pheswa2npt6tt74a9o.gif" alt="The Brain: live trails from each agent to the files and briefs it touches" width="600" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After just two tasks on Beanboard, the Brain connected 7 agents, 4 repos and 5 briefs (56 sections) to the code's 13 endpoints, 8 models and 10 frontend API calls. That's what the next task starts from.&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%2F0jq1po1td4gy2yb9y1os.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%2F0jq1po1td4gy2yb9y1os.png" alt="The Brain after two tasks" width="799" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Research tools instead of grep chains
&lt;/h2&gt;

&lt;p&gt;Agents spend a lot of tokens grepping around. aiset includes &lt;code&gt;teammap&lt;/code&gt;, a small code-aware research CLI for Python and TypeScript that agents (and you) can use instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;teammap impact &lt;span class="s2"&gt;"/api/catalog/beans/{bean_id}"&lt;/span&gt; PATCH
&lt;span class="go"&gt;  PATCH /api/catalog/beans/{bean_id} is handled by update_bean() in catalog-service/app/routes.py:37
  4 consumer(s) found (1 exact), 2 model(s), 2 test file(s)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It traces endpoint → handler → models → frontend callers, shows what a change can reach, finds the files relevant to a task, and groups failures from a test log.&lt;/p&gt;

&lt;h2&gt;
  
  
  What three weeks of using it taught me
&lt;/h2&gt;

&lt;p&gt;I've been running my own work through aiset for almost three weeks now. The difference I notice most is that the team actually knows the repos: it doesn't re-explore the same code every session, it uses fewer tokens doing it, and it catches bugs that span more than one repo, which single sessions kept missing.&lt;/p&gt;

&lt;p&gt;Two honest limits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Memory is a workflow, not perfect recall.&lt;/strong&gt; Agents are instructed to save and read knowledge, but not every chat message becomes a rule. Review the briefs now and then, like any documentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token savings are what I've seen, not a benchmark.&lt;/strong&gt; The research tools return far less text than the greps they replace (&lt;a href="https://github.com/JamshidS/aiset/blob/master/docs/RESEARCH-TOOLS.md" rel="noopener noreferrer"&gt;measurements here&lt;/a&gt;), but I haven't proven end-to-end savings yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;aiset is MIT licensed, uses only the Python standard library, and runs entirely on localhost. It reads the transcripts Claude Code already writes and doesn't send your data anywhere new.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pipx &lt;span class="nb"&gt;install &lt;/span&gt;aiset-cli
aiset-init ~/work/your-project &lt;span class="nt"&gt;--team&lt;/span&gt; your-project
your-project-pm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The fastest way to see it is the demo: clone &lt;a href="https://github.com/JamshidS/beanboard" rel="noopener noreferrer"&gt;Beanboard&lt;/a&gt;, run it with Docker Compose, and ask the PM the same questions. It takes about five minutes.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/JamshidS/aiset" rel="noopener noreferrer"&gt;github.com/JamshidS/aiset&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd love feedback, especially from people running Claude Code on larger codebases. What would you want your AI team to remember?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
