I’m doing more and more with AI at work, and I’m continuing to experiment with it at home too. One of the guys at work did a little presentation on OpenSpec a couple of weeks ago. He’s really into the whole spec-driven development thing. I’d heard of it, but had never played around at all. I didn’t want to pull it into any of my code at work just yet, so I used it for a project at home.
I went back to my Towers of Hanoi project that I worked on back in February. I used the same “requirements.md” file that I’d used for those experiments. But this time, I first installed OpenSpec, then went into Claude Code, and did something like this:
/opsx:explore Read @requirements.md and help me create a spec.
That spun for quite a while, and spit out a bunch of markdown files, under openspec/changes/add-towers-of-hanoi/. I then continued using OpenSpec’s commands to write and test the code. It worked out pretty well. I think it took longer and burned more tokens that doing it from just requirements.md, as I’d previously tried, but the end result was better. You can see the repo here.
I may come back to it again, and do more experimenting. I’d like to try to use OpenSpec to migrate it from .NET 8 to .NET 10; that should be trivial, but I’d like to see how it does that. And I might also try using it to make the graphics a bit fancier. And there are a few other enhancements I could make. The idea would be to see how OpenSpec handles incremental changes, and what the repo looks like as it goes.
In addition to OpenSpec, I’ve also looked at GitHub Spec Kit. I initially felt like that might be a better fit for my work, since it’s from GitHub/Microsoft, and I’m using GitHub Copilot at work. And it would probably work fine. But it seems like maybe OpenSpec is better for brownfield dev, while Spec Kit is better for greenfield, and all my stuff is (very) brownfield. It also looks like Spec Kit might be “heavier” than OpenSpec, creating a lot more files and doing more stuff. That might be good, or it might not.
Anyway, that’s what I’ve been playing around with this week, in addition to all of my regular ongoing work.