Spec Kit

Workflow — the primary skill per SDLC stage this framework runs, top to bottom (folded and off-stage steps omitted).

flowchart TB
    A["speckit-clarify<br/><i>Align</i>"] --> S["speckit-specify<br/><i>Specify</i>"] --> P["speckit-plan<br/><i>Plan</i>"] --> I["speckit-implement<br/><i>Implement</i>"] --> V["speckit-converge<br/><i>Validate</i>"]

Spec Kit is GitHub’s open-source toolkit for Spec-Driven Development (SDD) — the methodology that “flips the script on traditional software development” by making specifications executable rather than advisory: the spec is the primary artifact, and “code becomes its expression in a particular language and framework.” Install via the specify CLI (uv/uvx, Python 3.11+): specify init my-project --integration copilot. Works with 30+ AI coding agents (“switch freely between agents… No lock-in”), offline, and cross-platform. It is by far the largest-community framework in this wiki (106K+ stars, 200+ contributors, 105 community extensions).

What makes Spec Kit different

Spec Kit is the wiki’s most explicit, most tool-heavy instance of spec-driven development (see pattern-spec-driven-development) — the reference implementation of the idea the other frameworks share. Two things set it apart:

  • A project constitution as governing law. Alone among the frameworks here, Spec Kit makes a set of immutable project-wide principles (.specify/memory/constitution.md) a first-class, up-front artifact that every downstream plan and analysis is gated against (see pattern-project-constitution). Where gsd/matt-pocock-skills/addy-agent-skills embed principles inside individual skills, Spec Kit externalizes them into one versioned document with numbered “articles.”
  • A rich packaged ecosystem. Extensions, presets, and role-based bundles let teams reshape the workflow and enforce org standards — a distribution/customization layer no other framework here ships.

Unlike openspec’s single living specification, Spec Kit keeps a per-feature spec under specs/<feature>/ (regenerated as intent changes) rather than merging change deltas into one durable spec — though its “bidirectional feedback” philosophy (production learnings become new requirements) points at the same evolve-the-spec goal.

The workflow (Spec → Plan → Tasks → Implement)

Each phase produces a Markdown artifact that feeds the next (“structured context instead of ad-hoc prompts”). Commands are namespaced /speckit.*. Each implements: a canonical stage:

CommandRoleStage
speckit-constitutionEstablish governing principlesstage-align
speckit-specifyDefine WHAT/WHY (spec + user stories)stage-specify
speckit-clarifyInterrogate to resolve ambiguitystage-align
speckit-checklistQuality-check requirementsstage-specify
speckit-planTechnical plan, design, researchstage-plan
speckit-tasksBreak plan into an executable task liststage-plan
speckit-analyzeCross-artifact consistency & coverage gatestage-plan
speckit-taskstoissuesExport tasks to GitHub issuesstage-plan
speckit-implementExecute the tasks (TDD-enforced)stage-implement
speckit-convergeAssess codebase vs spec, append remaining workstage-validate

Capabilities

Core commands

  • speckit-constitution — create/update the project’s immutable governing principles.
  • speckit-specify — define what to build (requirements + user stories) → spec.md.
  • speckit-plan — technical implementation plan with a chosen tech stack (+ design, research).
  • speckit-tasks — generate the actionable, parallelizable task list.
  • speckit-implement — execute all tasks to build the feature per the plan.

Optional commands

  • speckit-clarify — clarify underspecified areas through iterative dialogue.
  • speckit-analyze — cross-artifact consistency & coverage analysis against the constitution.
  • speckit-checklist — generate custom quality checklists (“unit tests for your English”).
  • speckit-converge — assess the codebase against spec/plan/tasks and append remaining work.
  • speckit-taskstoissues — convert task lists into GitHub issues for tracking.

Artifacts produced

Patterns applied

The Specify CLI (tooling, not lifecycle capabilities)

CommandRole
specify initBootstrap a project for a chosen agent integration
specify self check / upgradeCheck and upgrade the toolkit
specify integration listList available AI-agent integrations
specify extension search/addInstall extensions (new commands/capabilities)
specify preset search/addInstall presets (customize existing workflows)
specify bundle search/installInstall role-based bundles

See Also