logo
0
0
WeChat Login
CodeBuddy<codebuddy@cnb.cool>
chore: sync github/spec-kit repository content
Spec Kit Logo

🌱 Spec Kit

Build high-quality software faster.

An open source toolkit that allows you to focus on product scenarios and predictable outcomes instead of vibe coding every piece from scratch.

Latest Release GitHub stars License Documentation


Table of Contents

🤔 What is Spec-Driven Development?

Spec-Driven Development flips the script on traditional software development. For decades, code has been king — specifications were just scaffolding we built and discarded once the "real work" of coding began. Spec-Driven Development changes this: specifications become executable, directly generating working implementations rather than just guiding them.

⚡ Get Started

1. Install Specify CLI

Choose your preferred installation method:

Important: The only official, maintained packages for Spec Kit are published from this GitHub repository. Any packages with the same name on PyPI are not affiliated with this project and are not maintained by the Spec Kit maintainers. Always install directly from GitHub as shown below.

Option 1: Persistent Installation (Recommended)

Install once and use everywhere. Pin a specific release tag for stability (check Releases for the latest):

# Install a specific stable release (recommended — replace vX.Y.Z with the latest tag) uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z # Or install latest from main (may include unreleased changes) uv tool install specify-cli --from git+https://github.com/github/spec-kit.git # Alternative: using pipx (also works) pipx install git+https://github.com/github/spec-kit.git@vX.Y.Z pipx install git+https://github.com/github/spec-kit.git

Then verify the correct version is installed:

specify version

And use the tool directly:

# Create new project specify init <PROJECT_NAME> # Or initialize in existing project specify init . --integration copilot # or specify init --here --integration copilot # Check installed tools specify check

To upgrade Specify, see the Upgrade Guide for detailed instructions. Quick upgrade:

uv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git@vX.Y.Z # pipx users: pipx install --force git+https://github.com/github/spec-kit.git@vX.Y.Z

Option 2: One-time Usage

Run directly without installing:

# Create new project (pinned to a stable release — replace vX.Y.Z with the latest tag) uvx --from git+https://github.com/github/spec-kit.git@vX.Y.Z specify init <PROJECT_NAME> # Or initialize in existing project uvx --from git+https://github.com/github/spec-kit.git@vX.Y.Z specify init . --integration copilot # or uvx --from git+https://github.com/github/spec-kit.git@vX.Y.Z specify init --here --integration copilot

Benefits of persistent installation:

  • Tool stays installed and available in PATH
  • No need to create shell aliases
  • Better tool management with uv tool list, uv tool upgrade, uv tool uninstall
  • Cleaner shell configuration

Option 3: Enterprise / Air-Gapped Installation

If your environment blocks access to PyPI or GitHub, see the Enterprise / Air-Gapped Installation guide for step-by-step instructions on using pip download to create portable, OS-specific wheel bundles on a connected machine.

2. Establish project principles

Launch your coding agent in the project directory. Most agents expose spec-kit as /speckit.* slash commands; Codex CLI in skills mode uses $speckit-* instead.

Use the /speckit.constitution command to create your project's governing principles and development guidelines that will guide all subsequent development.

/speckit.constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements

3. Create the spec

Use the /speckit.specify command to describe what you want to build. Focus on the what and why, not the tech stack.

/speckit.specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.

4. Create a technical implementation plan

Use the /speckit.plan command to provide your tech stack and architecture choices.

/speckit.plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.

5. Break down into tasks

Use /speckit.tasks to create an actionable task list from your implementation plan.

/speckit.tasks

6. Execute implementation

Use /speckit.implement to execute all tasks and build your feature according to the plan.

/speckit.implement

For detailed step-by-step instructions, see our comprehensive guide.

📽️ Video Overview

Want to see Spec Kit in action? Watch our video overview!

Spec Kit video header

🧩 Community Extensions

NOTE

Community extensions are independently created and maintained by their respective authors. GitHub and the Spec Kit maintainers may review pull requests that add entries to the community catalog for formatting, catalog structure, or policy compliance, but they do not review, audit, endorse, or support the extension code itself. The Community Extensions website is also a third-party resource. Review extension source code before installation and use at your own discretion.

🔍 Browse and search community extensions on the Community Extensions website.

The following community-contributed extensions are available in catalog.community.json:

