Spec Kit is a toolkit for spec-driven development with AI coding agents. Instead of treating specifications as scaffolding to discard once coding starts, it makes them the executable input: a project constitution, a specification, an implementation plan, and a task list are written as documents that the agent then implements and converges against.
The specify CLI initialises a project for a chosen agent integration with specify init my-project --integration , installing slash commands (or agent skills with --integration-options="--skills") into the agent's configuration. Inside the agent the core loop is /speckit.constitution to set project principles once, /speckit.specify to describe what to build, /speckit.plan to choose the tech stack and architecture, /speckit.tasks to break the plan into actionable items, /speckit.implement to execute them, and /speckit.converge to check the implementation against spec, plan, and tasks, repeating until it reports Converged. Codex CLI and skills-mode integrations expose the same commands as $speckit-*.
Opt-in extensions add further workflows. The bug extension provides an assess → fix → test sequence (/speckit-bug-assess, /speckit-bug-fix, /speckit-bug-test) that keeps each fix scoped from root cause to verification. The assess extension turns a raw idea into a go / needs-clarification / kill decision through intake, research, define, shape, and decide steps, and a go decision can hand off to /speckit-specify. Community extensions, presets (template and terminology overrides), and bundles (role-based stacks) are catalogued, and specify integration list shows the 30+ supported CLI and IDE agents. --non-interactive and --force flags let CI and agent harnesses initialise projects without a picker.
Features
- Core commands: constitution, specify, plan, tasks, implement, and converge slash commands or agent skills
- Agent integrations: 30+ coding agents across CLI tools and IDE assistants, selected with --integration
- Bug extension: assess, fix, and test commands keyed by a slug so each fix stays evidence-based and documented
- Assess extension: intake, research, define, shape, and decide steps that produce a documented go/no-go decision
- Extensions and presets: community-published commands, hooks, capabilities, and template or terminology overrides
- Bundles: role and team setups composed from existing components
- Self-management: specify self check and specify self upgrade with --dry-run and --tag pinning
- Non-interactive init: --non-interactive, --force, and --ignore-agent-tools for CI and agent harnesses
