// agents.output.length → ∞ · human.attention.capacity → 4–7 items
The agent copies logic instead of abstracting it. DRY violations that feel "good enough" because they work — until you need to change them across 12 copies.
handleUserCreate() { // 80 lines } handleUserUpdate() { // 78 lines } // 80% identical handleUserDelete() { // 75 lines } // still 80%
Deeply nested logic, missing separation of concerns, functions that do too much. Technically correct, practically a nightmare to extend or test.
processAll(data) { // 200 lines // 10 responsibilities // good luck changing this }
A small bad decision in turn 1 becomes a hard-wired convention by turn 12. Agents repeat and amplify their own prior outputs.
// turn 1: bad naming convention // turn 6: same bad names everywhere // turn 12: refactoring costs 3×