github/spec-kitPublic

💫 Toolkit to help you get started with Spec-Driven Development

AI summary: An open-source toolkit for defining software specifications optimized for AI coding agents.

Stars
125.7K
+165 today
Forks
11.2K
Watchers
648
Open issues
159
Open PRs
159
Contributors
~265
Commits
1.6K
Branches
37

PythonMITCreated Aug 21, 2025Last push todayLatest release v0.14.3+941 stars this week+1.3K this month

Star history

since Aug 24, 2025
050K100KAug 2025Dec 2025Apr 2026Aug 2026
125.7K stars as of Aug 7, 2026, tracked back to Aug 24, 2025. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 1 commit2025-08-22: 11 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 5 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 1 commit2025-09-03: 2 commits2025-09-04: 4 commits2025-09-05: 2 commits2025-09-06: 0 commits2025-09-07: 1 commit2025-09-08: 5 commits2025-09-09: 6 commits2025-09-10: 2 commits2025-09-11: 11 commits2025-09-12: 14 commits2025-09-13: 1 commit2025-09-14: 3 commits2025-09-15: 6 commits2025-09-16: 1 commit2025-09-17: 6 commits2025-09-18: 11 commits2025-09-19: 5 commits2025-09-20: 38 commits2025-09-21: 31 commits2025-09-22: 10 commits2025-09-23: 3 commits2025-09-24: 5 commits2025-09-25: 8 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 1 commit2025-10-01: 3 commits2025-10-02: 0 commits2025-10-03: 9 commits2025-10-04: 0 commits2025-10-05: 4 commits2025-10-06: 9 commits2025-10-07: 3 commits2025-10-08: 3 commits2025-10-09: 2 commits2025-10-10: 21 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 1 commit2025-10-14: 13 commits2025-10-15: 13 commits2025-10-16: 6 commits2025-10-17: 6 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 1 commit2025-10-21: 28 commits2025-10-22: 2 commits2025-10-23: 3 commits2025-10-24: 0 commits2025-10-25: 1 commit2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 1 commit2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 5 commits2025-11-04: 0 commits2025-11-05: 3 commits2025-11-06: 5 commits2025-11-07: 7 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 1 commit2025-11-15: 1 commit2025-11-16: 0 commits2025-11-17: 1 commit2025-11-18: 3 commits2025-11-19: 1 commit2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 6 commits2025-11-24: 0 commits2025-11-25: 2 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 6 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 3 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 2 commits2026-02-10: 2 commits2026-02-11: 1 commit2026-02-12: 1 commit2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 1 commit2026-02-18: 2 commits2026-02-19: 5 commits2026-02-20: 8 commits2026-02-21: 1 commit2026-02-22: 0 commits2026-02-23: 5 commits2026-02-24: 2 commits2026-02-25: 2 commits2026-02-26: 1 commit2026-02-27: 3 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 4 commits2026-03-03: 10 commits2026-03-04: 3 commits2026-03-05: 3 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 12 commits2026-03-10: 2 commits2026-03-11: 6 commits2026-03-12: 1 commit2026-03-13: 8 commits2026-03-14: 1 commit2026-03-15: 0 commits2026-03-16: 6 commits2026-03-17: 9 commits2026-03-18: 7 commits2026-03-19: 10 commits2026-03-20: 4 commits2026-03-21: 1 commit2026-03-22: 0 commits2026-03-23: 5 commits2026-03-24: 11 commits2026-03-25: 3 commits2026-03-26: 2 commits2026-03-27: 11 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 1 commit2026-03-31: 5 commits2026-04-01: 10 commits2026-04-02: 12 commits2026-04-03: 8 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 8 commits2026-04-07: 7 commits2026-04-08: 11 commits2026-04-09: 10 commits2026-04-10: 13 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 9 commits2026-04-14: 4 commits2026-04-15: 7 commits2026-04-16: 12 commits2026-04-17: 9 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 5 commits2026-04-21: 7 commits2026-04-22: 12 commits2026-04-23: 8 commits2026-04-24: 14 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 1 commit2026-04-28: 14 commits2026-04-29: 8 commits2026-04-30: 0 commits2026-05-01: 15 commits2026-05-02: 1 commit2026-05-03: 0 commits2026-05-04: 7 commits2026-05-05: 4 commits2026-05-06: 8 commits2026-05-07: 5 commits2026-05-08: 5 commits2026-05-09: 1 commit2026-05-10: 0 commits2026-05-11: 7 commits2026-05-12: 10 commits2026-05-13: 5 commits2026-05-14: 9 commits2026-05-15: 10 commits2026-05-16: 2 commits2026-05-17: 0 commits2026-05-18: 1 commit2026-05-19: 0 commits2026-05-20: 5 commits2026-05-21: 11 commits2026-05-22: 2 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 12 commits2026-05-27: 9 commits2026-05-28: 14 commits2026-05-29: 7 commits2026-05-30: 2 commits2026-05-31: 0 commits2026-06-01: 11 commits2026-06-02: 11 commits2026-06-03: 7 commits2026-06-04: 13 commits2026-06-05: 10 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 5 commits2026-06-09: 12 commits2026-06-10: 4 commits2026-06-11: 9 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 22 commits2026-06-17: 23 commits2026-06-18: 5 commits2026-06-19: 9 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 15 commits2026-06-23: 14 commits2026-06-24: 15 commits2026-06-25: 10 commits2026-06-26: 6 commits2026-06-27: 3 commits2026-06-28: 0 commits2026-06-29: 13 commits2026-06-30: 31 commits2026-07-01: 14 commits2026-07-02: 5 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 3 commits2026-07-07: 21 commits2026-07-08: 14 commits2026-07-09: 15 commits2026-07-10: 14 commits2026-07-11: 1 commit2026-07-12: 0 commits2026-07-13: 25 commits2026-07-14: 19 commits2026-07-15: 14 commits2026-07-16: 9 commits2026-07-17: 14 commits2026-07-18: 8 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 18 commits2026-07-22: 43 commits2026-07-23: 30 commits2026-07-24: 20 commits2026-07-25: 1 commit2026-07-26: 0 commits2026-07-27: 16 commits2026-07-28: 26 commits2026-07-29: 11 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
1,458 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Landmark project

    125,743 stars

  • Very active

    1,458 commits in 52 weeks

  • Community-driven

    ~265 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Repeat trending

    15 trending appearances

  • Top 10% tracked

    Rank 47 of 1058

