doitundoit/github-spec-kit
Overview
This skill guides Spec-Driven Development (SDD) using the GitHub Spec Kit to move teams from code-first to specification-first workflows. It helps initialize projects, create clear functional specifications, plan technical implementations, break work into verifiable tasks, and execute implementations with predictable outcomes. Use it to keep product scenarios, acceptance criteria, and implementation plans aligned throughout development.
How this skill works
The skill walks you through a six-stage workflow: Initialize, Constitution, Specify, Plan, Tasks, and Implement. Each stage has a clear trigger and output (project bootstrap, governing principles, spec files, plans, task lists, and implementation steps) so work progresses from high-level intent to verified code. It inspects repository state, ensures CLI tooling is available, and produces or updates files under a standardized .specify and specs/ layout.
When to use it
- Bootstrapping a new project that should follow specification-first practices.
- Defining project principles and team agreements before development.
- Writing feature-level functional specifications and user scenarios.
- Translating specifications into technical plans and data models.
- Breaking plans into small, testable tasks for implementation.
- Guiding step-by-step execution and verification of tasks.
Best practices
- Initialize only in directories without conflicting git state; prefer the provided CLI flow and use --no-git only when safe.
- Keep specifications focused on user scenarios, outcomes, and acceptance criteria; avoid implementation details in spec files.
- Capture team principles early in a constitution file to guide design and quality decisions consistently.
- Turn plans into small, verifiable tasks grouped by user story to make implementation and review deterministic.
- Iterate: update spec, plan, and tasks as research or constraints evolve, and mark tasks completed during implementation.
Example use cases
- Start a new product repo using the Init stage to create the .specify scaffold and templates.
- Write a feature spec that describes user journeys and acceptance criteria without prescribing implementation.
- Produce a technical plan outlining architecture, data models, and integration points for a complex feature.
- Create a tasks.md checklist to coordinate multiple contributors and enable incremental verification.
- Drive implementation by reading the next task, coding, testing, and marking progress to keep the team synchronized.
FAQ
Check git state before initialization and use the --no-git flag only when the repository is already initialized to avoid conflicts.
Where should I keep high-level team principles?
Store them in the constitution file under .specify/memory/constitution.md so they guide specs, plans, and reviews.
Should specifications include implementation details?
No. Specifications should focus on what to build and why; implementation belongs in the plan and tasks stages.