Categories:

  • docs — reads, validates, or generates spec artifacts
  • code — reviews, validates, or modifies source code
  • process — orchestrates workflow across phases
  • integration — syncs with external platforms
  • visibility — reports on project health or progress

Effect:

  • Read-only — produces reports without modifying files
  • Read+Write — modifies files, creates artifacts, or updates specs
ExtensionPurposeCategoryEffectURL
Agent AssignAssign specialized Claude Code agents to spec-kit tasks for targeted executionprocessRead+Writespec-kit-agent-assign
AI-Driven Engineering (AIDE)A structured 7-step workflow for building new projects from scratch with AI assistants — from vision through implementationprocessRead+Writeaide
Architect Impact PreviewerPredicts architectural impact, complexity, and risks of proposed changes before implementation.visibilityRead-onlyspec-kit-architect-preview
Archive ExtensionArchive merged features into main project memory.docsRead+Writespec-kit-archive
Azure DevOps IntegrationSync user stories and tasks to Azure DevOps work items using OAuth authenticationintegrationRead+Writespec-kit-azure-devops
BlueprintStay code-literate in AI-driven development: review a complete code blueprint for every task from spec artifacts before /speckit.implement runsdocsRead+Writespec-kit-blueprint
Branch ConventionConfigurable branch and folder naming conventions for /specify with presets and custom patternsprocessRead+Writespec-kit-branch-convention
Brownfield BootstrapBootstrap spec-kit for existing codebases — auto-discover architecture and adopt SDD incrementallyprocessRead+Writespec-kit-brownfield
Bugfix WorkflowStructured bugfix workflow — capture bugs, trace to spec artifacts, and patch specs surgicallyprocessRead+Writespec-kit-bugfix
CanonAdds canon-driven (baseline-driven) workflows: spec-first, code-first, spec-drift. Requires Canon Core preset installation.processRead+Writespec-kit-canon
Catalog CIAutomated validation for spec-kit community catalog entries — structure, URLs, diffs, and lintingprocessRead-onlyspec-kit-catalog-ci
CI GuardSpec compliance gates for CI/CD — verify specs exist, check drift, and block merges on gapsprocessRead-onlyspec-kit-ci-guard
Checkpoint ExtensionCommit the changes made during the middle of the implementation, so you don't end up with just one very large commit at the endcodeRead+Writespec-kit-checkpoint
Cleanup ExtensionPost-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issuescodeRead+Writespec-kit-cleanup
Conduct ExtensionOrchestrates spec-kit phases via sub-agent delegation to reduce context pollution.processRead+Writespec-kit-conduct-ext
Confluence ExtensionCreate a doc in Confluence summarizing the specifications and planning filesintegrationRead+Writespec-kit-confluence
DocGuard — CDD EnforcementCanonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. Zero NPM runtime dependencies.docsRead+Writespec-kit-docguard
ExtensifyCreate and validate extensions and extension catalogsprocessRead+Writeextensify
Fix FindingsAutomated analyze-fix-reanalyze loop that resolves spec findings until cleancodeRead+Writespec-kit-fix-findings
FixIt ExtensionSpec-aware bug fixing — maps bugs to spec artifacts, proposes a plan, applies minimal changescodeRead+Writespec-kit-fixit
Fleet OrchestratorOrchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phasesprocessRead+Writespec-kit-fleet
GitHub Issues Integration 1Generate spec artifacts from GitHub Issues - import issues, sync updates, and maintain bidirectional traceabilityintegrationRead+Writespec-kit-github-issues
GitHub Issues Integration 2Creates and syncs local specs from an existing GitHub issueintegrationRead+Writespec-kit-issue
IterateIterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to buildingdocsRead+Writespec-kit-iterate
Jira IntegrationCreate Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field supportintegrationRead+Writespec-kit-jira
Learning ExtensionGenerate educational guides from implementations and enhance clarifications with mentoring contextdocsRead+Writespec-kit-learn
MAQA — Multi-Agent & Quality AssuranceCoordinator → feature → QA agent workflow with parallel worktree-based implementation. Language-agnostic. Auto-detects installed board plugins. Optional CI gate.processRead+Writespec-kit-maqa-ext
MAQA Azure DevOps IntegrationAzure DevOps Boards integration for MAQA — syncs User Stories and Task children as features progressintegrationRead+Writespec-kit-maqa-azure-devops
MAQA CI/CD GateAuto-detects GitHub Actions, CircleCI, GitLab CI, and Bitbucket Pipelines. Blocks QA handoff until pipeline is green.processRead+Writespec-kit-maqa-ci
MAQA GitHub Projects IntegrationGitHub Projects v2 integration for MAQA — syncs draft issues and Status columns as features progressintegrationRead+Writespec-kit-maqa-github-projects
MAQA Jira IntegrationJira integration for MAQA — syncs Stories and Subtasks as features progress through the boardintegrationRead+Writespec-kit-maqa-jira
MAQA Linear IntegrationLinear integration for MAQA — syncs issues and sub-issues across workflow states as features progressintegrationRead+Writespec-kit-maqa-linear
MAQA Trello IntegrationTrello board integration for MAQA — populates board from specs, moves cards, real-time checklist tickingintegrationRead+Writespec-kit-maqa-trello
Memory LoaderLoads .specify/memory/ files before lifecycle commands so LLM agents have project governance contextdocsRead-onlyspec-kit-memory-loader
Memory MDRepository-native durable memory for Spec Kit projectsdocsRead+Writespec-kit-memory-hub
MemoryLintAgent memory governance tool: Automatically audits and fixes boundary conflicts between AGENTS.md and the constitution.processRead+Writememorylint
OnboardContextual onboarding and progressive growth for developers new to spec-kit projects. Explains specs, maps dependencies, validates understanding, and guides the next stepprocessRead+Writespec-kit-onboard
OptimizeAudit and optimize AI governance for context efficiency — token budgets, rule health, interpretability, compression, coherence, and echo detectionprocessRead+Writespec-kit-optimize
Plan Review GateRequire spec.md and plan.md to be merged via MR/PR before allowing task generationprocessRead-onlyspec-kit-plan-review-gate
PR BridgeAuto-generate pull request descriptions, checklists, and summaries from spec artifactsprocessRead-onlyspec-kit-pr-bridge-
PresetifyCreate and validate presets and preset catalogsprocessRead+Writepresetify
Product ForgeFull product lifecycle from research to release — portfolio, lite mode, monorepo, optional V-ModelprocessRead+Writespeckit-product-forge
Project Health CheckDiagnose a Spec Kit project and report health issues across structure, agents, features, scripts, extensions, and gitvisibilityRead-onlyspec-kit-doctor
Project StatusShow current SDD workflow progress — active feature, artifact status, task completion, workflow phase, and extensions summaryvisibilityRead-onlyspec-kit-status
QA Testing ExtensionSystematic QA testing with browser-driven or CLI-based validation of acceptance criteria from speccodeRead-onlyspec-kit-qa
Ralph LoopAutonomous implementation loop using AI agent CLIcodeRead+Writespec-kit-ralph
Reconcile ExtensionReconcile implementation drift by surgically updating feature artifacts.docsRead+Writespec-kit-reconcile
Red TeamAdversarial review of specs before /speckit.plan — parallel lens agents surface risks that clarify/analyze structurally can't (prompt injection, integrity gaps, cross-spec drift, silent failures). Produces a structured findings report; no auto-edits to specs.docsRead+Writespec-kit-red-team
Repository IndexGenerate index for existing repo for overview, architecture and module level.docsRead-onlyspec-kit-repoindex
Retro ExtensionSprint retrospective analysis with metrics, spec accuracy assessment, and improvement suggestionsprocessRead+Writespec-kit-retro
Retrospective ExtensionPost-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updatesdocsRead+Writespec-kit-retrospective
Review ExtensionPost-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplificationcodeRead-onlyspec-kit-review
RippleDetect side effects that tests can't catch after implementation — delta-anchored analysis across 9 domain-agnostic categoriescodeRead+Writespec-kit-ripple
SDD UtilitiesResume interrupted workflows, validate project health, and verify spec-to-task traceabilityprocessRead+Writespeckit-utils
Security ReviewComprehensive security audit of codebases using AI-powered DevSecOps analysiscodeRead-onlyspec-kit-security-review
SFSpeckitEnterprise Salesforce SDLC with 18 commands for the full SDD lifecycle.processRead+Writespec-kit-sf
Ship Release ExtensionAutomates release pipeline: pre-flight checks, branch sync, changelog generation, CI verification, and PR creationprocessRead+Writespec-kit-ship
Spec Reference LoaderReads the ## References section from the feature spec and loads only the listed docs into contextdocsRead-onlyspec-kit-spec-reference-loader
Spec Critique ExtensionDual-lens critical review of spec and plan from product strategy and engineering risk perspectivesdocsRead-onlyspec-kit-critique
Spec DiagramAuto-generate Mermaid diagrams of SDD workflow state, feature progress, and task dependenciesvisibilityRead-onlyspec-kit-diagram-
Spec OrchestratorCross-feature orchestration — track state, select tasks, and detect conflicts across parallel specsprocessRead-onlyspec-kit-orchestrator
Spec RefineUpdate specs in-place, propagate changes to plan and tasks, and diff impact across artifactsprocessRead+Writespec-kit-refine
Spec ScopeEffort estimation and scope tracking — estimate work, detect creep, and budget time per phaseprocessRead-onlyspec-kit-scope-
Spec SyncDetect and resolve drift between specs and implementation. AI-assisted resolution with human approvaldocsRead+Writespec-kit-sync
Spec ValidateComprehension validation, review gating, and approval state for spec-kit artifacts — staged quizzes, peer review SLA, and a hard gate before /speckit.implementprocessRead+Writespec-kit-spec-validate
SpecTestAuto-generate test scaffolds from spec criteria, map coverage, and find untested requirementscodeRead+Writespec-kit-spectest
Staff Review ExtensionStaff-engineer-level code review that validates implementation against spec, checks security, performance, and test coveragecodeRead-onlyspec-kit-staff-review
Status ReportProject status, feature progress, and next-action recommendations for spec-driven workflowsvisibilityRead-onlyOpen-Agent-Tools/spec-kit-status
Superpowers BridgeOrchestrates obra/superpowers skills within the spec-kit SDD workflow across the full lifecycle (clarification, TDD, review, verification, critique, debugging, branch completion)processRead+Writesuperpowers-bridge
Superpowers Bridge (WangX0111)Bridges spec-kit with obra/superpowers (brainstorming, TDD, subagent, code-review) into a unified, resumable workflow with graceful degradation and session progress trackingprocessRead+Writesuperspec
TinySpecLightweight single-file workflow for small tasks — skip the heavy multi-step SDD processprocessRead+Writespec-kit-tinyspec
V-Model Extension PackEnforces V-Model paired generation of development specs and test specs with full traceabilitydocsRead+Writespec-kit-v-model
Verify ExtensionPost-implementation quality gate that validates implemented code against specification artifactscodeRead-onlyspec-kit-verify
Verify Tasks ExtensionDetect phantom completions: tasks marked [X] in tasks.md with no real implementationcodeRead-onlyspec-kit-verify-tasks
Version GuardVerify tech stack versions against live npm registries before planning and implementationprocessRead-onlyspec-kit-version-guard
What-if AnalysisPreview the downstream impact (complexity, effort, tasks, risks) of requirement changes before committing to themvisibilityRead-onlyspec-kit-whatif
Wireframe Visual Feedback LoopSVG wireframe generation, review, and sign-off for spec-driven development. Approved wireframes become spec constraints honored by /speckit.plan, /speckit.tasks, and /speckit.implementvisibilityRead+Writespec-kit-extension-wireframe
Worktree IsolationSpawn isolated git worktrees for parallel feature development without checkout switchingprocessRead+Writespec-kit-worktree
WorktreesDefault-on worktree isolation for parallel agents — sibling or nested layoutprocessRead+Writespec-kit-worktree-parallel