What spec-kit does

Spec Kit provides a structured, spec-driven methodology for building software alongside AI coding agents like GitHub Copilot. It addresses the common problem of AI agents generating inaccurate or unfocused code by providing a standardized way to define Product Requirements Documents and technical specifications before coding begins. The toolkit includes templates, best practices, and integration strategies that ensure AI tools have the exact context they need to succeed. By formalizing the input provided to AI, it significantly increases the quality, consistency, and reliability of the generated code.

This toolkit is essential for product managers, engineering leads, and developers who want to maximize the effectiveness of AI coding agents by providing them with high-quality, structured specifications.

  • Standardized Templates: Offers a library of Markdown templates designed specifically to be easily parsed and understood by AI agents.
  • Workflow Framework: Provides a structured approach for moving from high-level product requirements to detailed technical implementation.
  • Agent Agnostic: Designed to work seamlessly with any major AI coding assistant, preventing lock-in to a specific vendor.
  • Context Optimization: Teaches developers how to structure their specifications to maximize the context window of LLMs.
  • Community Extensible: Allows teams to contribute and share their own specialized specification templates and workflows.

Where teams use it

Requirement Definition

Product managers use the templates to write clear PRDs that engineers can directly feed into their AI coding assistants.

Code Scaffolding

Developers provide the standardized tech spec to an agent to rapidly and accurately scaffold the entire architecture of a new feature.

Team Standardization

Engineering organizations adopt the toolkit to ensure everyone is writing specifications that are optimized for their AI workflows.

Prompt Engineering

Technical leads reference the guidelines to improve how they construct prompts and feed context to their chosen LLMs.

Getting started: git clone https://github.com/github/spec-kit

README

main branch
Spec Kit Logo

🌱 Spec Kit

Define what to build before building it — with any AI coding agent.

