The Coming Loop

Software EngineeringDeveloper ToolsIndustryCareer & Life

Armin Ronacher reflects on the emerging pattern of 'harness loops' — outer loops that orchestrate AI coding agents beyond their natural stopping points — and his deep ambivalence about them. He acknowledges loops already work well for mechanical tasks like porting, performance exploration, and security scanning, but argues they amplify LLMs' worst tendencies (defensive code, weak invariants, bad abstractions) when used for lasting production code. He frames this as a philosophical shift from 'software as deterministic machine' to 'software as organism' — systems diagnosed and maintained by machines rather than understood by humans. Most troublingly, he argues opt-out is impossible: attackers, competitors, and reporters are already looping, so defenders must eventually loop too. He closes not with a rejection of loops but with a call to figure out how to retain human judgment, engineering discipline, and comprehensibility within an inevitable looping future.

AI harness loops are inevitable — not because they produce better code, but because competitive and security pressures make opting out impossible — so the real engineering challenge is designing loops that preserve human judgment rather than replace it.
  • 9

    I don't prompt Claude anymore. I have loops running that prompt Claude and figuring out what to do. My job is to write loops.

  • 7

    Present-day models tend to produce code that is too defensive, too complex, too local in its reasoning. They avoid strong invariants. They add fallbacks instead of making bad states impossible.

  • 6

    When you take that behavior and you put it behind loops, you tend to amplify it. If each iteration adds another small defense, the system slowly becomes less understandable while appearing more robust.

  • 5

    The right fix is to make the malformed case unrepresentable or impossible to write in the first place. Yet even with a lot of manual steering, that type of code does not come out of LLMs naturally.

  • 7

    We may create codebases that are not merely hard to maintain by humans, but that assume machine participation as part of their maintenance model.

  • 8

    In the harness operated loop I'm not sure what my role even is. Even the 'done' signal loses all meaning and just becomes communicated to yet another machine that judges. My role is reduced to that of a messenger.

  • 8

    And yet I have no doubts that this looping future is going to be our future despite the fact that I presently resent it.

  • 6

    The question is not whether we will loop because clearly we will. Maybe the question is that in a future of loops, how do we don't abdicate judgment, how we can retain rules of good engineering, how we can ensure that responsible human can continue to supervise.

reflective, uneasy, opinionated