To submit your own extension, see the Extension Publishing Guide.

🎨 Community Presets

Community-contributed presets customize how Spec Kit behaves — overriding templates, commands, and terminology without changing any tooling. See the full list on the Community Presets page.

NOTE

Community presets are third-party contributions and are not maintained by the Spec Kit team. Review them carefully before use, and see the docs page above for the full disclaimer.

To submit your own preset, see the Presets Publishing Guide.

🚶 Community Walkthroughs

See Spec-Driven Development in action across different scenarios with community-contributed walkthroughs; find the full list on the Community Walkthroughs page.

🛠️ Community Friends

Community projects that extend, visualize, or build on Spec Kit. See the full list on the Community Friends page.

🤖 Supported AI Coding Agent Integrations

Spec Kit works with 30+ AI coding agents — both CLI tools and IDE-based assistants. See the full list with notes and usage details in the Supported AI Coding Agent Integrations guide.

Run specify integration list to see all available integrations in your installed version.

Available Slash Commands

After running specify init, your AI coding agent will have access to these slash commands for structured development. For integrations that support skills mode, passing --integration <agent> --integration-options="--skills" installs agent skills instead of slash-command prompt files.

Core Commands

Essential commands for the Spec-Driven Development workflow:

CommandAgent SkillDescription
/speckit.constitutionspeckit-constitutionCreate or update project governing principles and development guidelines
/speckit.specifyspeckit-specifyDefine what you want to build (requirements and user stories)
/speckit.planspeckit-planCreate technical implementation plans with your chosen tech stack
/speckit.tasksspeckit-tasksGenerate actionable task lists for implementation
/speckit.taskstoissuesspeckit-taskstoissuesConvert generated task lists into GitHub issues for tracking and execution
/speckit.implementspeckit-implementExecute all tasks to build the feature according to the plan

