GitHub Spec Kit: Full Lifecycle and Quality Gates
The current lifecycle is:
constitution → specify → clarify → plan → checklist
→ tasks → analyze → implement → converge
Quality commands are proportional: clarify, checklist, and analyze are valuable when ambiguity is meaningful. Converge compares implementation with spec, plan, and tasks and appends missing work until evidence agrees. Follow the official agentic SDD reference.
Preserved Long-Form Material: speckit plan
Pattern-library note: The restored examples below preserve useful teaching depth from the earlier manuscript. Their bookmark, chat, password-reset, or other sample domains are secondary exercises. TaskFlow audit export is the canonical running system, and the current definitions and policies earlier in this guide take precedence over tool-specific legacy wording.
Learning Objectives
By the end of this chapter, you will be able to:
- Explain what
/speckit.plandoes and how it transforms specifications into implementation plans - Identify the inputs (spec.md) and outputs (plan.md, data-model.md, contracts/, research.md, quickstart.md)
- Understand specification analysis: how requirements, user stories, and acceptance criteria drive the plan
- Apply constitutional compliance to ensure plans align with project constitution
- Translate business requirements into technical decisions with rationale
- Navigate the plan template structure: technology decisions, data models, API contracts, phase gates, file creation order
- Generate an implementation plan for a feature through a hands-on tutorial
- Validate plans against phase gates (Simplicity, Anti-Abstraction, Integration-First)
- Use quickstart validation scenarios and research documents effectively
What /speckit.plan Does
/speckit.plan is the second command in the Spec Kit workflow. It transforms a feature specification—the WHAT and WHY—into an implementation plan: the HOW. The plan bridges the gap between "what users need" and "what we will build."
The Transformation
Input: specs/[branch-name]/spec.md (from /speckit.specify)
Output:
plan.md— Implementation plan with phases, technology decisions, and file creation orderdata-model.md— Entity definitions, field types, relationshipscontracts/— API contracts (OpenAPI, AsyncAPI, or similar) with request/response schemasresearch.md— Optional: library comparisons, technology evaluations, performance benchmarksquickstart.md— Key scenarios for rapid validation and smoke testing
The command does not generate code. It generates design—the blueprint that /speckit.tasks will break into executable work units.
Release safety belongs in plan.md, not in release-day memory. The plan should make compatibility, migration, rollout, rollback, and operational readiness explicit before /speckit.tasks turns design into work.
How to Interpret the Command
In this chapter, /speckit.plan means "run the planning phase of your Spec Kit workflow." That may be a slash command in an editor, a repo-local script, or an internal wrapper around prompts and templates.
What matters is the contract:
- Read
specs/[branch-name]/spec.md - Produce
plan.md - Produce supporting design artifacts such as
data-model.md,contracts/,research.md, andquickstart.md - Leave the feature folder ready for
/speckit.tasks
If your environment uses a different invocation style, substitute that command while preserving the same inputs and outputs.
Inputs: The Feature Specification
/speckit.plan reads spec.md as its primary input. It extracts:
Requirements
- Functional requirements (FR-001, FR-002, ...): What the system must do
- Acceptance criteria (AC-001, AC-002, ...): Testable conditions for "done"
- User stories: Who wants what and why
- Edge cases: Boundary conditions and error paths
- Non-goals: What we are explicitly not building
How the Plan Uses Each
| Spec Section | Plan Usage |
|---|---|
| Functional Requirements | Drives API design, data model, and component breakdown |
| Acceptance Criteria | Becomes validation scenarios in quickstart.md; informs test design |
| User Stories | Informs UX flow and API sequencing |
| Edge Cases | Drives error handling design, validation rules, and contract definitions |
| Non-Goals | Constrains scope; prevents plan from including out-of-scope work |
If the spec is vague, the plan will be vague. If the spec has [NEEDS CLARIFICATION] markers, the plan may make assumptions—document them so they can be revisited.
Outputs: The Plan Artifacts
plan.md
The central artifact. It contains:
- Architecture overview: High-level structure (components, layers, boundaries)
- Technology decisions: What we use and why (libraries, frameworks, patterns)
- Implementation phases: Ordered stages (e.g., Phase 1: Contracts, Phase 2: Data Layer, Phase 3: API, Phase 4: Integration)
- File creation order: Which files to create first (contracts → tests → source)
- Phase gates: Checkpoints (Simplicity, Anti-Abstraction, Integration-First) that must pass before proceeding
- Dependencies: What blocks what; sequencing constraints
data-model.md
Entity definitions for the feature:
- Entities: ChatRoom, Message, Participant, etc.
- Fields: Name, type, constraints, nullable
- Relationships: One-to-many, many-to-many
- Indexes: For query performance
This document informs database schema, ORM models, and API response shapes.