Tool / Swarm coordination ledger

Ruflo

Spawns swarms of agents coordinated through MCP tools, with shared memory, work claims and hive-mind consensus.

The summary describes what the project says it does; inclusion is not an endorsement.

Take

Formerly Claude Flow; the packages still ship as claude-flow. Its own CLAUDE.md now says Ruflo records the work and Claude Code does it. Its issue tracker is an unusually detailed record of what goes wrong when many agents share one project.

Mentioned in

Quote

agents overriding each other: File lock?

github.com · Issue #70

“I noticed that when we have multiple agents or multiple Claude Code instances running, that it happens that they work on the same files sometimes resulting in overriding each other's work before changes are saved or committed.”
— gxjansen, on GitHub
Take

A first-person report with no trace attached. Closed in July 2025 with a maintainer comment announcing file locking in v2.0.0; no linked PR.

  • Coordinate
Quote

CRITICAL: Verification & Truth Enforcement System Failure in Multi-Agent Architecture

github.com · Issue #640, Verification Breakdown - The Root Cause

“Agents self-report "success" without mandatory verification”
— ruvnet (Ruflo maintainer), on GitHub
Take

A maintainer's warning about how one false claim of success passes through a chain of agents. Its three-agent example and 89% failure figure are illustrations, not a measured incident. Still open.

  • Verify
Quote

Subagents cannot use SendMessage/TaskUpdate in Claude Code harness — hive-mind coordination silently fails

github.com · Issue #2028, What happened

“2 of 7 agents aborted before doing any work; 5 completed only because they ignored the brief and worked in "degraded mode" — reading source docs directly and using the shared memory namespace as a bus.”
— mamd69, on GitHub
Take

Part of the cause is which tools Claude Code gives subagents, so not all of it is Ruflo. The fix was a documentation change in 3.7.0-alpha.69.

  • Coordinate
Quote

claims: MCP claims store is cwd-relative (bare resolve()), so every worktree/session gets its own claims.json

github.com · Issue #3178

“Under the repo's own "worktree-per-writer" rule, each worktree (and each Claude Code session with a different cwd) reads and writes a different claims.json, so claims_claim / claims_board / claims_steal do not coordinate the sessions they are meant to coordinate.”
— ruvnet (Ruflo maintainer), on GitHub
Take

Isolating the code also isolated the coordination. Shown by reading the source, not from an incident where two agents took the same task. The fix, PR #3210, was still unmerged in October 2026.

  • Coordinate
  • Isolate
Quote

Durable state anchored to raw process.cwd(): agent cwd drift silently resets autopilot/neural/metrics/memory

github.com · Issue #2633, Summary

“The result is that state is written to whichever subdirectory the session drifted into, and then never read again. Nothing errors.”
— sparkling, on GitHub
Take

On one 12-repository workspace this left 109 state directories (97 stray) and about 25 daemons. Fixed in the reporter's fork; the upstream issue is still open. A 2025 issue (#765) describes the same root cause.

  • Remember
  • Isolate
Quote

3.25.6 field report: daemon ↔ MCP last-writer-wins still drops MCP-session writes

github.com · Comment on issue #2621, The write drop is reproducible in ~30 lines

“Every one of the 50 writes returned success: true, and the DB stays integrity_check: ok. One process's entire batch was obliterated.”
— sparkling, on GitHub
Take

Two processes wrote 25 rows each; all 50 writes were acknowledged and 25 rows remained. The test forced the sql.js fallback path, so it doesn't apply to every backend. The remaining race moved to #2878, closed in August 2026.

  • Remember
Quote

task_update stores any status string; a task stored as "complete" is shown as pending and Mission Control would hand it to Claude again

github.com · Issue #3931, Summary

“nextTask() would therefore hand a finished task to Claude again, which is a new billed turn.”
— proffesor-for-testing, on GitHub
Take

One word, "complete" instead of "completed", made five finished tasks look pending again. The issue shows the risk of the work running twice, not that it did. Fixed by PR #3932 and released in 3.56.2.

  • Coordinate
Quote

security: hive-mind_consensus accepts votes from unregistered/forged voterId (Sybil)

github.com · Issue #3290, Deep Dive Findings

“calculateRequiredVotes() derives the quorum threshold from state.workers.length, so a single caller could cross any strategy's threshold (raft/bft/quorum alike) by voting under fabricated identities — a Sybil attack on consensus.”
— ruvnet (Ruflo maintainer), on GitHub
Take

Shown in tests, not by an attacker or by agents colluding. Agent votes only mean something when identity is checked. Fixed by PR #3291; a follow-up (#3338, PR #3339) closed the same gap in sibling operations in October 2026.

  • Coordinate
  • Verify
Quote