Optional Commands

Additional commands for enhanced quality and validation:

CommandAgent SkillDescription
/speckit.clarifyspeckit-clarifyClarify underspecified areas (recommended before /speckit.plan; formerly /quizme)
/speckit.analyzespeckit-analyzeCross-artifact consistency & coverage analysis (run after /speckit.tasks, before /speckit.implement)
/speckit.checklistspeckit-checklistGenerate custom quality checklists that validate requirements completeness, clarity, and consistency (like "unit tests for English")

🔧 Specify CLI Reference

For full command details, options, and examples, see the CLI Reference.

🧩 Making Spec Kit Your Own: Extensions & Presets

Spec Kit can be tailored to your needs through two complementary systems — extensions and presets — plus project-local overrides for one-off adjustments:

PriorityComponent TypeLocation
⬆ 1Project-Local Overrides.specify/templates/overrides/
2Presets — Customize core & extensions.specify/presets/templates/
3Extensions — Add new capabilities.specify/extensions/templates/
⬇ 4Spec Kit Core — Built-in SDD commands & templates.specify/templates/
  • Templates are resolved at runtime — Spec Kit walks the stack top-down and uses the first match.
  • Project-local overrides (.specify/templates/overrides/) let you make one-off adjustments for a single project without creating a full preset.
  • Extension/preset commands are applied at install time — when you run specify extension add or specify preset add, command files are written into agent directories (e.g., .claude/commands/).
  • If multiple presets or extensions provide the same command, the highest-priority version wins. On removal, the next-highest-priority version is restored automatically.
  • If no overrides or customizations exist, Spec Kit uses its core defaults.

