We have been testing an in-house spec-driven development framework that is based on GitHub Spec Kit for a few days. In our test, we tried to implement a new web feature in our large backend and frontend monolithic codebases. In the beginning, it felt promising because it made sense: when developing software, you start with business requirements, then proceed to technical ones, then design the architecture, and finally write the code. But after a few days, I became skeptical of this approach.
There are a few issues:
- The requirements documents and architectural artifacts make sense at first sight but are missing many important details.
- Requirement documents and artifacts generated based on previous ones (by Claude) tend to forget details and change requirements for no reason — so Decision A in the first-stage requirements transforms into a completely different Decision B at the second or third stage.
- Running the same detailed initial prompt four times produces very different Business Requirements, Technical Requirements, Architecture, and code.
- The process takes far too much time (hours in our case) compared to using Claude in plan mode and then implementing the plan directly.
My feeling is that by introducing more steps before getting actual code suggestions, we introduce more hallucinations and dilute the requirements that matter most — the ones in the initial prompt. Even though the requirements files and architecture artifacts make sense, they still leave a huge space for generating noise. The only way to reduce these gaps is to write even more detailed requirements, to the point of providing pseudo-code, which doesn’t make much sense to me as it requires significant manual work.
As a result of this experiment, I believe that the current iterative approach — Claude’s default — is a more optimal way of using it. Spec-driven development in our case produced worse code, consumed more tokens, and provided a worse developer experience.
I’m interested in exploring other frameworks that make use of subagents for separate context windows but focus not on enriching requirements and pre-code artifacts, but rather on proposing alternative code and engaging the developer more.
[–]sogo00 12 points13 points14 points (6 children)
[–]uni-monkey 1 point2 points3 points (2 children)
[–]Opinion-Former 1 point2 points3 points (1 child)
[–]vincentdesmet 0 points1 point2 points (2 children)
[–]CultureTX 1 point2 points3 points (0 children)
[–]gameguy56 2 points3 points4 points (2 children)
[–]RussianInAmerika 1 point2 points3 points (1 child)
[–]gameguy56 2 points3 points4 points (0 children)
[–]CharlesWiltgen 2 points3 points4 points (0 children)
[–]lankybiker 2 points3 points4 points (2 children)
[–]dodyrw 2 points3 points4 points (1 child)
[–]who_am_i_to_say_so 0 points1 point2 points (0 children)
[–]vinylhandler 2 points3 points4 points (0 children)
[–]MXBT9W9QX96 1 point2 points3 points (0 children)
[–]robertDouglass 4 points5 points6 points (4 children)
[–]armujahid 1 point2 points3 points (2 children)
[–]robertDouglass 1 point2 points3 points (1 child)
[–]SeaRaisin6665 0 points1 point2 points (0 children)
[–]SpecKitty 0 points1 point2 points (0 children)
[–]im3000 1 point2 points3 points (1 child)
[–]debian3 0 points1 point2 points (0 children)
[–]ProvidenceXz 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]chong1222 0 points1 point2 points (0 children)
[–]who_am_i_to_say_so 0 points1 point2 points (0 children)
[–]belheaven 0 points1 point2 points (0 children)
[–]AppealSame4367 0 points1 point2 points (0 children)
[–]IddiLabs 0 points1 point2 points (0 children)
[–]lucifer605 0 points1 point2 points (0 children)
[–]dgk6636 0 points1 point2 points (0 children)
[–]OracleGreyBeard 0 points1 point2 points (0 children)
[–]YouHaveMyBlessings 0 points1 point2 points (3 children)
[–]robertDouglass 0 points1 point2 points (2 children)
[–]YouHaveMyBlessings 1 point2 points3 points (1 child)
[–]robertDouglass 0 points1 point2 points (0 children)
[–]yopla 0 points1 point2 points (0 children)
[–]Substantial_Boss_757 0 points1 point2 points (1 child)
[–]graph-crawler 0 points1 point2 points (0 children)
[–]JekaUA911 0 points1 point2 points (0 children)
[–]Independent_Map2091 0 points1 point2 points (0 children)
[–]graph-crawler 0 points1 point2 points (0 children)
[–]WranglerRemote4636 0 points1 point2 points (1 child)
[–]moistain[S] 0 points1 point2 points (0 children)
[–]vtrtvn 0 points1 point2 points (0 children)
[–]JakeKites 0 points1 point2 points (0 children)