From Vibe Coding to Spec-Driven Development

Nowsadays, Modern AI coding tools like GitHub Copilot / Claude Code or IDE like Cursor / Windsurf have accelerated how we write software—but they’ve also introduced a new habit: vibe coding. Developers often jump straight into implementation based on intuition or incomplete prompts. The result? Misaligned intent, inconsistent architecture, and fragile systems.

Spec-Driven Development (SDD) changes this by putting the specification at the center of the workflow. Instead of coding first and documenting later, you write the spec, then let your AI agent execute it.

What Is Spec-Driven Development?

Spec-Driven Development (SDD) is a methodology where specifications define the intent, context, and constraints before any code is written.
Each feature begins with a structured description of what to build and why it matters. AI tools then assist in planning, implementing, and validating code that fulfills that spec.

Benefits

  • Alignment between product, design, and engineering
  • Traceability of every decision
  • Predictable AI output based on clear context
  • Lower maintenance and onboarding cost

In short: the spec becomes the single source of truth — and code simply implements it.

When coming to SDD, we as developers might be familiar with IDE-integrated tools like JetBrains Writerside. The workflow might be using different AI tools to write the specs and then using the tool to generate code implementation. For lazy people like me, I prefer to have a tool that can do it all. So let’s investigate Github Speckit in this blog entry.

WTF is GitHub Spec Kit?

GitHub Spec Kit is an open-source toolkit that operationalizes Spec-Driven Development across your preferred AI agents. Spec Kit can:

  • Works with multiple AI agents (Copilot, Claude Code, Gemini CLI, Cursor, etc.)
  • Defines project principles (/constitution) and feature life cycles (/specify → /plan → /tasks → /implement)
  • Standardizes how teams reason, plan, and evolve codebases

Github Spec Kit Workflow

The workflow is straightforward:

StageCommandPurpose
/speckit.constitutionDefine project principles & standardsOne-time setup (optional)
/speckit.specifyDescribe what to build (no technical detail)Feature definition
/speckit.clarifyAsk or answer follow-up questionsScope refinement (optional)
/speckit.planDesign implementation approachArchitectural planning
/speckit.tasksBreak plan into actionable stepsExecution checklist
/speckit.analyzeValidate specs & docsQA alignment (optional)
/speckit.implementExecute tasks & run testsActual coding

Getting Started with Github Spec Kit

1. Install Spec Kit

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
specify check

2. Initialize a Project

specify init my-tasks --ai copilot

You can choose other agents: --ai claude, --ai gemini, --ai cursor, etc. We can also use multiple agents within 1 project 🙂

After the above step, we can use the speckit commands inside our agent interface. I prefer to use Github Copilot so I can also use the commands inside VS Code.

3. Start using Github Spec Kit in your project

Let’s walk through creating a local-first personal task app.

  1. Define project principles: /speckit.constitution Establish quality, accessibility, and security standards.
  2. Specify the feature: /speckit.specify A personal task app where users add, edit, and mark tasks complete. Persist tasks locally.
  3. Create the implementation Plan: /speckit.plan Choose stack (Vite + TypeScript), set constraints (small bundle, simple UI).
  4. Generate Tasks: /speckit.tasks Convert plan into discrete actions.
  5. Implement & Validate: /speckit.implement Run, review, and iterate.
  6. Commit & Merge: git add . && git commit -m "Implement basic task manager via Spec Kit"

The thing I love when working with Github Spec Kit is that whenever we develop a new feature (by starting doing /specify), it will automatically create a new git branch to separate the new things from the (stable) master/main branch. Adopting this into the existing development workflow is seamlessly and we can confidently work on the new thing without worrying messing up the current working codebase.

Conclusion

Spec-Driven Development bridges the gap between intent and implementation.
By pairing GitHub Spec Kit with AI coding agents, we can create a repeatable, auditable workflow that transforms how software is planned and built.

As always, be sure to check every generated steps, do not rely 100% on any tool 🙂

Leave a comment

Your email address will not be published. Required fields are marked *