Extensions — Add New Capabilities

Use extensions when you need functionality that goes beyond Spec Kit's core. Extensions introduce new commands and templates — for example, adding domain-specific workflows that are not covered by the built-in SDD commands, integrating with external tools, or adding entirely new development phases. They expand what Spec Kit can do.

# Search available extensions specify extension search # Install an extension specify extension add <extension-name>

For example, extensions could add Jira integration, post-implementation code review, V-Model test traceability, or project health diagnostics.

See the Extensions reference for the full command guide. Browse the community extensions above for what's available.

Presets — Customize Existing Workflows

Use presets when you want to change how Spec Kit works without adding new capabilities. Presets override the templates and commands that ship with the core and with installed extensions — for example, enforcing a compliance-oriented spec format, using domain-specific terminology, or applying organizational standards to plans and tasks. They customize the artifacts and instructions that Spec Kit and its extensions produce.

# Search available presets specify preset search # Install a preset specify preset add <preset-name>

For example, presets could restructure spec templates to require regulatory traceability, adapt the workflow to fit the methodology you use (e.g., Agile, Kanban, Waterfall, jobs-to-be-done, or domain-driven design), add mandatory security review gates to plans, enforce test-first task ordering, or localize the entire workflow to a different language. The pirate-speak demo shows just how deep the customization can go. Multiple presets can be stacked with priority ordering.

See the Presets reference for the full command guide, including resolution order and priority stacking.

When to Use Which

GoalUse
Add a brand-new command or workflowExtension
Customize the format of specs, plans, or tasksPreset
Integrate an external tool or serviceExtension
Enforce organizational or regulatory standardsPreset
Ship reusable domain-specific templatesEither — presets for template overrides, extensions for templates bundled with new commands

📚 Core Philosophy

