Hacker News new | ask | show | jobs
by iamwil 5 days ago
I've been building and running my software factory for 8 months now. Granted, there's no automated pulling down tasks and pushing PR right now (soon!). But after specifying what I want, it mostly goes to shipping on its own. On occasion, it does raise issues that I have to make a decision on. After doing systems evals on review, I've stopped looking at code during review for 4 months now.

I do spend a lot of time up front specifying what I want. My prompts aren't one-liners, but rather an interview process where we work through all the open questions and ambiguity.

I haven't hit the wall that the OP talked about (when agents just can't seem to make the right changes, and it's impossible for me to go in and change things manually). I used a lot of guardrails such as plan reviews, browser-based QA, adversarial reviews, unit tests, linters, typecheckers, post-commit hooks, and formal method traces. I also specified engineering principles that steers the code base to minimize state and side-effects: functional core; imperative shell, make impossible states impossible, use pure functional style, etc.

There are times, when I can feel a part of the code base is messy without looking at it, because the agent will make recurring mistakes in the same part of the code base over time. What I found the agent was doing over time is that it's been layering state variables as requirements were discovered. So what helps is to ask it to refactor all these state variables into a single sum type. And if the state machine for it is complicated, I'll ask it to write a formal model of the state in Quint. Then I'll generate traces that get run as unit tests, and ask it to write the code against that.

So while the code base isn't exactly Brownfield, it's over a year old now. As for the code base, there's a backend and a frontend. I think it helps that I established a clear pattern I wanted. You code are like memes: agents will just copy patterns they see in the code base. When it does have to create a new part of the system, I found Sonnet-level models tend to draw system boundaries in all the wrong places. Opus is better. I don't yet know about Fable.

Happy to answer any questions about my workflow.

3 comments

This has been my experience as well. While not a full "factory", I've got several mature vibed software projects.

More often than not you can "feel" when the quality has degraded. Many of these pieces leave you hanging on the assumption that once it's slopped up that's the game, it's over, you're cooked, straight to jail.

But I've yet to reach that position and be unable to pop the hood, identify the issue, and agentic-ly clean it up.

The post explicitly says it's not a skill issue, but I've yet to see any situation where an average engineer can't unslop their codebase.

I’m most curious about what you’ve built with the code factory. Is it just building itself or do you have any outputs that validate it for building something other than AI coding tools?
It's not building itself, though I did build a harness. It's a collaborative workspace for humans and AI.
I'd be interested in seeing more of your setup, eg if you published a long blog post and/or repo.
Other people have expressed interest too. Will let you know when I'm done.
Same please