AI-Generated Code Is Twice as Sloppy as Human Code

Yesterday HN surfaced a post from Earendil researcher Sebastian with the first serious attempt to quantify what vibe-coders already feel: agent code passes the tests and still rots the repo. He built on SlopCodeBench's two metrics — Verbosity (AST-grep-flagged + cloned lines over LOC) and Erosion (how much of a codebase's mass concentrates in functions with cyclomatic complexity over 10). Measured against established human repos, the numbers are ugly: agent code averages 0.33 verbosity vs 0.15, and 0.68 erosion vs 0.31. Roughly double on both axes.

Why it matters: tests don't see slop

Code is the one domain where LLMs look near-perfect, because correctness has a cheap reward signal — hidden tests. Slop has no such signal, and Earendil's key finding is that agents can't self-police it: LLM-as-judge on code quality behaves "basically like a random number generator" in the naive 1-10 form, and pairwise judges flip their preference when you rename the options. The benchmark's real trap is structural — it iterates instruction/test rounds with context erased between checkpoints, mimicking how humans actually use agents. Bad decisions compound. Under strict all-checkpoints-pass scoring, state-of-the-art models score 0%.

The pattern Dispatch has been tracking

This lands third in a sequence we've been following: our write-up earlier this week showed LLM bug-fixers damaging already-correct code, and last week's harness-imitation regression (78% → 63%) showed agents copying each other's process debt. The common thread: verifiable-correct is not the same as maintainable, and every benchmark that only checks the former is grading half the assignment. LOC change alone was Earendil's surprisingly effective slop proxy — with the ironic caveat that optimizing for it would destroy its signal, Goodhart-style.

Verdict

"Coding is solved" is the wrong headline. Correctness is solved; taste isn't, and taste is what your repo becomes. If you're merging six figures of agent LOC a day, watch your Erosion number — it's the metric your tests can't see.

Frequently Asked Questions