Spec-Driven Development is a structured process that emphasizes:

  • Intent-driven development where specifications define the "what" before the "how"
  • Rich specification creation using guardrails and organizational principles
  • Multi-step refinement rather than one-shot code generation from prompts
  • Heavy reliance on advanced AI model capabilities for specification interpretation

🌟 Development Phases

PhaseFocusKey Activities
0-to-1 Development ("Greenfield")Generate from scratch
  • Start with high-level requirements
  • Generate specifications
  • Plan implementation steps
  • Build production-ready applications
Creative ExplorationParallel implementations
  • Explore diverse solutions
  • Support multiple technology stacks & architectures
  • Experiment with UX patterns
Iterative Enhancement ("Brownfield")Brownfield modernization
  • Add features iteratively
  • Modernize legacy systems
  • Adapt processes

🎯 Experimental Goals

Our research and experimentation focus on:

Technology independence

  • Create applications using diverse technology stacks
  • Validate the hypothesis that Spec-Driven Development is a process not tied to specific technologies, programming languages, or frameworks

Enterprise constraints

  • Demonstrate mission-critical application development
  • Incorporate organizational constraints (cloud providers, tech stacks, engineering practices)
  • Support enterprise design systems and compliance requirements

User-centric development

  • Build applications for different user cohorts and preferences
  • Support various development approaches (from vibe-coding to AI-native development)

Creative & iterative processes

  • Validate the concept of parallel implementation exploration
  • Provide robust iterative feature development workflows
  • Extend processes to handle upgrades and modernization tasks

🔧 Prerequisites

If you encounter issues with an agent, please open an issue so we can refine the integration.

📖 Learn More


📋 Detailed Process

Click to expand the detailed step-by-step walkthrough

You can use the Specify CLI to bootstrap your project, which will bring in the required artifacts in your environment. Run:

specify init <project_name>

Or initialize in the current directory:

specify init . # or use the --here flag specify init --here # Skip confirmation when the directory already has files specify init . --force # or specify init --here --force

Specify CLI bootstrapping a new project in the terminal

You will be prompted to select the coding agent integration you are using. You can also proactively specify it directly in the terminal:

specify init <project_name> --integration copilot specify init <project_name> --integration gemini specify init <project_name> --integration codex # Or in current directory: specify init . --integration copilot specify init . --integration codex --integration-options="--skills" # or use --here flag specify init --here --integration copilot specify init --here --integration codex --integration-options="--skills" # Force merge into a non-empty current directory specify init . --force --integration copilot # or specify init --here --force --integration copilot

The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi, Forge, Goose, or Mistral Vibe installed. If you do not, or you prefer to get the templates without checking for the right tools, use --ignore-agent-tools with your command:

specify init <project_name> --integration copilot --ignore-agent-tools

STEP 1: Establish project principles

Go to the project folder and run your coding agent. In our example, we're using claude.

Bootstrapping Claude Code environment

You will know that things are configured correctly if you see the /speckit.constitution, /speckit.specify, /speckit.plan, /speckit.tasks, and /speckit.implement commands available.

The first step should be establishing your project's governing principles using the /speckit.constitution command. This helps ensure consistent decision-making throughout all subsequent development phases:

/speckit.constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements. Include governance for how these principles should guide technical decisions and implementation choices.

This step creates or updates the .specify/memory/constitution.md file with your project's foundational guidelines that the coding agent will reference during specification, planning, and implementation phases.

STEP 2: Create project specifications

With your project principles established, you can now create the functional specifications. Use the /speckit.specify command and then provide the concrete requirements for the project you want to develop.

IMPORTANT

Be as explicit as possible about what you are trying to build and why. Do not focus on the tech stack at this point.

An example prompt:

Develop Taskify, a team productivity platform. It should allow users to create projects, add team members, assign tasks, comment and move tasks between boards in Kanban style. In this initial phase for this feature, let's call it "Create Taskify," let's have multiple users but the users will be declared ahead of time, predefined. I want five users in two different categories, one product manager and four engineers. Let's create three different sample projects. Let's have the standard Kanban columns for the status of each task, such as "To Do," "In Progress," "In Review," and "Done." There will be no login for this application as this is just the very first testing thing to ensure that our basic features are set up. For each task in the UI for a task card, you should be able to change the current status of the task between the different columns in the Kanban work board. You should be able to leave an unlimited number of comments for a particular card. You should be able to, from that task card, assign one of the valid users. When you first launch Taskify, it's going to give you a list of the five users to pick from. There will be no password required. When you click on a user, you go into the main view, which displays the list of projects. When you click on a project, you open the Kanban board for that project. You're going to see the columns. You'll be able to drag and drop cards back and forth between different columns. You will see any cards that are assigned to you, the currently logged in user, in a different color from all the other ones, so you can quickly see yours. You can edit any comments that you make, but you can't edit comments that other people made. You can delete any comments that you made, but you can't delete comments anybody else made.