helper-refresh.ts self-heal path can overwrite newer local .claude/helpers/* content with stale bundled content

github.com · Issue #3005, Impact

“Real risk of a contributor believing a fix is committed/shipped when their working tree has silently been reverted underneath them, especially if they don't diff before committing.”
— ruvnet (Ruflo maintainer), on GitHub
Take

With nine MCP processes and five agent worktrees running, a fix reverted twice with no git operation touching the file. The tooling itself became an unexpected writer. The cause is a hypothesis; the issue is still open.

  • Coordinate
Quote

Ruflo CLAUDE.md

github.com · Capability Brain and Governed Implementation

“Ruflo is the coordination ledger and policy decision point. Claude Code executes code, tests, commands, and file changes. A Ruflo coordination call records work; it does not perform the implementation.”
— Ruflo maintainers
Take

The project's own answer to the reports of swarms that did nothing. These are policies in a file, not proof they're enforced.

  • Verify
  • Coordinate
Quote

AgentDB (sql.js) corruption: 185MB memory.db malformed under concurrent daemon+MCP writes

github.com · Issue #2584, Summary

“This is a data-durability bug in the AgentDB persistence layer: a long-running store should not be one interrupted/concurrent flush away from total loss.”
— ruvnet (Ruflo maintainer), on GitHub
Take

A shared memory database with about 16,700 entries became unreadable, then broke again about half an hour after a restore. PR #2585 added atomic flushes; cross-process locking was left for later.

  • Remember
Quote

Ruflo CLAUDE.md

github.com · Concurrent Automated Development

“Never allow two writers in one worktree. Give every writing agent an isolated worktree and explicit file ownership.”
— Ruflo maintainers
Take

The same section adds: "Only the integration owner edits shared manifests and lockfiles or reconciles overlapping changes."

  • Isolate
  • Coordinate
Quote

Ruflo is 99% Theater, 1% Real — An Independent Audit of Every Tool

github.com · Issue #1514, The Architectural Gap

“But the wire connecting agent_spawn → LLM provider → task execution is missing. This isn't a bug in one tool — it's a structural gap across the entire orchestration layer.”
— roman-rr, on GitHub
Take

An audit of v3.5.51. The maintainer fixed the hardcoded metrics it found (PR #1535) and disputed other points. The 99% headline is the auditor's claim, not a measurement.

  • Verify
Quote

worker-daemon.js:saveState() race on a shared .tmp filename

github.com · Issue #2782, Relationship to #1637

“the maintainer's fix prevents cross-process corruption, but does not prevent two saveState() calls within the same process from racing on the shared <file>.tmp name.”
— mjbfg1995, on GitHub
Take

The fix for the run-count race introduced a new one: about 56,000 errors in one daemon log. The damage was log noise, not lost data. Fixed by PR #2788.

  • Remember
Quote

Bug: MCP-spawned agents not registered with Communication/MessageRouter

github.com · Issue #899, Bug Description

“Agents spawned via MCP tools (agent_spawn, mcp__claude-flow__agent_spawn) cannot communicate with each other using daa_communication.”
— Fieldnote-Echo, on GitHub
Take

A spawned agent isn't automatically one other agents can reach. Reported against v2; triage in October 2026 says the subsystem no longer exists in v3.

  • Coordinate
Quote

memory_retrieve serves stale or deleted values when two MCP servers share a store (per-process cache)

github.com · Issue #3360, Summary

“When two ruflo MCP servers share one memory store, memory_retrieve on one server keeps returning a value after the other server has updated or deleted it.”
— HF-teamdev, on GitHub
Take

Shown with a two-process reproducer: a per-process cache served old values for up to five minutes while the database held the right one. Fixed by PR #3361 in September 2026.

  • Remember
Quote

Swarm agents still do not execute work — v3.5.42 (@claude-flow/cli@latest)

github.com · Issue #1397, introduction

“The state-tracking fix from this issue was correctly applied — task_assign now transitions tasks to in_progress. However, agents never execute the assigned work.”
— nriccar, on GitHub
Take

Seven agents reported as spawned, none did anything, and no file appeared. Closed as a duplicate of #1423, which PR #1435 fixed in March 2026. This shows v3.5.42, not later releases.

  • Verify
Quote

Claude Flow Swarm Rules

github.com · Discussion #696

“It has rules in its shared memory, and I keep asking it specifically to check the Claude.md file for the rules before it executes, but it just doesn't.”
— jasonmckelliget32, on GitHub
Take

Rules written in prose aren't enforced permissions. The reporter couldn't tell whether Ruflo or Claude Code was at fault, and no reply or log followed.

  • Coordinate
Quote

Ruflo Evaluation Review and Upstream Fix Requests

github.com · Issue #1748, What we found — per expectation (G5)

“Zero phases completed. Zero output.”
— hilbertp, on GitHub
Take

The swarm commands reported success on a three-phase task, while a single Claude Code subagent finished all three in about 45 seconds. The maintainer accepted the tool-wiring bug and merged fixes the same day.

  • Verify
Preview · not yet reviewed by a human