Spec-tacular

You're going to get sick of spec-related puns really quick (nah, probably not, but just because I probably won't be able to come up with enough of them and start reverting to something like SDD Update 12).

I'm about 2 hours into my spec-tacle, and so far I'm impressed.  There are a few open-source options available, and I chose to use spec-kit, the GitHub-backed solution.  The workflow is a bit lengthy, but it's robust and requires little writing effort, so it doesn't grind me down with LLM nonsense that needs to be rewritten 4 times to count the number of 'r's in strawberry.

Before going further, I'll issue this disclaimer:  As of now, the framework seems pretty solid, but it's possible I've just been lucky with my initial features.  I'll keep you updated on the long-term success of the tool.

So, a couple of main points - 

First, you have to write a constitution, which defines your development principles, like TDD or DRY, your technical stack, and key idioms and design decisions.  This is endemic to the project and codebase, and is literally amended with changes.

Afterward, you create a spec for your feature, plan it further, create a task list, and then implement it.  The documentation is extremely thorough and appears to follow the tech stack guardrails and feature definition faithfully.  You have a chance to refine the feature further, and, luckily, it doesn't completely discard your previous definitions in favor of new, more dynamic ones that don't match your intent.  It, in fact, appears to work incrementally.

Even more impressively, I told it to use a custom-created skill in opencode that generates database migrations, and it incorporated seamlessly into plans.  

Admittedly, I've only allowed it to perform some basic implementation work, but it handled the migration without confusion (something the agent by itself always failed at), and the resulting output looks reasonable.  But that's another sharp feature of the framework - you can tell it to perform tasks 1-3 of all 11 tasks, for instance, so you can control the pace of the implementation.

Will this honeymoon phase continue?  Doubtful, but of all the tools and concepts I've explored over the last 2-3 years, this seems to be the most likely candidate for consistently improving output.

Until next time, my human and robot friends.

Comments

Popular Posts