After this prompt is entered, you should see Claude Code kick off the planning and spec drafting process. Claude Code will also trigger some of the built-in scripts to set up the repository.

Once this step is completed, you should have a new branch created (e.g., 001-create-taskify), as well as a new specification in the specs/001-create-taskify directory.

The produced specification should contain a set of user stories and functional requirements, as defined in the template.

At this stage, your project folder contents should resemble the following:

└── .specify ├── memory │ └── constitution.md ├── scripts │ ├── check-prerequisites.sh │ ├── common.sh │ ├── create-new-feature.sh │ ├── setup-plan.sh │ └── update-claude-md.sh ├── specs │ └── 001-create-taskify │ └── spec.md └── templates ├── plan-template.md ├── spec-template.md └── tasks-template.md

STEP 3: Functional specification clarification (required before planning)

With the baseline specification created, you can go ahead and clarify any of the requirements that were not captured properly within the first shot attempt.

You should run the structured clarification workflow before creating a technical plan to reduce rework downstream.

Preferred order:

  1. Use /speckit.clarify (structured) – sequential, coverage-based questioning that records answers in a Clarifications section.
  2. Optionally follow up with ad-hoc free-form refinement if something still feels vague.

If you intentionally want to skip clarification (e.g., spike or exploratory prototype), explicitly state that so the agent doesn't block on missing clarifications.

Example free-form refinement prompt (after /speckit.clarify if still needed):

For each sample project or project that you create there should be a variable number of tasks between 5 and 15 tasks for each one randomly distributed into different states of completion. Make sure that there's at least one task in each stage of completion.

You should also ask Claude Code to validate the Review & Acceptance Checklist, checking off the things that are validated/pass the requirements, and leave the ones that are not unchecked. The following prompt can be used:

Read the review and acceptance checklist, and check off each item in the checklist if the feature spec meets the criteria. Leave it empty if it does not.

It's important to use the interaction with Claude Code as an opportunity to clarify and ask questions around the specification - do not treat its first attempt as final.

STEP 4: Generate a plan

You can now be specific about the tech stack and other technical requirements. You can use the /speckit.plan command that is built into the project template with a prompt like this:

We are going to generate this using .NET Aspire, using Postgres as the database. The frontend should use Blazor server with drag-and-drop task boards, real-time updates. There should be a REST API created with a projects API, tasks API, and a notifications API.

The output of this step will include a number of implementation detail documents, with your directory tree resembling this:

. ├── CLAUDE.md ├── memory │ └── constitution.md ├── scripts │ ├── check-prerequisites.sh │ ├── common.sh │ ├── create-new-feature.sh │ ├── setup-plan.sh │ └── update-claude-md.sh ├── specs │ └── 001-create-taskify │ ├── contracts │ │ ├── api-spec.json │ │ └── signalr-spec.md │ ├── data-model.md │ ├── plan.md │ ├── quickstart.md │ ├── research.md │ └── spec.md └── templates ├── CLAUDE-template.md ├── plan-template.md ├── spec-template.md └── tasks-template.md

Check the research.md document to ensure that the right tech stack is used, based on your instructions. You can ask Claude Code to refine it if any of the components stand out, or even have it check the locally-installed version of the platform/framework you want to use (e.g., .NET).

Additionally, you might want to ask Claude Code to research details about the chosen tech stack if it's something that is rapidly changing (e.g., .NET Aspire, JS frameworks), with a prompt like this:

I want you to go through the implementation plan and implementation details, looking for areas that could benefit from additional research as .NET Aspire is a rapidly changing library. For those areas that you identify that require further research, I want you to update the research document with additional details about the specific versions that we are going to be using in this Taskify application and spawn parallel research tasks to clarify any details using research from the web.

During this process, you might find that Claude Code gets stuck researching the wrong thing - you can help nudge it in the right direction with a prompt like this:

I think we need to break this down into a series of steps. First, identify a list of tasks that you would need to do during implementation that you're not sure of or would benefit from further research. Write down a list of those tasks. And then for each one of these tasks, I want you to spin up a separate research task so that the net results is we are researching all of those very specific tasks in parallel. What I saw you doing was it looks like you were researching .NET Aspire in general and I don't think that's gonna do much for us in this case. That's way too untargeted research. The research needs to help you solve a specific targeted question.

NOTE

Claude Code might be over-eager and add components that you did not ask for. Ask it to clarify the rationale and the source of the change.

STEP 5: Have Claude Code validate the plan

With the plan in place, you should have Claude Code run through it to make sure that there are no missing pieces. You can use a prompt like this:

Now I want you to go and audit the implementation plan and the implementation detail files. Read through it with an eye on determining whether or not there is a sequence of tasks that you need to be doing that are obvious from reading this. Because I don't know if there's enough here. For example, when I look at the core implementation, it would be useful to reference the appropriate places in the implementation details where it can find the information as it walks through each step in the core implementation or in the refinement.

This helps refine the implementation plan and helps you avoid potential blind spots that Claude Code missed in its planning cycle. Once the initial refinement pass is complete, ask Claude Code to go through the checklist once more before you can get to the implementation.

You can also ask Claude Code (if you have the GitHub CLI installed) to go ahead and create a pull request from your current branch to main with a detailed description, to make sure that the effort is properly tracked.

NOTE

Before you have the agent implement it, it's also worth prompting Claude Code to cross-check the details to see if there are any over-engineered pieces (remember - it can be over-eager). If over-engineered components or decisions exist, you can ask Claude Code to resolve them. Ensure that Claude Code follows the constitution as the foundational piece that it must adhere to when establishing the plan.

STEP 6: Generate task breakdown with /speckit.tasks

With the implementation plan validated, you can now break down the plan into specific, actionable tasks that can be executed in the correct order. Use the /speckit.tasks command to automatically generate a detailed task breakdown from your implementation plan:

/speckit.tasks

This step creates a tasks.md file in your feature specification directory that contains:

  • Task breakdown organized by user story - Each user story becomes a separate implementation phase with its own set of tasks
  • Dependency management - Tasks are ordered to respect dependencies between components (e.g., models before services, services before endpoints)
  • Parallel execution markers - Tasks that can run in parallel are marked with [P] to optimize development workflow
  • File path specifications - Each task includes the exact file paths where implementation should occur
  • Test-driven development structure - If tests are requested, test tasks are included and ordered to be written before implementation
  • Checkpoint validation - Each user story phase includes checkpoints to validate independent functionality

The generated tasks.md provides a clear roadmap for the /speckit.implement command, ensuring systematic implementation that maintains code quality and allows for incremental delivery of user stories.

STEP 7: Implementation

Once ready, use the /speckit.implement command to execute your implementation plan:

/speckit.implement

The /speckit.implement command will:

  • Validate that all prerequisites are in place (constitution, spec, plan, and tasks)
  • Parse the task breakdown from tasks.md
  • Execute tasks in the correct order, respecting dependencies and parallel execution markers
  • Follow the TDD approach defined in your task plan
  • Provide progress updates and handle errors appropriately

IMPORTANT

The coding agent will execute local CLI commands (such as dotnet, npm, etc.) - make sure you have the required tools installed on your machine.

Once the implementation is complete, test the application and resolve any runtime errors that may not be visible in CLI logs (e.g., browser console errors). You can copy and paste such errors back to your coding agent for resolution.


🔍 Troubleshooting

Git Credential Manager on Linux

If you're having issues with Git authentication on Linux, you can install Git Credential Manager:

#!/usr/bin/env bash set -e echo "Downloading Git Credential Manager v2.6.1..." wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.deb echo "Installing Git Credential Manager..." sudo dpkg -i gcm-linux_amd64.2.6.1.deb echo "Configuring Git to use GCM..." git config --global credential.helper manager echo "Cleaning up..." rm gcm-linux_amd64.2.6.1.deb

💬 Support

For support, please open a GitHub issue. We welcome bug reports, feature requests, and questions about using Spec-Driven Development.

🙏 Acknowledgements

This project is heavily influenced by and based on the work and research of John Lam.

📄 License

This project is licensed under the terms of the MIT open source license. Please refer to the LICENSE file for the full terms.