An open source toolkit for building high-quality software with any AI coding agent — a ready-to-use spec-driven process (or bring your own), endlessly extensible, community-driven, and built for your whole organization.

Latest Release GitHub stars License Documentation

English · 简体中文


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

Requires uv (install uv). Replace vX.Y.Z with the latest release tag from Releases — keep the leading v (for example, v0.12.11, not 0.12.11):

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

Prefer installing from PyPI? The specify-cli package is also published there:

uv tool install specify-cli

See the Installation Guide for alternative methods, verification, upgrade, and troubleshooting.

2. Initialize a project

specify init my-project --integration copilot
cd my-project

To check for updates or upgrade the installed CLI, use the self-management commands. See the Upgrade Guide for detailed scenarios and customization options.

# Check whether a newer release is available (read-only — does not modify anything)
specify self check

# Preview what would run, without actually upgrading
specify self upgrade --dry-run

# Upgrade in place to the latest stable release (auto-detects uv tool vs pipx install)
specify self upgrade

# Or pin a specific release tag (replace vX.Y.Z[suffix] with your desired release tag)
specify self upgrade --tag vX.Y.Z[suffix]

Bare specify self upgrade executes immediately, matching the no-prompt behavior of commands like pip install -U and npm update. For uv tool installs, it runs uv tool install specify-cli --force --from <git ref> under the hood so pinned release tags work, including dev, alpha/beta/rc, or build metadata suffixes. uvx (ephemeral) runs and source checkouts are detected and produce path-specific guidance instead of running an installer. Set SPECIFY_UPGRADE_TIMEOUT_SECS to cap how long the installer subprocess may run (default: no timeout — interrupt with Ctrl+C if needed).

3. 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; GitHub Copilot CLI uses /agents to select the agent or address it directly in a prompt.

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

4. 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.

5. 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.

6. Break down into tasks

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

/speckit.tasks

7. 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

Explore community-contributed resources on the Spec Kit docs site:

  • Extensions — commands, hooks, and capabilities
  • Presets — template and terminology overrides
  • Bundles — role and team stacks composed from existing components
  • Walkthroughs — end-to-end SDD scenarios
  • Friends — projects that extend or build on Spec Kit

Note

Community contributions are independently created and maintained by their respective authors. Review source code before installation and use at your own discretion.

Want to contribute? See the Extension Publishing Guide, the Presets Publishing Guide, or the Community Bundles guide.

🤖 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:

Command Agent Skill Description
/speckit.constitution speckit-constitution Create or update project governing principles and development guidelines
/speckit.specify speckit-specify Define what you want to build (requirements and user stories)
/speckit.plan speckit-plan Create technical implementation plans with your chosen tech stack
/speckit.tasks speckit-tasks Generate actionable task lists for implementation
/speckit.taskstoissues speckit-taskstoissues Convert generated task lists into GitHub issues for tracking and execution
/speckit.implement speckit-implement Execute all tasks to build the feature according to the plan
/speckit.converge speckit-converge Assess the codebase against spec/plan/tasks and append remaining work as new tasks

Optional Commands

Additional commands for enhanced quality and validation:

Command Agent Skill Description
/speckit.clarify speckit-clarify Clarify underspecified areas (recommended before /speckit.plan; formerly /quizme)
/speckit.analyze speckit-analyze Cross-artifact consistency & coverage analysis (run after /speckit.tasks, before /speckit.implement)
/speckit.checklist speckit-checklist Generate 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:

Priority Component Type Location
⬆ 1 Project-Local Overrides .specify/templates/overrides/
2 Presets — Customize core & extensions .specify/presets/templates/
3 Extensions — Add new capabilities .specify/extensions/templates/
⬇ 4 Spec 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 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.

📦 Bundles: Role-Based Setups

Extensions and presets are individual building blocks. A bundle packages a curated set of them — extensions, presets, steps, and workflows — into a single, versioned, role-oriented setup so a whole team persona (product manager, business analyst, security researcher, developer, …) can be provisioned with one command.

A bundle is described by a hand-written bundle.yml manifest. It pins each component to a version and, optionally, targets a specific integration; a bundle with no integration is agnostic and inherits whatever integration the project already uses.

# Discover bundles in the active catalog stack
specify bundle search [<query>]

