AI can speed up development, but it doesn't fix an unclear requirement. If you give the model an ambiguous problem, you'll get faster iterations toward something that might be "almost right," but isn't what the user or team actually needs.
Spec-driven development is a simple counterweight: before code, you write a specification clear enough that everyone knows what's being built, what's not being built, which edge cases exist, and how we'll know the work is done.
Specification isn't bureaucracy
A bad specification is a long document nobody reads. A good specification is an operational artifact: short, concrete, and precise enough that a developer, reviewer, and AI agent work from the same criteria.
Minimal useful specification
- the problem we're solving
- users or workflow being changed
- non-goals and explicit scope boundaries
- acceptance criteria
- edge cases and risks
- impact on existing system
Why AI works better with a specification
AI models are good at filling in gaps. That's useful when you're looking for ideas, but dangerous when you're building a feature that must respect existing architecture, security rules, and business edge cases.
A specification reduces the number of gaps the model has to guess. It also gives the reviewer a clear framework: review doesn't just ask "does the code work," but "does the code solve the agreed problem in the agreed way."
spec-kit, OpenSpec, or plain Markdown?
The tool is less important than the discipline. spec-kit and OpenSpec can help when you need a more formal structure, versioning of changes, or a larger team process. For smaller changes, a plain Markdown document in the repository is often enough.
Markdown
Fastest for small and medium features when the team already has good discipline.
spec-kit
Useful when you want a more structured AI-assisted flow from idea to plan.
OpenSpec
Good when changes have a long life and need a clear history of decisions.
Specification must not freeze learning
The biggest mistake is treating a spec as a contract that can't be changed. A good spec changes when you learn something new, but the change is recorded. This way the team doesn't lose context on why a decision was changed.
This is especially important with AI workflows. The model might suggest a better approach, but the direction change must end up in the specification, not just in chat history.
Conclusion
Spec-driven development isn't a slower way of working. Slow is chaos that looks fast in the first few hours and then eats days through rework, unclear review comments, and direction changes.
When AI enters the process, the need for specification becomes greater, not smaller. A well-written spec gives the model boundaries, the team shared context, and the reviewer concrete criteria. That's the foundation of speed that doesn't sacrifice control.
For broader context, see also AI context management.
Josip Budalić
HOTFIX team
Josip runs HOTFIX d.o.o. and works on software architecture, AI-assisted development workflows, codebase modernization, and practical software delivery.