I also keep coming to the IaaC analogy, because _after_ I built the pipeline that builds code (spec, plan, review, tests, impl, etc. ) where each step produces an ARTIFACT, touching code _manually_ feels like doing things through console, instead of changing the IaaC, so that not only my teammates but also those agents in the pipeline "know" what changed and WHY
Also I think TDD folks were preaching "write good tests, throw away the code" for a long time. Just thought of it.
but still, when I try to push too big of a task into that pipeline, and by big, I don't mean repetitive stuff or even migration. By big I mean what the agile folks used to call "complexity" estimate - anything that was supposed to touch the architecture in more than one place, it creates a mess.
It's up to us now to understand what to oush, how to push, what kind of pipeline of agents to build to work on it, what kind of artifacts each step will produce and how to organize learning (human or agent) with those artifacts