# Inspect the exact component set a bundle will add (equals what install does)
specify bundle info <bundle-id>

# Install a bundle's full component set in one operation
specify bundle install <bundle-id>

# See what's installed, then update or remove non-destructively
specify bundle list
specify bundle update <bundle-id>     # or --all
specify bundle remove <bundle-id>     # removes only this bundle's components

Bundles resolve from a priority-ordered catalog stack (project > user > built-in). Each source carries an install policy: install-allowed sources can be installed from, while discovery-only sources are visible in search/info but refuse installation. Manage the stack with specify bundle catalog list|add|remove.

Authors validate and package bundles locally. Distribution is hosting the built artifact and adding a catalog source; community bundle submissions use the Bundle Submission issue template so required component catalogs and install evidence can be reviewed:

specify bundle validate --path ./my-bundle      # structural + reference checks
specify bundle build --path ./my-bundle         # produce a versioned .zip artifact

Four ready-to-read example manifests live under examples/bundles/ (product manager, business analyst, security researcher, developer).

Key guarantees: info shows exactly what install adds (transparency); installs are idempotent and confined to the project root; remove never touches components another installed bundle still needs; and all consume/author commands work offline against local or pinned sources.

When to Use Which

Goal Use
Add a brand-new command or workflow Extension
Customize the format of specs, plans, or tasks Preset
Integrate an external tool or service Extension
Enforce organizational or regulatory standards Preset
Ship reusable domain-specific templates Either — presets for template overrides, extensions for templates bundled with new commands
Provision a complete role-based setup in one command Bundle

📚 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

Phase Focus Key Activities
0-to-1 Development ("Greenfield") Generate from scratch
  • Start with high-level requirements
  • Generate specifications
  • Plan implementation steps
  • Build production-ready applications
Creative Exploration Parallel 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

For existing projects, keep Spec Kit tooling updates separate from feature artifact evolution: refresh managed project files when upgrading, and update specs/ artifacts when intended behavior changes. The Evolving Specs guide describes the recommended brownfield loop.

🎯 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


💬 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.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

