{"slug": "parallel-coding-agents-are-rediscovering-the-blackboard", "title": "Parallel Coding Agents Are Rediscovering the Blackboard", "summary": "Indie developer Dexter Lung released agent-work-board, an MIT-licensed template and scripts that use a single markdown file in git to coordinate parallel Claude Code sessions, reviving the 1970s blackboard architecture from CMU's Hearsay-II project. The approach uses push-to-claim optimistic concurrency control to prevent agents from wrecking each other's plans, addressing a bottleneck that Anthropic's worktrees and experimental agent teams do not fully solve.", "body_md": "[AI](https://sourcefeed.dev/c/ai)Article\n\n# Parallel Coding Agents Are Rediscovering the Blackboard\n\nWhen Claude Code sessions collide, a markdown file in git beats fancy orchestration — and a 1970s AI pattern explains why.\n\n[Priya Nair](https://sourcefeed.dev/u/priya_nair)\n\nRun enough [Claude Code](https://code.claude.com/docs) sessions in parallel and you'll hit the wall every multi-agent developer hits: the agents don't wreck each other's files anymore — worktrees solved that — they wreck each other's *plans*. One session merges to main while another is mid-push. You glance at a branch, decide it's stale, and delete it while a session three tabs over is actively building on it. Indie developer Dexter Lung described exactly that near-miss recently — a live branch rescued only by `git reflog`\n\n— and his fix is worth paying attention to, not because it's novel, but because it's fifty years old.\n\nHis solution: a single markdown file on mainline that every session reads and writes. Sections for in-progress, backlog, and done. An area map declaring which work touches which parts of the codebase. One hard rule — claim before you act: add your row, push immediately, and let git be the lock. First push wins; the loser pulls, sees the claim, and picks something else. He's published the template and scripts as [agent-work-board](https://github.com/dragon375014/agent-work-board) under MIT.\n\n## The blackboard is back\n\nIf you took an AI course before deep learning ate the curriculum, you'll recognize this instantly. It's the blackboard architecture from CMU's Hearsay-II speech understanding project in the 1970s: independent \"knowledge sources,\" each competent at one thing, watching a shared data structure and opportunistically contributing when they see something they can act on. No central scheduler micromanaging every step — coordination emerges from shared visible state.\n\nThat pattern spent decades as a historical footnote because we stopped building systems out of loosely coupled reasoning agents. Now everyone with a Claude Code subscription is building exactly that, and the coordination problem is back with the same shape it had in 1975. The revival isn't nostalgia; it's convergent evolution. When your workers are opaque, stateless-ish reasoners that can't share memory, a durable shared artifact they all read and write is the natural coordination primitive.\n\nWhat's telling is the medium. Lung didn't build a lock server or a message queue. He used a markdown file versioned in git — and that's the correct engineering call, not a hack. Git already gives you the hard parts: atomic compare-and-swap (push rejection on a stale ref), full audit history, and conflict surfacing. Push-to-claim is optimistic concurrency control that every developer already understands. And a markdown file is legible to the one participant who matters most: you, three days later, trying to remember which of six sessions was doing what. Lung's sharpest observation is that the bottleneck was never agent throughput — it was his own attention across days of scattered sessions.\n\n## What the vendor gives you, and where it stops\n\nAnthropic has been shipping into this space from two directions, and it's instructive where each stops short.\n\n[Git worktrees](https://code.claude.com/docs/en/worktrees) are the official answer to parallel sessions, and they work — each session gets its own checkout, so edits never physically collide. But worktrees are *isolation*, not *coordination*. Anthropic's own docs concede the limit: worktrees prevent sessions from overwriting each other's files, not from making incompatible assumptions. Two agents can each pass their tests in their own worktree and still produce a merge that's semantically broken. Isolation without shared intent just defers the collision to merge time.\n\n[Agent teams](https://code.claude.com/docs/en/agent-teams) — experimental, off by default behind `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`\n\n— are the real coordination play: a lead session, teammates with their own context windows, inter-agent mailboxes, and a shared task list where claiming uses file locking to prevent races. That's a blackboard, just JSON under `~/.claude/teams/`\n\ninstead of markdown on mainline. But it's scoped to one session and largely ephemeral: the team config is deleted when the session ends, in-process teammates don't survive `/resume`\n\n, and there's exactly one team per session. It coordinates a burst of parallel work, not a week of it.\n\nThat gap — durable, cross-session, cross-day coordination — is precisely where the markdown blackboard lives. It also happens to be tool-agnostic: the same file coordinates Claude Code, Cursor, and Codex sessions, which no vendor's team feature will ever prioritize.\n\n## Adopting it without fooling yourself\n\nIf you're running two or more concurrent sessions on one repo, the pattern costs almost nothing to try. Put a `WORK-BOARD.md`\n\non mainline, define five to eight named areas of the codebase (areas, not files — file-level claims are too granular to survive contact with a refactor), and write the claim-before-act protocol into `CLAUDE.md`\n\nso every session ingests it at startup.\n\nThen internalize the two failure modes Lung documents, because they're the honest part of the writeup. First, the board itself becomes the contention hotspot — the one file everyone writes needs the strictest rules, so each session edits only its own row. Second, and more damning for anything agent-maintained: the board lies. Sessions forget to update rows; claims go stale. His answer is a script (`npm run board`\n\n) that derives branch freshness from git history instead of trusting what agents wrote. That's the principle to steal even if you steal nothing else — derived state over declared state. An LLM following a protocol is soft enforcement; it holds until context runs long. For hard guarantees, back the convention with hooks or CI — and even there, Lung managed to accidentally neuter his own pre-push check by adding an always-succeeding reminder line to it. Governance that can't fail loudly isn't governance.\n\nMy read: this specific artifact is scaffolding with a shelf life. Claude Code's task lists already persist locally across resumed sessions; durable, project-scoped team state is an obvious next step for every agent vendor, and when it lands, hand-rolled boards will fade the way `TODO.txt`\n\nfaded into issue trackers. But the architecture underneath — shared, durable, human-inspectable state as the coordination layer for opaque parallel workers — is the part that was true in 1975 and will still be true when the tooling catches up. Bet on the blackboard, not the board.\n\n## Sources & further reading\n\n-\n[I Built My AI Team a Blackboard - How to Stop Parallel Claude Sessions From Colliding](https://dev.to/dexterlung/i-built-my-ai-team-a-blackboard-how-to-stop-parallel-claude-sessions-from-colliding-j71)— dev.to -\n[agent-work-board: a one-file coordination board for parallel AI coding sessions](https://github.com/dragon375014/agent-work-board)— github.com -\n[Orchestrate teams of Claude Code sessions](https://code.claude.com/docs/en/agent-teams)— code.claude.com -\n[Run parallel sessions with worktrees](https://code.claude.com/docs/en/worktrees)— code.claude.com\n\n[Priya Nair](https://sourcefeed.dev/u/priya_nair)· AI & Developer Experience Writer\n\nPriya covers AI frameworks, developer productivity tooling, and the startup ecosystem across South and Southeast Asia, bringing a researcher's rigour and a practitioner's empathy to every story. She is deeply sceptical of benchmarks and asks hard questions so her readers don't have to.\n\n## Discussion 0\n\nNo comments yet\n\nBe the first to weigh in.", "url": "https://wpnews.pro/news/parallel-coding-agents-are-rediscovering-the-blackboard", "canonical_source": "https://sourcefeed.dev/a/parallel-coding-agents-are-rediscovering-the-blackboard", "published_at": "2026-08-10 03:08:38+00:00", "updated_at": "2026-08-10 03:12:17.876968+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools"], "entities": ["Dexter Lung", "Claude Code", "Anthropic", "agent-work-board", "CMU", "Hearsay-II"], "alternates": {"html": "https://wpnews.pro/news/parallel-coding-agents-are-rediscovering-the-blackboard", "markdown": "https://wpnews.pro/news/parallel-coding-agents-are-rediscovering-the-blackboard.md", "text": "https://wpnews.pro/news/parallel-coding-agents-are-rediscovering-the-blackboard.txt", "jsonld": "https://wpnews.pro/news/parallel-coding-agents-are-rediscovering-the-blackboard.jsonld"}}