Show HN: Specification First Agentic Development Plugin and Prove (spec-first.dev)
Implemented agent smith since start 2026 with over 1000 specifications which lead to about 500k lines of code. The procedure with that spec-first works well. How do you do it?
37 comments
[ 0.24 ms ] story [ 8.7 ms ] threadWhat does work well is using AI to generate a quick and dirty prototype ala vibecoding, and then using that as a basis to regenerate the final code. Some might say it's still spec driven development, but the spec is a working prototype.
Spec docs - at least in all the other things like this thing - aren't a living representation of truth, instead they are a collection of snapshots in time of feature deliverables. Layer 500 of these on top of each other and they quickly become not just useless but actively harmful. Archive them, compile them, whatever your plugin does, it still doesn't help. Nobody is going to pay for tokens just to keep the specs time-coherent, when the agent can just read the code.
Don't get me wrong, a spec is a useful bit of kit for development, just like Jira and Rally, but also like Jira and Rally they aren't the source of truth because there's already a better one which you just paid for.
Maybe your flows coins take advantage of ensuring that the specs define the intent and active decisions made and not just “what the code does”, which it can actively read from the code itself.
Some day we won't even need coders any more. We'll be able to just write the specification and the program will write itself.
Oh wow, you're right! We'll be able to write a comprehensive and precise spec and bam, we won't need programmers any more!
Exactly!
And do you know the industry term for a project specification that is comprehensive and precise enough to generate a program?
Code It's called code.
After 500k lines of code in Agent Smith, none of which I wrote by hand, I have to admit it: coding is more or less solved. That doesn't mean architects, developers, DevOps people and everyone else aren't needed anymore. I think they're needed more than ever.
Just implementing something isn't good enough. The spec has to point to sensible approaches and procedures, and the code has to be well structured (in my view, at least). Then the specs can simply run in parallel all night.
So my actual work on Agent Smith isn't coding at all. It's deciding what the right thing to build is, and how, in terms of design and architecture. I don't even review the code. But I do test it: 10k tests, a harness, a commit hook that blocks a spec while the suite is red, the whole story.
And unfortunately, that works pretty well. I also think last year's programming was more romantic :-D
Why unfortunately?
I work as a freelancer and started programming at 12. I've been doing it for 40 years now.
I guess I'm ambivalent. On one hand these are crazy times, really stunning. Everything is changing, and AI takes over a lot of stuff I never wanted to do, but also parts of what I loved doing.
This year the time I spend actually programming dropped to 5–10%. Last year it was still 80%. That's a big change for a professional life. It means developers and architects spend their time on design and on proving the code works, not on writing it.
Agent Smith and all the other stuff is one of my side projects. So I'm just being a little nostalgic here, I guess. Nothing too serious ;-)
Of course it is unfortunate to lose the ability to get paid for something they enjoyed.
Do you know why it's easier to specify theorems than it is their proofs? Or why ACSL != C?
You can go ahead and make a more specific argument, e.g. that mainstream UX-centric software development may not be amenable to current paradigms of formal verification, but to insinuate that a complete spec reduces to source code itself is naive.
So the main challenge I see with this approach is getting the spec right. Too little detail and the output is uncontrolled, too much detail and you're adding too many constraints (and you may be better off just writing code). From my experience, agents haven't been the best at writing good specs. But maybe this project can help with that?
Llms compile that into a binary and you deploy it and present it and users use it and they're happy or not.
There's just so many different projections of how to describe a system. What's the moat bang for the buck.
but yes, it would be great to able to have such kind of formal description. code is not standardized enough for that (by now)
I’m really starting to enjoy it for helping flush out the ideas in my head into something real and tangible.