203 total
  1. Spec Kit - 0.14.3v0.14.3Jul 28, 2026

    ## Install ```bash uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.14.3 specify init my-project ``` ## What's Changed - chore: bump version to 0.14.3 - Update Intake Authoring Governance preset to v0.3.0 (#3788) - fix(copilot): honor preset command template overrides (#3592) - clarify: require real interrogatives, ban topic-label questions (#3745) - feat: Add Alquimia AI integration (#2734) - harden: secure extension and preset archive downloads (#3141) - fix: correct Optional type annotation for context_note parameter (#3765) - Update AGENTS.md (#2626) - fix(extensions): tolerate non-string catalog name in display-name lookup (#3747) - fix(presets): coerce non-string catalog tags before joining (#3743) - fix: register extensions for the active integration only (#3459) - fix(extensions): tolerate non-string tags in catalog search (#3746) - fix(extensions): hyphenate command names in 'extension info' listing (#3744) - fix(workflows): escape remaining untrusted fields in `workflow info` (#3731) - fix(extensions): guard non-numeric catalog downloads in search/info rendering (#3710) - fix(agent-context): apply default markers when config markers are

  2. Spec Kit - 0.14.2v0.14.2Jul 24, 2026

    ## Install ```bash uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.14.2 specify init my-project ``` ## What's Changed - chore: bump version to 0.14.2 - Update Intake Review Governance preset to v0.1.1 (#3729) - Update Verify Review Ship extension to v0.3.0 (#3728) - Update Architecture Guard extension to v1.13.1 (#3724) - docs(upgrade): Claude Code files live in .claude/skills, not .claude/commands (#3708) - fix(kilocode): install commands under .kilo/commands (#3672) - fix(auth): normalize whitespace in auth-config env-var/id references at store time (#3691) - fix(workflows): guard non-mapping 'inputs:' block in engine._resolve_inputs (#3696) - Update Intake Authoring Governance preset to v0.2.0 (#3721) - docs: clarify shell-step interpolation safety (#3719) - [extension] Add Blueprint Index — Living Architecture Map extension to community catalog (#3718) - fix(github-http): return None on malformed host in resolve_github_release_asset_api_url (#3715) - fix(integrations): declare PiIntegration multi_install_safe (#3652) - harden: remove shell parameter from run_command() (#3716) - chore(deps): bump github/codeql-action/init from 4.37.1 to 4.37.3

  3. Spec Kit - 0.14.1v0.14.1Jul 23, 2026

    ## Install ```bash uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.14.1 specify init my-project ``` ## What's Changed - chore: bump version to 0.14.1 - Update Agent Parity Governance preset to v0.4.0 (#3697) - fix(bundler): InstallResult.changed counts uninstalled as a change (#3692) - [preset] Update Cross-Platform Governance preset to v0.2.1 (#3695) - Update A11Y Governance preset to v0.4.1 (#3693) - fix(workflows): escape step-graph brackets in `workflow info` so the type shows (#3690) - fix(workflows): filter parser rejects trailing tokens (fullmatch, not match) (#3689) - Update iSAQB Architecture Governance preset to v0.2.1 (#3687) - fix(extensions): parse SKILL.md on the --- delimiter line during removal (#3634) - fix(cli): guard lazy .hostname ValueError in extension/preset add --from (#3651) - Update Architecture Governance preset to v0.5.1 (#3686) - fix(bundler): reject a top-level non-mapping bundle-catalogs.yml in _merge_config (#3659) - Update Security Governance preset to v0.6.1 (#3685) - fix(integrations): declare OmpIntegration multi_install_safe (#3650) - feat(git-extension): add configurable Conventional Commit support (#3390) (#

  4. Spec Kit - 0.14.0v0.14.0Jul 23, 2026

    ## Install ```bash uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.14.0 specify init my-project ``` ## What's Changed - chore: bump version to 0.14.0 - docs: add spec-kit-copilot to community friends (#3675) - fix(integrations): recompute invoke_separator from retained parsed_options (#3664) - fix(workflows): preserve intra-overlay order for multiple insert_after edits (#3662) - fix(bundler): reject falsy non-mapping requires/provides in manifest from_dict (#3661) - fix(bundler): dump_yaml writes literal UTF-8 (allow_unicode=True) (#3660) - fix(integrations): declare kiro-cli multi-install safe (#3477) - fix(git-extension): trim trailing whitespace before stripping commit-message quotes (#3673) - fix(bundler): order bundle members by canonical POSIX arcname (reproducible builds) (#3658) - fix(integrations): Cline overrides post_process_command_content (correct hook name) (#3657) - docs(workflows): gate step docstring lists the 'retry' on_reject behaviour (#3656) - fix: harden bounded reads and redirect validation (#3671) - fix(packaging): bundle scripts/python into the wheel core_pack (#3665) (#3670) - fix: bundle scripts/python in wheel so --scr

  5. Spec Kit - 0.13.4v0.13.4Jul 22, 2026

    ## Install ```bash uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.13.4 specify init my-project ``` ## What's Changed - chore: bump version to 0.13.4 - docs(concepts): document the spec-of-specs feature breakdown approach (#3648) - fix(scripts): git-ext PowerShell emits the '# To persist' SPECIFY_FEATURE hint (parity) (#3632) - fix(integrations): validate cached catalog shape before returning it (#3627) - fix(bundler): reject non-list 'catalogs' in bundle-catalogs.yml with a clean error (#3623) - fix(bundler): guard lazy .hostname ValueError in catalog add_source (#3644) - Add Intake Authoring Governance preset to community catalog (#3643) - feat: add Factory Droid CLI integration (#822) (#3587) - docs(installation): document the 'py' (Python) script type (#3640) - fix(init): show hyphenated /speckit-<name> in Next Steps for Forge projects (#3642) - fix(extensions): render hyphenated hook invocations for Forge projects (#3641) - fix(workflows): workflow add detects local YAML files case-insensitively (#3633) - fix(workflows): list-literal expression ignores trailing/empty commas (#3631) - fix(workflows): StepRegistry.add tolerates a corrupted non

Code frequency

