</hive>
</the problem>
Teams running AI coding agents have no shared context across developers and machines. One agent declares an interface; another, on a different laptop, builds against a stale assumption of the same interface. The mismatch only surfaces at merge time, after both agents have committed to incompatible shapes. The gap the built-in agent-team features leave open is the cross-machine, uncommitted-contract case.
</my approach>
Give the agents a shared brain without changing how developers work. Forked a battle-tested MIT room-server CLI for transport, then reshaped the payload from chat into three structured primitives · intent, contracts, and collision alerts · mirrored to a hosted Supabase sync layer. Developers keep using native Claude Code; their agents publish and read context silently underneath.
</key features>
Three core primitives
share_intent, declare_contract, and get_team_context. Everything else is a surface over these three. The core surface does not grow without cause.
Cross-machine contract sync
Interface contracts that only exist in one developer's working tree are shared across separate machines in real time, before anything is committed.
Dependency-aware collision alerts
A version diff on contracts pushes an alert only to the agents that actually depend on what changed · amber as punctuation, not noise.
Never blocks the agent
Offline or unreachable, the MCP layer degrades silently. It is an augmentation, never a dependency the agent can trip over.
Privacy by construction
Stores only the intent, contracts, and events an agent explicitly publishes · never source code. The Supabase service key never enters a client bundle; CI fails if it does.
Production-grade monorepo
pnpm + Turborepo, strict TypeScript, typed zod events, RLS verified against real Postgres, and a lint/typecheck/test/build CI gate. Built in public, sprint by sprint.
</what i learned>
Forking the transport and spending effort on the novel payload beats rebuilding a room server from scratch · the boring parts were already solved well under an MIT license.
A three-primitive core is a feature, not a limitation. Holding the surface small keeps the product legible and the durable wedge protected.
Routing every user-facing name through a single brand constant makes a launch-day rename a one-line change instead of a refactor.