Original Reddit post

This is just a project I was playing around with. I wanted to see what would happen if you just let Claude “evolve” a project on its own. I’m a data analyst and always wanted an AI-helper data analysis tool where you could just upload your dataset and chat with AI to build a model off it - and then deploy that model via API somewhere. It built out to my spec and then continued evolving features on its own. Here’s how it works: There’s a spec.md file with the specifications in a checklist format so Claude can check off what it does. There’s also a vision.md file that talks about the long-term vision of the project so that when Claude picks a new feature to work on, it’s aligned with the project. At the end of spec.md , there’s a final phase that says basically “now it’s your turn - pick a feature and implement it.” It’s a little more wordy than that, but basically that’s what it says. Now it just needs to run on its own. I created a local cron job running on my WSL2 instance (“always on” on my laptop), and I built out a GitHub Action script to do the same using the Claude API on the GitHub repo. I set each one to run every 4 hours and see where it went. (The workflow scripts are currently disabled to save on API costs, but they ran for a week or two.) To track the features, I have Claude “journal” every session. It writes it out in a JOURNAL.md file and explains what it did. There’s an IDENTITY.md doc that explains “who” Claude is for the project, how it works and what it’s supposed to do. There’s a LEARNINGS.md doc that captures research from the web or other sources (although it stopped writing to that document pretty early on; I haven’t dug into why yet.) The CLAUDE.md wraps it all up with a tech stack and some project specifics. After a week or so, I noticed it was focusing too much on the data exploration features. It basically added every possible data analysis type you can think of. But the rest of the chain: test, build model, deploy model - was pretty much left out. So I went back in and changed around the spec.md file which tells Claude what to build. I told it to focus on other parts of the project and that data exploration was “closed”. It has some basic quality checking on each feature - tests must pass; it must build, etc. I was mostly interested in where it would go rather than just seeing it run. It’s on day 22 now. It’s still going and it’s fascinating to see what it builds. Sometimes it does something boring like “more tests” (although, I had to say that 85% coverage was enough and stop chasing 100% coverage - Claude likes building tests). But sometimes it comes up with something really interesting - like today where it built a specialized test/train data splitting for time series data. Since you can’t just randomly split time series data into two pieces because future data may overfit your time series, it created a different version of that process for time series data. In any case, it’s interesting enough that I figured I’d share what it’s doing. You can see the repo at https://github.com/frankbria/auto-modeler-evolve . I built that version on a more generic “code-evolver” project that I’ve included more quality checking in. That code evolver repo is something you can just add into your own project and turn it into an evolving codebase as well. ( https://github.com/frankbria/code-evolve ). Curious as to what your thoughts are on it. submitted by /u/newhunter18

Originally posted by u/newhunter18 on r/ClaudeCode