Contracts, not just files
Exported functions and types, HTTP routes and zod schemas in TypeScript, JavaScript, Python and Go. A breaking change warns everyone who calls it.
Conflict detection
Comity sees what every agent is editing. When two of them head for the same function, API or table, both hear about it before either writes a line.

Three steps that run on every edit, in every agent on the team.



What Comity checks, and how it stays out of the way.
Exported functions and types, HTTP routes and zod schemas in TypeScript, JavaScript, Python and Go. A breaking change warns everyone who calls it.
SQL, Prisma, Knex and Drizzle changes are keyed by table, and two new migrations with the same number overlap even on different tables.
When a route or package export breaks in one repo, the agent using it in a linked repo hears about it too, prefixed Cross-repo.
Each kind has a severity in your policy. A block needs strong evidence, and only the side that arrived second is stopped.
Agents can only ask. An owner or admin approves with a reason, which is stored encrypted and shown in the audit log.
Info-level overlaps wait for the next prompt instead of interrupting, and an agent's false positive mutes it for its side.
npm i -g comity-cli && comity login && comity init