Replies: 12 comments 24 replies
-
You should not change the master spec, if you create a feature you just add the spec with the new feature. If you change you say that you change that in the new spec. Ex. spec1 - Todo list with local storage |
Beta Was this translation helpful? Give feedback.
-
Thank you @simongartz for your explanation. Where I personally have a hard time understanding is, that for each spec one git branch is created. Based on your example: spec1 is the todo list with local storage. So the tasks on a high-level would be like create project structure, create tests, implement the todo list with local storage. |
Beta Was this translation helpful? Give feedback.
-
The way I am thinking about it, for an existing mono repo project, is to have a spec project per broad feature, then each feature will have a trail of specs that will define its truth. I'm not sure yet if speckit in its current form works with that because I'd essentially want many spec projects at the src root (one for each broad feature). Not sure if this is "correct" or not, but currently the only way I can think to get it to work for a large existing brownfield project. |
Beta Was this translation helpful? Give feedback.
-
What is missing is a snapshot of the project specification on the memory folder, alongside with the constitution. This master spec should be updated when a feature is complete. I think you can even ask the AI to do that and review the output. This master spec should be the starting point for the next feature. |
Beta Was this translation helpful? Give feedback.
-
I agre, there should always be a single, consolidated specification that reflects the most current features. Without this, it’s inevitable that, over time, the model could accidentally reference outdated information. Whenever a feature is updated, the root specification should be updated as well. This ensures there’s always a reliable, up-to-date source. If the specification grows too large, there should also be a logical way to reorganize or structure it for easier navigation. |
Beta Was this translation helpful? Give feedback.
-
I think it would have to be a combination of reviewing the specs and code
together. The specs will give the motivation and the code will give what
has actually been implemented.
…On Thu, 18 Sept 2025, 09:35 euroblaze, ***@***.***> wrote:
100% agree with the master-spec idea.
But wonder if the LLM is effectively capable of considering all _truth,
requirements and situational facts (from existing code), and only
accordingly produce new code.
—
Reply to this email directly, view it on GitHub
<#152 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACJN3SUNWSXWIHKFGKAEC3D3TJVEJAVCNFSM6AAAAACGE55LQWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTINBUGAYTAOA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hello! I'm sorry I'm late to the party - I'd like to chime in with some of my own thoughts around this issue: One way of thinking about all of this stuff is that the spec or specs are really the source code for the implementation. Something that Sean Grove said (paraphrasing) at the AI Engineer Summit was around how we spend all this time versioning the source code that today is generated from agents, but yet we don't really do any version control management, updating, ensuring that it's consistent as the source of truth of the specs, which seems odd. It would be like if we spent all of our time carefully versioning the binaries produced by our compilers and throwing away the source code. So it becomes really important, not so much is there a single master spec, a set of feature specs or anything else. It's that those things must be kept in sync with the source code. And that requires a certain amount of discipline to make it effective. I don't think that for any reasonable size project that we could have just one spec. I think there is some kind of natural hierarchy that evolves in your projects. What I have taken to doing recently is writing a spec for a feature that is more of a unified spec. Both the motivations as well as the implementation details and the research and other things are captured inside of a single document that I can iterate with the AI. But then what I do is I spend cycles in the agentic loop to close the loop between the code that was actually written and the spec because these things naturally diverge as it's pretty rare for the agent to one-shot the code and then call it a day. Oftentimes there's follow-ups and other things, right? Because you underspecified something, there's a bug, etc. And those changes ultimately become material. So unfortunately right now it's on you to fold those things back into the spec or ask the agent. to fold those changes and updates back into the spec. |
Beta Was this translation helpful? Give feedback.
-
I'm glad I saw this discussion. I started to evaluate Spec-Kit this week, and I would like to understand the vision on how leveraging the current model will scale overtime in projects where there are multiple iterations. I've been reasearching, evaluating different Spec Driven Development tools and leveraging them to build greenfield applications. The way I'm using Spec Driven Development so far which is working for me is:
If we focus on the features spec: The way I'm using is very different than SpecKit is designed to work. The model I'm using works extremely well, however it does have limitations for teams who are developing multiple feature branches in parallel. It's not an issue for me at the moment though. The way SpecKit handles features, by aligning with feature branches is great for incremental work, but it seems to go against the Spec Driven Development principles (at least based on my understanding). I fully agree with @simongartz , the middle ground would be a command to "compact" multiple "specs" into "target state specs". A very simple use case: The question then is: Should the flow be:
I prefer the first option, as it gives more control to the developer and ability to review consistency in near realtime, rather than compacting it at the end. I prefer to interact with target state and review incremental plan, rather than the other way around. Keen to get others' views on this. |
Beta Was this translation helpful? Give feedback.
-
I'm a couple of weeks into seriously trying to use this on a prototype project. I expected there would be a repo-level spec, and then feature specs subordinate to it. For now, the first feature is essentially the project spec, if I understand it correctly. I think that the specs (beyond the repro-spec) might follow common branching scenarios:
Each of these developer activities really needs a spec or a mini-spec, using a different template. |
Beta Was this translation helpful? Give feedback.
-
I have been exploring a related angle, specifically the OpenAPI side of evolving specs (fragmentation across feature folders and keeping a unified root spec for frontend–backend alignment). I have shared details in #443 along with links to my write-up and repo. Would love feedback from anyone who’s thought about this. |
Beta Was this translation helpful? Give feedback.
-
I understand the concept of SDD and that each feature or change is captured in a new spec file. |
Beta Was this translation helpful? Give feedback.
-
I would think it would be beneficial to know the most up-to-date requirements for a particular feature. We run into this all the time with QA. QA will log a bug based on an outdated AC. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Using the spec kit I create a spec and implement it.
What is the process when I now have a change request. Spec driven development would seem to indicate that the spec is the source of truth for the system, but spec kit leads me to create a new spec with the variation. That doesn't seem to be in keeping with spec driven development, as now to know what the system does I need to read both specs.
Or should I be getting the AI to update the master spec as well?
Beta Was this translation helpful? Give feedback.
All reactions