Recently, we can see a shift from Vibe Coding to Spec Driven and Context Engineering. The pursuit isn't just about fast PoCs, but also about stable Production Readiness.
I believe many of us have had similar experiences. Vibe Coding was very fast when building a PoC project. However, as the project complexity increased, various problems emerged:
- The code generated by rapid iteration lacks sufficient documentation, unit testing, or architectural constraints, which can easily lead to technical debt.
- Developers may not fully understand the generated code, and face great difficulties when debugging, modifying or extending the functionality, making it difficult to maintain and expand.
- etc.
The emergence of Spec-Driven Development can solve the above problems well.
So, what is the difference between the two?
- Vibe Coding: Prompt → Code
- Spec-Driven Development: Prompt → Requirements → Design → Tasks → Code
By prioritizing requirements documentation, system design, and task lists, we ensure that code logic is clear and aligned with business goals. This improves project maintainability and reduces subsequent technical debt. This is also helpful for team collaboration on large, complex projects!
How do we use Spec-Driven Development in our daily development?
So, I developed the Spec-Driven Development MCP Server:
https://www.npmjs.com/package/mcp-server-spec-driven-development
The current v0.1 version provides three predefined prompts:
In VS Code GitHub Copilot, you can use /mcp to trigger it:
Usage
Take developing a Vue.js TODO App as an example, it can be done in a few minutes!
- Generate requirements document (requirements.md) using
generate-requirements
- Generate system design document (design.md) using
generate-design-from-requirements
- Generate code using
generate-code-from-design
The code is completely open source, welcome to star:
https://github.com/formulahendry/mcp-server-spec-driven-development
Top comments (0)