additions and deletions
+21.4K-21.4KWeek of 2025-08-17: +3,788 linesWeek of 2025-08-17: -195 linesWeek of 2025-08-24: +17 linesWeek of 2025-08-24: -33 linesWeek of 2025-08-31: +139 linesWeek of 2025-08-31: -29 linesWeek of 2025-09-07: +2,190 linesWeek of 2025-09-07: -1,451 linesWeek of 2025-09-14: +3,533 linesWeek of 2025-09-14: -1,600 linesWeek of 2025-09-21: +1,261 linesWeek of 2025-09-21: -266 linesWeek of 2025-09-28: +853 linesWeek of 2025-09-28: -583 linesWeek of 2025-10-05: +1,515 linesWeek of 2025-10-05: -868 linesWeek of 2025-10-12: +613 linesWeek of 2025-10-12: -182 linesWeek of 2025-10-19: +1,461 linesWeek of 2025-10-19: -457 linesWeek of 2025-10-26: +2 linesWeek of 2025-10-26: -1 linesWeek of 2025-11-02: +1,203 linesWeek of 2025-11-02: -666 linesWeek of 2025-11-09: +10 linesWeek of 2025-11-09: -6 linesWeek of 2025-11-16: +16 linesWeek of 2025-11-16: -14 linesWeek of 2025-11-23: +130 linesWeek of 2025-11-23: -141 linesWeek of 2025-11-30: +144 linesWeek of 2025-11-30: -111 linesWeek of 2025-12-07: +0 linesWeek of 2025-12-07: -0 linesWeek of 2025-12-14: +0 linesWeek of 2025-12-14: -0 linesWeek of 2025-12-21: +0 linesWeek of 2025-12-21: -0 linesWeek of 2025-12-28: +0 linesWeek of 2025-12-28: -0 linesWeek of 2026-01-04: +0 linesWeek of 2026-01-04: -0 linesWeek of 2026-01-11: +0 linesWeek of 2026-01-11: -0 linesWeek of 2026-01-18: +0 linesWeek of 2026-01-18: -0 linesWeek of 2026-01-25: +0 linesWeek of 2026-01-25: -0 linesWeek of 2026-02-01: +0 linesWeek of 2026-02-01: -0 linesWeek of 2026-02-08: +9,106 linesWeek of 2026-02-08: -75 linesWeek of 2026-02-15: +1,953 linesWeek of 2026-02-15: -456 linesWeek of 2026-02-22: +700 linesWeek of 2026-02-22: -67 linesWeek of 2026-03-01: +1,502 linesWeek of 2026-03-01: -168 linesWeek of 2026-03-08: +9,751 linesWeek of 2026-03-08: -993 linesWeek of 2026-03-15: +6,024 linesWeek of 2026-03-15: -639 linesWeek of 2026-03-22: +5,145 linesWeek of 2026-03-22: -776 linesWeek of 2026-03-29: +11,308 linesWeek of 2026-03-29: -6,546 linesWeek of 2026-04-05: +6,496 linesWeek of 2026-04-05: -990 linesWeek of 2026-04-12: +13,997 linesWeek of 2026-04-12: -4,813 linesWeek of 2026-04-19: +8,275 linesWeek of 2026-04-19: -1,288 linesWeek of 2026-04-26: +6,838 linesWeek of 2026-04-26: -689 linesWeek of 2026-05-03: +2,945 linesWeek of 2026-05-03: -534 linesWeek of 2026-05-10: +5,414 linesWeek of 2026-05-10: -1,573 linesWeek of 2026-05-17: +4,938 linesWeek of 2026-05-17: -247 linesWeek of 2026-05-24: +6,830 linesWeek of 2026-05-24: -1,636 linesWeek of 2026-05-31: +13,315 linesWeek of 2026-05-31: -2,543 linesWeek of 2026-06-07: +6,229 linesWeek of 2026-06-07: -2,752 linesWeek of 2026-06-14: +20,412 linesWeek of 2026-06-14: -4,924 linesWeek of 2026-06-21: +13,529 linesWeek of 2026-06-21: -5,619 linesWeek of 2026-06-28: +10,704 linesWeek of 2026-06-28: -4,605 linesWeek of 2026-07-05: +6,303 linesWeek of 2026-07-05: -733 linesWeek of 2026-07-12: +15,874 linesWeek of 2026-07-12: -1,118 linesWeek of 2026-07-19: +21,368 linesWeek of 2026-07-19: -1,115 linesWeek of 2026-07-26: +19,944 linesWeek of 2026-07-26: -1,183 linesAug 17, 2025Jul 26, 2026
+245.8K lines added, -52.7K removed over the last year.

