Your team ships code with four different AI coding tools. Maybe five. The backend guy swears by Claude Code, the frontend crew lives in Cursor, the intern discovered GitHub Copilot in college and never left, and someone in platform engineering quietly installed JetBrains AI. Everyone's productive. The code compiles. CI passes. Nobody questions the arrangement.
But here's the thing: your codebase now reads like a novel written by four ghostwriters who never met. Each sentence is grammatically correct. The book, as a whole, makes no sense.
The split is official now
On April 10, 2026, JetBrains published its AI Pulse survey — 10,000+ professional developers, eight programming languages, statistically weighted. The headline number that matters here: Copilot at 29%, Claude Code and Cursor tied at 18%, JetBrains AI at 11%. Ninety percent of developers use at least one AI tool at work.
That's not one tool winning. That's every tool winning inside the same organization.
And here's where it gets interesting: each tool brought its own instruction file — a config document that tells the AI how to write code for your specific project. Claude Code reads CLAUDE.md. Copilot reads copilot-instructions.md. Cursor reads .cursor/rules/*.mdc. OpenAI's Codex CLI reads AGENTS.md (now stewarded by the Linux Foundation, adopted by 60,000+ open-source projects). Windsurf reads .windsurf/rules/*.md. Gemini CLI reads GEMINI.md.
Six tools. Six config formats. Each one silently ignores the others. As TokenCentric noted in a March 2026 comparison: "A developer working on five projects with three AI tools could be maintaining fifteen config files."
How four AIs write four different codebases
Each AI has a personality. Claude Code favors explicit error handling and functional composition — small functions, clear types, verbose but predictable. Copilot mirrors GitHub's statistical average — it writes code the way most open-source code looks, which means average in every sense. Cursor auto-routes between models (Claude, GPT, its own fine-tunes), blending styles mid-pull-request depending on which model handled which file.
None of this is wrong. That's the problem. A linter — a tool that checks code for style violations — catches typos and formatting. It doesn't catch the fact that your authentication service handles errors with try-catch blocks, your payment service uses Result types, and your notification service returns null. Three approaches, all valid, all passing CI (Continuous Integration — automated tests that run before code merges), all creating a codebase that nobody can navigate without a map.
The most recent large-scale study on AI code quality — CodeRabbit's December 2025 report, still the best data available four months later — quantified the damage across 470 GitHub pull requests: AI-authored code had 1.7× more issues overall, 3× more readability problems, and 2.66× more formatting inconsistencies than human code. And that measured single-tool output. Multi-tool codebases stack these inconsistencies on top of each other.
The aha moment nobody wanted
The result isn't bugs. Bugs are findable. The result is architectural incoherence — a term Martin Fowler circled around on April 7, 2026 in his essay on "harness engineering", where he defined the equation: Agent = Model + Harness. The harness is everything that surrounds the AI model — the config files, the guardrails, the instructions. Fowler admitted: "We still have a lot to do to figure out good harnesses for functional behaviour."
Translation: nobody has solved this yet.
Greg Foster, CTO of Graphite, put it differently in a March 26 Stack Overflow post: human engineers "implicitly absorb the context of the code base" while coding. They notice that the rest of the service uses Result types, so they use Result types too. AI agents don't absorb anything — they follow whatever their config file says, or worse, whatever their training data suggests.
The price tag
No existing tool catches this. ESLint checks syntax. Prettier checks formatting. Code review catches bugs. None of them flag "this file was clearly written by a different AI than the file next to it."
And don't expect the vendors to bridge the gap voluntarily. If Cursor made its rules compatible with Claude Code's config, it would make switching easier. Fragmentation is a moat, even if an accidental one.
Community projects are trying to compensate. rule-porter, which surfaced on GitHub in February 2026, converts between config formats; rulesync, appearing around the same time, tries to unify them. Both report roughly 75% clean conversion rates. The remaining 25% is where architectural intent lives, and it gets lost in translation.
Addy Osmani from Google warned in February 2026: "The cleaner your architecture, the less the AI hallucinates weird abstractions." The inverse is also true: the messier your multi-AI codebase, the weirder each subsequent AI contribution becomes. Entropy compounds.
What to do about it
If your team runs multiple AI tools — and statistically, it does — you need one thing: a single, tool-agnostic style document that every AI reads. Not six config files. One canonical source of truth about how your codebase handles errors, structures APIs, names things, and organizes dependencies. Then a pre-commit hook — an automated check that runs before code is saved — that enforces those patterns regardless of which AI wrote the code.
The AGENTS.md standard, now under the Linux Foundation, is the closest thing to a universal format. It's not perfect, but it's the only one with cross-vendor backing.
The new normal
Your codebase now has more AI authors than human ones. Andrej Karpathy said it plainly back on January 26, 2026: "You are not writing the code directly 99% of the time… you are orchestrating agents." Fine. But orchestras need a conductor, and they need a score. Right now, most teams have four musicians playing from four different sheets in four different keys — and the audience hears "it compiles" and assumes it's music.
Someone needs to write the editorial policy before the repo writes one for you. It won't be pretty.



