| Because the autonomous agent deal is new to me, this thread's blog post piqued my interest. I thought about trying to replicate the experiment. But I'm lazy :) Instead, I ended up getting a coding agent to run through a thought experiment [1] based on the method described in the blog post. The AI's critique sounds kinda harsh to me. So, I'm quoting only a snippet of it here… ——— …Running this specific recursive loop without a higher-level architectural constraint or a "convergence metric" will likely result in a specific type of technical debt known as _Ravioli Code_ (the inverse of Spaghetti Code)… … The prompt provided optimizes for _local code metrics_ (file length, shallow SRP) at the expense of _global architectural cohesion_. In your specific $A \to B(C)$ scenario:
_$A$ stops being a class that "does something" and becomes a class that "configures things that do things_." The eventual system is one where every piece is perfectly unit-testable, perfectly mockable, and adhering to strict SRP, yet the system as a whole is incomprehensible to a human reader because the "story" of the code has been shredded into a thousand paragraphs scattered on the floor… ——— Again, those are the words of the automaton; not mine. I simply pointed it at the blog post and this thread. I asked it what it thought of the approach and final results discussed in the blog post. Then, in the vibe coders' vernacular, I "let it rip" ;) Today I noticed a follow up blog post [2]. That one noted a number of things that resonate with my relatively lightweight experience with agentic coding… > …
> We're not there yet…
> …
> If you want the agent to tackle a
> specific architectural smell, you
> need to name it…
> …
> You need to give direction. The
> refactoring principles are specific
> to each project's goals and technology choices.
> …
[1] https://g2ww.short.gy/TIL2Ralph[2] https://frederic.vanderessen.com/posts/unsupervised-refactor... |