Commits per week

last 52 weeks
1120Week of 2025-08-03: 0 commitsWeek of 2025-08-10: 0 commitsWeek of 2025-08-17: 12 commitsWeek of 2025-08-24: 5 commitsWeek of 2025-08-31: 9 commitsWeek of 2025-09-07: 40 commitsWeek of 2025-09-14: 70 commitsWeek of 2025-09-21: 57 commitsWeek of 2025-09-28: 13 commitsWeek of 2025-10-05: 42 commitsWeek of 2025-10-12: 39 commitsWeek of 2025-10-19: 35 commitsWeek of 2025-10-26: 1 commitsWeek of 2025-11-02: 20 commitsWeek of 2025-11-09: 2 commitsWeek of 2025-11-16: 5 commitsWeek of 2025-11-23: 8 commitsWeek of 2025-11-30: 9 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 6 commitsWeek of 2026-02-15: 17 commitsWeek of 2026-02-22: 13 commitsWeek of 2026-03-01: 20 commitsWeek of 2026-03-08: 30 commitsWeek of 2026-03-15: 37 commitsWeek of 2026-03-22: 32 commitsWeek of 2026-03-29: 36 commitsWeek of 2026-04-05: 49 commitsWeek of 2026-04-12: 41 commitsWeek of 2026-04-19: 46 commitsWeek of 2026-04-26: 39 commitsWeek of 2026-05-03: 30 commitsWeek of 2026-05-10: 43 commitsWeek of 2026-05-17: 19 commitsWeek of 2026-05-24: 44 commitsWeek of 2026-05-31: 52 commitsWeek of 2026-06-07: 30 commitsWeek of 2026-06-14: 59 commitsWeek of 2026-06-21: 63 commitsWeek of 2026-06-28: 63 commitsWeek of 2026-07-05: 68 commitsWeek of 2026-07-12: 89 commitsWeek of 2026-07-19: 112 commitsWeek of 2026-07-26: 53 commitsAug 3, 2025Jul 26, 2026
1.5K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 7 commitsSun 1:00 — 4 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 1 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 2 commitsSun 10:00 — 0 commitsSun 11:00 — 9 commitsSun 12:00 — 6 commitsSun 13:00 — 3 commitsSun 14:00 — 1 commitsSun 15:00 — 1 commitsSun 16:00 — 5 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 3 commitsSun 20:00 — 0 commitsSun 21:00 — 1 commitsSun 22:00 — 2 commitsSun 23:00 — 0 commitsMon 0:00 — 2 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 4 commitsMon 7:00 — 4 commitsMon 8:00 — 7 commitsMon 9:00 — 8 commitsMon 10:00 — 12 commitsMon 11:00 — 16 commitsMon 12:00 — 4 commitsMon 13:00 — 10 commitsMon 14:00 — 16 commitsMon 15:00 — 10 commitsMon 16:00 — 6 commitsMon 17:00 — 17 commitsMon 18:00 — 8 commitsMon 19:00 — 20 commitsMon 20:00 — 15 commitsMon 21:00 — 26 commitsMon 22:00 — 15 commitsMon 23:00 — 11 commitsTue 0:00 — 12 commitsTue 1:00 — 12 commitsTue 2:00 — 13 commitsTue 3:00 — 4 commitsTue 4:00 — 1 commitsTue 5:00 — 4 commitsTue 6:00 — 10 commitsTue 7:00 — 11 commitsTue 8:00 — 11 commitsTue 9:00 — 25 commitsTue 10:00 — 19 commitsTue 11:00 — 14 commitsTue 12:00 — 10 commitsTue 13:00 — 22 commitsTue 14:00 — 13 commitsTue 15:00 — 21 commitsTue 16:00 — 27 commitsTue 17:00 — 19 commitsTue 18:00 — 22 commitsTue 19:00 — 5 commitsTue 20:00 — 11 commitsTue 21:00 — 18 commitsTue 22:00 — 18 commitsTue 23:00 — 15 commitsWed 0:00 — 14 commitsWed 1:00 — 10 commitsWed 2:00 — 10 commitsWed 3:00 — 9 commitsWed 4:00 — 1 commitsWed 5:00 — 3 commitsWed 6:00 — 14 commitsWed 7:00 — 8 commitsWed 8:00 — 10 commitsWed 9:00 — 13 commitsWed 10:00 — 8 commitsWed 11:00 — 9 commitsWed 12:00 — 7 commitsWed 13:00 — 8 commitsWed 14:00 — 13 commitsWed 15:00 — 17 commitsWed 16:00 — 18 commitsWed 17:00 — 27 commitsWed 18:00 — 16 commitsWed 19:00 — 11 commitsWed 20:00 — 12 commitsWed 21:00 — 23 commitsWed 22:00 — 14 commitsWed 23:00 — 11 commitsThu 0:00 — 8 commitsThu 1:00 — 8 commitsThu 2:00 — 4 commitsThu 3:00 — 3 commitsThu 4:00 — 3 commitsThu 5:00 — 7 commitsThu 6:00 — 0 commitsThu 7:00 — 12 commitsThu 8:00 — 17 commitsThu 9:00 — 8 commitsThu 10:00 — 14 commitsThu 11:00 — 12 commitsThu 12:00 — 17 commitsThu 13:00 — 13 commitsThu 14:00 — 16 commitsThu 15:00 — 10 commitsThu 16:00 — 5 commitsThu 17:00 — 16 commitsThu 18:00 — 15 commitsThu 19:00 — 8 commitsThu 20:00 — 7 commitsThu 21:00 — 12 commitsThu 22:00 — 16 commitsThu 23:00 — 23 commitsFri 0:00 — 7 commitsFri 1:00 — 0 commitsFri 2:00 — 3 commitsFri 3:00 — 1 commitsFri 4:00 — 1 commitsFri 5:00 — 0 commitsFri 6:00 — 2 commitsFri 7:00 — 9 commitsFri 8:00 — 22 commitsFri 9:00 — 12 commitsFri 10:00 — 29 commitsFri 11:00 — 30 commitsFri 12:00 — 10 commitsFri 13:00 — 17 commitsFri 14:00 — 20 commitsFri 15:00 — 15 commitsFri 16:00 — 15 commitsFri 17:00 — 20 commitsFri 18:00 — 7 commitsFri 19:00 — 11 commitsFri 20:00 — 7 commitsFri 21:00 — 9 commitsFri 22:00 — 11 commitsFri 23:00 — 10 commitsSat 0:00 — 12 commitsSat 1:00 — 6 commitsSat 2:00 — 4 commitsSat 3:00 — 0 commitsSat 4:00 — 1 commitsSat 5:00 — 0 commitsSat 6:00 — 1 commitsSat 7:00 — 0 commitsSat 8:00 — 4 commitsSat 9:00 — 3 commitsSat 10:00 — 4 commitsSat 11:00 — 6 commitsSat 12:00 — 4 commitsSat 13:00 — 3 commitsSat 14:00 — 0 commitsSat 15:00 — 2 commitsSat 16:00 — 0 commitsSat 17:00 — 0 commitsSat 18:00 — 0 commitsSat 19:00 — 3 commitsSat 20:00 — 2 commitsSat 21:00 — 6 commitsSat 22:00 — 1 commitsSat 23:00 — 1 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 14, 2026daily#10+6
Jul 13, 2026daily#20+3
Jun 17, 2026daily#16+14
Jun 5, 2026daily#23+20
May 20, 2026daily#22+41
May 19, 2026daily#15+47
May 16, 2026daily#19+113
May 14, 2026daily#10+90
May 13, 2026daily#14+76
May 12, 2026daily#3+95
May 11, 2026daily#22+97
May 10, 2026daily#12+210
May 9, 2026daily#21+114
Mar 23, 2026daily#24+116
Mar 22, 2026daily#17+263
  • public-apis/public-apis

    A collective list of free APIs

    454.9K stars · Python

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    362.2K stars · Python