A spec-driven development framework with AI
With more than 118,000 GitHub stars, 10,500 forks, and integration with more than 30 different coding agents - including GitHub Copilot, Claude Code, Gemini, and Codex CLI - Spec Kit stopped being an experiment and became a reference for how to structure spec-driven development in practice. The framework below uses Spec Kit's own commands as its skeleton.
The core commands as framework phases
Spec Kit organizes the process into six main commands: /speckit.constitution establishes project principles and guidelines before any feature spec; /speckit.specify defines requirements and user stories; /speckit.plan creates the technical implementation strategy; /speckit.tasks generates the breakdown into executable tasks; /speckit.implement executes implementation per the plan; and /speckit.converge assesses existing code against the specs - useful both for catching drift and for retrofitting specs into legacy code.
Optional commands that resolve ambiguity
Three additional commands cover cases where the initial spec isn't enough: /speckit.clarify resolves ambiguous requirements before proceeding; /speckit.analyze checks consistency across generated artifacts (spec, plan, tasks); /speckit.checklist allows custom quality validations per project.
The artifact structure that outlives the code
Once initialized, a project generates a specs/[feature-name]/ folder with spec.md, plan.md, tasks.md, data-model.md, and API contracts - artifacts versioned alongside the code, not external documentation that goes stale. A .specify/ folder holds the project's constitution, templates, and customization layers (extensions, presets, role-based bundles).
Intent-driven, not single-prompt
Spec Kit's central proposal is "intent-driven development" through multi-step refinement, instead of single-prompt code generation. That's the same distinction separating spec-driven development from vibe coding: describing intent and letting it be refined into specs, plans, and reviewable tasks, instead of asking for a final result directly and accepting whatever comes back.
The ten-step framework
- Requirement - the business need, before any spec
- Spec - user journey and success criteria (
/speckit.specify) - Acceptance criteria - part of the spec, not a separate document
- Technical plan - stack, architecture, constraints (
/speckit.plan) - Expected tests - defined before implementation, not after
- Agent execution - broken into reviewable tasks (
/speckit.tasks,/speckit.implement) - Validation - consistency check across spec, plan, and code (
/speckit.analyze) - Human review - over small units, not one monolithic PR
- Correction - an adjustment cycle via
/speckit.clarifywhen the spec was ambiguous - Documentation - the spec artifacts themselves, versioned alongside the code
Sources
- GitHub - Spec-driven development with AI: Get started with a new open-source toolkit - https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/
- GitHub Spec Kit - https://github.com/github/spec-kit