A Chainsaw at an Axe-Throwing Contest: My Current Agentic Loop A senior engineer describes his current workflow with Claude Code, using a container jail for safety and a custom plugin for disciplined design-build-test cycles, arguing that the unit of work has shifted from keystrokes to autonomous loops. He claims this approach is a 'chainsaw' compared to the industry's 'axe-throwing contest', enabling rapid development of new projects while keeping legacy code isolated. People keep asking me how I actually work with Claude Code now. Not the “does AI coding work” question — I’ve beaten that horse into glue on this blog already — but the boring, practical, how-does-my-loop-actually-work question. So here it is. The whole rig. And fair warning: what I’m about to describe is a chainsaw, and most of the industry is still lined up at the axe-throwing contest, spitting on their hands. Everybody's admiring their axe technique. I already loaded the tree on the truck. Caveat: this works for me, and something similar is working for parts of my Engineering team at my day job. I’m working on making that most of my Engineering team, but changing other humans takes time. This is how I am working. Today. It’s literally evolving weekly, so if it’s past August 2026 and you are reading this.. well then, these may not be the droids you’re looking for. Things change quickly I’ve been here for all of it. TRS-80 with 4K of RAM. My first Linux kernel before it hit 1.0. Every hype cycle, every silver bullet, every “this changes everything” that changed almost nothing. So when I say the loop I’m running now is genuinely different, that’s not the hype talking — I’ve got enough scar tissue to know the difference. Here’s the thesis: the unit of work is no longer the keystroke. It’s the loop . I don’t write code anymore so much as I set up a disciplined, sandboxed loop and let it run — vision, requirements, design, test-first implementation, review, done. My job is the two ends of that loop: telling it what “good” means at the start, and judging whether it got there at the end. The middle runs on its own. This is totally applicable to green-field new projects. Less so for legacy code - there’s different loops for that Let me lay out the parts. The Loop, In One Breath Three pieces, and they stack: A padded room — a container where the AI can do whatever it wants and the blast radius is one podman rm and the local folder I started it from. That’s localdev https://github.com/gherlein/localdev . And the extra padding is git. A chainsaw — a Claude plugin full of engineering-discipline skills, the flagship being a full design-build-test-review cycle called build-autonomous . That’s the gherlein-claude-plugin https://github.com/gherlein/gherlein-claude-plugin . A tree — some actual thing I want built. Today’s tree is a little Go tool to boss around a smart plug. Because it’s simple. The container is safety . The plugin is discipline . The task is Tuesday . Take away any one of them and I’ve got a worse version of what everyone else is doing. Together they’re a special forces assault on what I can get done. The Padded Room: localdev I let Claude Code run with --dangerously-skip-permissions . No “mother may I” for every ls . No clicking approve fifty times to run a test suite. Before that makes anybody spit out their coffee: I keep it in a jail. A container jail. I wrote about localdev in detail already https://blog.herlein.com/post/localdev-container-jail/ , so I won’t re-run the whole thing, but the shape matters for the loop: — my working directory, read-write. This is the tree. /