Blog

You're shipping 10x more code. Architecture matters more, not less.

AI coding tools multiplied output, not oversight. Here's why the more code your team ships with Claude Code, Copilot, and Cursor, the more architectural review — not less — you need.

There’s a comforting story going around: AI writes cleaner code than humans do, so as teams lean harder on Claude Code, Copilot, and Cursor, engineering discipline becomes less of a bottleneck. Less process. Fewer reviewers. The tools have it handled.

It’s backwards. The more code your team ships with AI, the more architectural review you need — not less. Here’s why.

The bottleneck moved, it didn’t disappear

Before LLM tools, the limiting factor on how much code a team produced was typing speed — a human writing, testing, and reviewing every line. That constraint had a side effect nobody asked for: it kept the rate of architectural change roughly in step with the team’s ability to notice it. A senior engineer reviewing three PRs a day could reasonably hold a mental model of how the system’s shape was evolving.

AI tools removed the typing bottleneck. They didn’t add a corresponding architectural-oversight bottleneck. So teams now merge 3x, 5x, 10x the PRs they used to, reviewed by the same number of humans, in the same amount of time, using the same technique — reading the diff.

Reading the diff was always a proxy for the thing reviewers actually cared about: is the system still healthy? It was a workable proxy when change was slow. It stops being one when change outpaces your ability to hold the system’s structure in your head.

LLMs are structurally incapable of closing this gap

This isn’t a “the models will get better” problem. It’s a category mismatch.

An LLM reviewing or writing a PR sees the diff, the surrounding files, maybe some retrieved context. It optimizes for: does this change look correct and idiomatic, given what’s in front of it? That’s exactly what you want from a code reviewer at the line level — and CodeRabbit, Copilot, and Claude are genuinely good at it.

What none of them have is a persistent model of your codebase as a graph — which classes depend on which, how coupled a given module already is, whether this PR’s new edge closes a cycle across five packages that didn’t exist yesterday. That information doesn’t live in the diff. It lives in the relationship between this change and the thousand other changes that came before it. An LLM re-reads your repo fresh on every PR; it has no memory of the shape of the system, and no mechanism for tracking how that shape is trending.

So as AI-authored PRs increase in volume, the gap between “this diff looks fine” and “the system is fine” doesn’t shrink. It widens — because the number of changes an unreviewed architecture has to absorb keeps climbing, while the tools reviewing those changes are, by design, blind to architecture.

What this looks like in practice

We’ve written before about what Striff found running structural analysis across 12 major open-source repos — Spring Framework, Oracle GraalVM, Apache Kafka, and others. The pattern was consistent: the file diff looked completely clean. Three lines added. Tests passing. Existing review tools gave it a pass.

Underneath, AbstractBeanFactory’s efferent coupling grew on a class hundreds of components depend on. A new package-level cycle formed in GraalVM’s native image heap. A five-package cycle slipped into a crypto library’s core signature code. None of these were visible from the lines that changed — they were visible only in how the change repositioned the class inside the system’s dependency graph.

Every one of those PRs would look identical to an LLM reviewer today, and would look identical to one next year, no matter how much the underlying model improves — because the information needed to catch them isn’t in the text of the diff at all.

The real risk of shipping fast with AI

The failure mode isn’t “AI writes buggy code.” Modern coding assistants write code that compiles, passes tests, and reads fine in isolation. The failure mode is quieter: a codebase that accumulates coupling, cycles, and misplaced responsibilities one clean-looking PR at a time, invisible to every review process built for a world where humans were the bottleneck on volume.

Teams that ship 10x faster with AI and keep architectural review at the same fidelity as before aren’t being efficient. They’re deferring a bill. It comes due as a system that’s technically shipping features and technically passing every check, while quietly becoming harder to change, slower to build, and closer to a rewrite than anyone realized — because nobody was watching the one layer where that decay actually shows up.

Architecture review has to scale with output, not stay flat

If your team’s code output scaled 10x, your architectural oversight needs to scale with it — not by hiring 10x the senior reviewers to manually trace dependency graphs, but by making structural review as automatic and continuous as the AI-assisted commits it’s watching.

That’s the layer Striff operates at. Not reading the diff for correctness — CodeRabbit, Copilot, and Claude already do that well. Modeling the PR as a change to a graph of components and relationships, so coupling spikes, new cycles, and boundary violations get caught at the same speed and volume your team is now shipping code, whoever — or whatever — wrote it.

Try it on your next PR

Install the browser extension and run it against your next pull request, AI-authored or not. The structural analysis runs automatically — no config needed.