The Spec Is the Moat
I watched Dan Delimarski's walkthrough of Spec Kit, GitHub's new toolkit for spec-driven development. The interesting part isn't what it builds. It's what it keeps.
Vibe coding is fast until it isn't. You prompt, the model produces, you tweak, the model produces again, and four hours later you have a mess you can't explain to anyone, including yourself. The code compiles. You don't know why.
Spec Kit flips the order. You write a spec first, the what and the why, no implementation. You write a constitution, the non-negotiable principles you won't let the model talk you out of. You write a plan, the technical shape. Only then does the model write code. Everything above the code survives.
That's the part I keep coming back to. If GPT-5 stops being the best model in six months and you want to rebuild on Sonnet, the spec doesn't change. The constitution doesn't change. You delete the source, point a different model at the same artifacts, and you get something new that still fits the intent. The code is disposable. The intent is not.
Yesterday I wrote that in the age of AI, the moat is what the model can't give you. Private information and rehearsed judgment. A spec is a third thing, intent expressed with enough precision that a machine can execute it. The model doesn't have your spec. You wrote it.
I don't love everything about Spec Kit. Running Lighthouse on a prototype is silly. The "needs clarification" dance often ends with the LLM making a guess that defeats the point of the spec. Test-first for a static site is overkill. But the shape is right. Markdown as the universal interface. Git as the rollback. Constitution as the rails.
My takeaway is smaller than the product. Stop treating code as the artifact. The spec is the artifact. Whatever you can write down in markdown before the agent runs is the part you get to keep when the model changes, when the framework changes, or when you come back in six months and can't remember why you made any of it.
Write the spec. Ship the code. Throw away the code if you have to. The spec is the moat.