From ff436da2b45e34656a9548d975d1e92aad579ea6 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Thu, 16 Jul 2026 07:29:46 -0500 Subject: [PATCH 01/21] chore: release 0.12.17, begin 0.12.18.dev0 development (#3560) * chore: bump version to 0.12.17 * chore: begin 0.12.18.dev0 development --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adbfbc4295..2fb0737051 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ +## [0.12.17] - 2026-07-16 + +### Changed + +- fix(extensions): resolve __SPECKIT_COMMAND tokens in auto-registered skills (#3544) +- fix(workflows): fail if/switch steps on non-list branch instead of crashing (#3515) +- feat(integrations): add Grok Build skills-based integration (#3535) +- fix(extensions/git): reject negative -Number in create-new-feature-branch.ps1 (#3538) +- test: cover preset constitution seeding through init CLI (#3297) +- fix(integration): preserve ai_skills on `use` for skills-mode Copilot (#3550) (#3551) +- [extension] Add Figma Starter extension to community catalog (#3547) +- [extension] Add Spec-Kit BDD extension to community catalog (#3548) +- [extension] Update Quality Gates (Enforcement Layer) extension to v0.3.2 (#3542) +- chore: release 0.12.16, begin 0.12.17.dev0 development (#3549) + ## [0.12.16] - 2026-07-15 ### Changed diff --git a/pyproject.toml b/pyproject.toml index d5c5bc60e2..9e3c3add76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "specify-cli" -version = "0.12.17.dev0" +version = "0.12.18.dev0" description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)." readme = "README.md" requires-python = ">=3.11" From 29eb6eddf12c9137b66af8f45255bc58aeccc1db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 07:42:26 -0500 Subject: [PATCH 02/21] =?UTF-8?q?Update=20DocGuard=20=E2=80=94=20CDD=20Enf?= =?UTF-8?q?orcement=20to=20v0.33.0=20(#3559)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update docguard extension submitted by @raccioly: - extensions/catalog.community.json (version, download_url, description, updated_at) - docs/community/extensions.md community extensions table Closes #3556 Assisted-by: GitHub Copilot (model: claude-sonnet-4.6, autonomous) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/community/extensions.md | 2 +- extensions/catalog.community.json | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/community/extensions.md b/docs/community/extensions.md index 3d2005a696..b6093d07ad 100644 --- a/docs/community/extensions.md +++ b/docs/community/extensions.md @@ -51,7 +51,7 @@ The following community-contributed extensions are available in [`catalog.commun | Confluence Extension | Create a doc in Confluence summarizing the specifications and planning files | `integration` | Read+Write | [spec-kit-confluence](https://github.com/aaronrsun/spec-kit-confluence) | | Cost Tracker | Track real LLM dollar cost across SDD workflows — per-feature budgets, per-integration comparison, and finance-ready exports | `visibility` | Read+Write | [spec-kit-cost](https://github.com/Quratulain-bilal/spec-kit-cost) | | Data Model Diagram | Generates Mermaid ER diagrams from Spec Kit data models after planning | `docs` | Read+Write | [spec-kit-data-model-diagram](https://github.com/benizzio/spec-kit-data-model-diagram) | -| DocGuard — CDD Enforcement | Doc-integrity engine with MCP server, SARIF output, and zero-LLM core. Validates, scores, and traces documentation against code — 24 validators, stable finding codes, spec-kit hooks. Pure Node.js. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) | +| DocGuard — CDD Enforcement | The only doc-integrity engine with an MCP server, SARIF/JUnit output, and a deterministic zero-LLM core. Validates, scores, and traces documentation against code — 27 validators, stable finding codes, adoption baseline for legacy repos, compliance-evidence reports, GitHub Action with PR annotations, spec-kit hooks. Pure Node.js, one pinned dep. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) | | EARS Requirements Syntax | Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements | `docs` | Read+Write | [spec-kit-ears](https://github.com/dhruv-15-03/spec-kit-ears) | | Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) | | Figma Starter | Turns a Figma section's screens into per-screen spec.md files, an app-level user-stories.md, and a build-order.md, then hands off to /speckit.specify | `integration` | Read+Write | [spec-kit-figma-starter](https://github.com/wavemaker/spec-kit-figma-starter) | diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 1da0265966..b92c9fe736 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "updated_at": "2026-07-15T14:10:00Z", + "updated_at": "2026-07-16T00:00:00Z", "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json", "extensions": { "aide": { @@ -1166,10 +1166,10 @@ "docguard": { "name": "DocGuard — CDD Enforcement", "id": "docguard", - "description": "Doc-integrity engine with MCP server, SARIF output, and zero-LLM core. Validates, scores, and traces documentation against code — 24 validators, stable finding codes, spec-kit hooks. Pure Node.js.", + "description": "The only doc-integrity engine with an MCP server, SARIF/JUnit output, and a deterministic zero-LLM core. Validates, scores, and traces documentation against code — 27 validators, stable finding codes, adoption baseline for legacy repos, compliance-evidence reports, GitHub Action with PR annotations, spec-kit hooks. Pure Node.js, one pinned dep.", "author": "raccioly", - "version": "0.32.0", - "download_url": "https://github.com/raccioly/docguard/releases/download/v0.32.0/spec-kit-docguard-v0.32.0.zip", + "version": "0.33.0", + "download_url": "https://github.com/raccioly/docguard/releases/download/v0.33.0/spec-kit-docguard-v0.33.0.zip", "repository": "https://github.com/raccioly/docguard", "homepage": "https://www.npmjs.com/package/docguard-cli", "documentation": "https://github.com/raccioly/docguard/blob/main/extensions/spec-kit-docguard/README.md", @@ -1213,7 +1213,7 @@ "downloads": 0, "stars": 0, "created_at": "2026-03-13T00:00:00Z", - "updated_at": "2026-07-13T00:00:00Z" + "updated_at": "2026-07-16T00:00:00Z" }, "doctor": { "name": "Project Health Check", From c40db8ac10f777e186ee9fc0fc42d0855485dbea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 07:55:37 -0500 Subject: [PATCH 03/21] [extension] Add Dotdog extension to community catalog (#3558) * Add Dotdog extension to community catalog Add dotdog extension submitted by @logohere to: - extensions/catalog.community.json (alphabetical order) - docs/community/extensions.md community extensions table Closes #3555 Assisted-by: GitHub Copilot (model: claude-sonnet-4.6, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(catalog): alphabetize dotdog entry and correct tool requirement Assisted-by: GitHub Copilot (model: claude-opus-4.8, autonomous) --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- docs/community/extensions.md | 1 + extensions/catalog.community.json | 41 +++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/docs/community/extensions.md b/docs/community/extensions.md index b6093d07ad..39aa3c7f53 100644 --- a/docs/community/extensions.md +++ b/docs/community/extensions.md @@ -52,6 +52,7 @@ The following community-contributed extensions are available in [`catalog.commun | Cost Tracker | Track real LLM dollar cost across SDD workflows — per-feature budgets, per-integration comparison, and finance-ready exports | `visibility` | Read+Write | [spec-kit-cost](https://github.com/Quratulain-bilal/spec-kit-cost) | | Data Model Diagram | Generates Mermaid ER diagrams from Spec Kit data models after planning | `docs` | Read+Write | [spec-kit-data-model-diagram](https://github.com/benizzio/spec-kit-data-model-diagram) | | DocGuard — CDD Enforcement | The only doc-integrity engine with an MCP server, SARIF/JUnit output, and a deterministic zero-LLM core. Validates, scores, and traces documentation against code — 27 validators, stable finding codes, adoption baseline for legacy repos, compliance-evidence reports, GitHub Action with PR annotations, spec-kit hooks. Pure Node.js, one pinned dep. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) | +| Dotdog | Import GitHub Spec Kit artifacts into local knowledge graphs for validation, analysis, search, and MCP queries. | `docs` | Read+Write | [dotdog](https://github.com/specdog/dotdog) | | EARS Requirements Syntax | Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements | `docs` | Read+Write | [spec-kit-ears](https://github.com/dhruv-15-03/spec-kit-ears) | | Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) | | Figma Starter | Turns a Figma section's screens into per-screen spec.md files, an app-level user-stories.md, and a build-order.md, then hands off to /speckit.specify | `integration` | Read+Write | [spec-kit-figma-starter](https://github.com/wavemaker/spec-kit-figma-starter) | diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index b92c9fe736..1de5ed16f1 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1248,6 +1248,47 @@ "created_at": "2026-03-13T00:00:00Z", "updated_at": "2026-03-13T00:00:00Z" }, + "dotdog": { + "name": "Dotdog", + "id": "dotdog", + "description": "Import GitHub Spec Kit artifacts into local knowledge graphs for validation, analysis, search, and MCP queries.", + "author": "specdog", + "version": "0.9.0", + "download_url": "https://github.com/specdog/dotdog/releases/download/v0.9.0/dotdog-spec-kit-extension-v0.9.0.zip", + "repository": "https://github.com/specdog/dotdog", + "homepage": "https://specdog.github.io/dotdog", + "documentation": "https://github.com/specdog/dotdog/blob/main/docs/spec-kit-extension.md", + "changelog": "https://github.com/specdog/dotdog/blob/main/CHANGELOG.md", + "license": "MIT", + "category": "docs", + "effect": "read-write", + "requires": { + "speckit_version": ">=0.12.0", + "tools": [ + { + "name": "dotdog", + "version": ">=0.9.0", + "required": true + } + ] + }, + "provides": { + "commands": 3, + "hooks": 0 + }, + "tags": [ + "specification", + "knowledge-graph", + "validation", + "mcp", + "local-first" + ], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-07-16T00:00:00Z", + "updated_at": "2026-07-16T00:00:00Z" + }, "ears": { "name": "EARS Requirements Syntax", "id": "ears", From aaf6bc22e30021ab3ef8bd393245fb32e4f611a7 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Thu, 16 Jul 2026 08:35:00 -0500 Subject: [PATCH 04/21] docs: refresh landing page ecosystem stats (#3561) * docs: refresh landing page ecosystem stats Update stale numbers in docs/index.md to match current catalogs on upstream/main and live GitHub data: extensions 105->138, presets 22->25, integrations 30+->35, contributors 200+->240+, friends 4->6, GitHub stars 106K+->121K+, extension authors 60+->70+, and the last-updated date. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e5f34221-4e6c-42e8-9fa3-5cfbc26104d1 * docs: align community extension stats on overview page Update docs/community/overview.md from "Over 90 ... 50+ authors" to "Over 130 ... 70+ authors" so it matches the refreshed landing-page numbers in docs/index.md (137 community extensions, 77 unique authors). Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 134166d9-e599-44fa-a88d-daf84ab6aca6 --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- docs/community/overview.md | 2 +- docs/index.md | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/community/overview.md b/docs/community/overview.md index 000c27bc69..d8fedcf1a3 100644 --- a/docs/community/overview.md +++ b/docs/community/overview.md @@ -4,7 +4,7 @@ The Spec Kit community builds extensions, presets, bundles, walkthroughs, and co ## Extensions -Extensions add new capabilities to Spec Kit — domain-specific commands, external tool integrations, quality gates, and more. Over 90 community extensions are available from 50+ authors, covering everything from accessibility governance to multi-agent orchestration. +Extensions add new capabilities to Spec Kit — domain-specific commands, external tool integrations, quality gates, and more. Over 130 community extensions are available from 70+ authors, covering everything from accessibility governance to multi-agent orchestration. [Browse community extensions →](extensions.md) diff --git a/docs/index.md b/docs/index.md index 13d5e049ac..083d380efc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,7 +31,7 @@ Define what to build before building it. Rich templates, quality checklists, and ### Use any coding agent -30+ integrations — Copilot, Gemini, Codex, Kilo Code, Zed, Claude, Forge, Kiro, and more. Switch freely between agents with a single command. No lock-in. +35 integrations — Copilot, Gemini, Codex, Kilo Code, Zed, Claude, Forge, Kiro, and more. Switch freely between agents with a single command. No lock-in. Run `specify init` with your agent of choice and Spec Kit sets up the right command files, context rules, and directory structures automatically. If your agent isn't listed, the `generic` integration is an escape hatch for any tool. @@ -43,7 +43,7 @@ Run `specify init` with your agent of choice and Spec Kit sets up the right comm ### Make it your own -105 community extensions (60+ authors), 22 presets, and growing. Tune the core process with presets, extend it with extensions, orchestrate it with workflows, or replace it entirely. Build and publish your own. +138 community extensions (70+ authors), 25 presets, and growing. Tune the core process with presets, extend it with extensions, orchestrate it with workflows, or replace it entirely. Build and publish your own. Including entirely different SDD processes: @@ -78,31 +78,31 @@ Community extensions like CI Guard and Architecture Guard add compliance gates a ## Built by the community -**200+ contributors** power the Spec Kit ecosystem — from core integrations to entirely new development processes. Anyone can create and publish an extension, preset, or workflow. +**240+ contributors** power the Spec Kit ecosystem — from core integrations to entirely new development processes. Anyone can create and publish an extension, preset, or workflow.
- 106K+ + 121K+ GitHub stars
- 200+ + 240+ Contributors
- 30+ + 35 Integrations
- 105 + 138 Extensions
- 22 + 25 Presets
- 4 + 6 Friends projects
@@ -151,4 +151,4 @@ Ready to start? Follow the [Quick Start Guide](quickstart.md). -

Last updated: May 27, 2026

+

Last updated: July 16, 2026

From b08d6658371dbf0d09bb6df9bcfcb981a570d44e Mon Sep 17 00:00:00 2001 From: Ehtasham Yasin Date: Thu, 16 Jul 2026 17:43:30 +0200 Subject: [PATCH 05/21] docs: document extensions.yml hook configuration (#3563) * docs: document extesnion.yml hook confriguration * docs: address hook confriguration review feedback * clarify auto execute hooks behavior * docs: clarify hook priority and condition behavior --- docs/reference/extensions.md | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/reference/extensions.md b/docs/reference/extensions.md index 30f33eca0d..783b17888d 100644 --- a/docs/reference/extensions.md +++ b/docs/reference/extensions.md @@ -171,6 +171,63 @@ To set up configuration for a newly installed extension, copy the template: cp .specify/extensions//-config.template.yml \ .specify/extensions//-config.yml ``` +## Project Extension and Hook Configuration + +Spec Kit stores project-level extension registration and hook configuration in: + +```text +.specify/extensions.yml +``` +The file contains installed extensions, global settings, and hooks that are surfaced before or after Spec Kit commands. + +```yaml +installed: + - git + - my-extension + +settings: + auto_execute_hooks: true + +hooks: + before_implement: + - extension: git + command: speckit.git.commit + enabled: true + optional: true + priority: 10 + prompt: "Commit outstanding changes before implementation?" + description: "Auto-commit before implementation" + + after_implement: + - extension: my-extension + command: speckit.my-extension.verify + enabled: true + optional: false + priority: 5 + description: "Run verification after implementation" +``` + +### Configuration fields + +The top-level `installed` list records extensions installed in the project. The `settings` mapping stores project-wide extension settings, and `hooks` groups hook registrations by event. + +`auto_execute_hooks` defaults to `true`, but is currently reserved and is not consulted when hooks are surfaced or invoked. + +Each hook entry supports the following fields: + +| Field | Description | +| --- | --- | +| `extension` | ID of the extension that registered the hook. | +| `command` | Extension command associated with the hook. | +| `enabled` | Whether the hook is active. Hooks with `enabled: false` are skipped. | +| `optional` | Whether the hook is optional. If `true`, the hook is presented with its `prompt` and can be skipped; if `false`, the hook is emitted as an automatic hook (includes `EXECUTE_COMMAND` markers). | +| `priority` | Priority metadata for the hook. Values must be integers >= 1; invalid values fall back to the default priority `10`. Current command templates surface hooks in their configured YAML order and do not sort them by `priority`. | +| `prompt` | Message shown when asking whether to run an optional hook. | +| `description` | Human-readable explanation of what the hook does. | +| `condition` | Optional expression evaluated by `HookExecutor` (using `config.` or `env.` with `is set`, `==`, or `!=`). Current command templates do not evaluate conditions and skip hooks with a non-empty condition. | +Hook event names identify when a hook is invoked. They generally use `before_` or `after_`, such as `before_implement`, `after_implement`, `before_tasks`, and `after_tasks`. + +`HookExecutor.get_hooks_for_event()` returns hooks ordered by `priority`, with lower values first. However, current command templates read hook lists directly and surface them in their configured YAML order rather than using priority ordering. ## FAQ From 396fc2c240fc16cec6408413848acba14a241043 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:08:25 -0500 Subject: [PATCH 06/21] docs: reframe SDD positioning, modernize install, and de-duplicate walkthroughs (#3565) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: reframe SDD positioning, modernize install, and de-duplicate walkthroughs Reframe the landing page so Spec Kit reads as a toolkit for Spec-Driven Development *or your own process* with any AI coding agent, and correct stale claims: context files and git are now opt-in extensions, and the install path uses PyPI (specify-cli). Generalize the landing cards to cover bundles and catalog hosting across all primitives. Restructure the Quick Start into a lean, guided Taskify walkthrough with one command per step (install as a prerequisite, Steps 1-9 aligned with the Full path), and extract the deep per-command detail into two new reference pages: reference/agentic-sdd.md (the /speckit.* SDD process) and reference/agentic-bugfix.md (the bug extension). Retitle the reference overview to "Reference" and group these agentic processes in their own section, distinct from CLI-managed primitives. Remove the duplicated "Detailed Process" walkthrough from README.md (and its TOC entry), repointing readers to the docs-site Quick Start while keeping the concise "Get Started" section as the front door. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, supervised) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d9232f8-ece4-4aa6-a9bd-ff8d74ca1c89 * docs: address review feedback on accuracy and scope - quickstart: correct the git/feature note — resolution reads .specify/feature.json / SPECIFY_FEATURE, not the checked-out branch, so switching branches alone does not switch the active feature. - quickstart + agentic-sdd: add an invocation-style note ($speckit-* for Codex/ZCode, /skill:speckit-* for Kimi) so the agent-neutral commands are executable everywhere. - agentic-sdd: fix the tasks phase structure to match the generator (Setup, Foundational, one phase per user story, final Polish; tests optional within user-story phases). - index: soften the catalog claim (catalogs curate discovery, not an install allow-list) and relabel the "CLI reference" link to "Reference" to match the retitled, broader page. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, supervised) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d9232f8-ece4-4aa6-a9bd-ff8d74ca1c89 * docs: correct feature-resolution override and add bug-command invocation note - quickstart: the previous fix named the wrong override. The active feature *directory* resolves from SPECIFY_FEATURE_DIRECTORY then .specify/feature.json; SPECIFY_FEATURE only supplies the identifier after a directory is resolved. Rewrite the note to point users at .specify/feature.json / SPECIFY_FEATURE_DIRECTORY, and clarify the git extension's branches don't by themselves change the active feature. - agentic-bugfix: add the same invocation-style caveat as the SDD reference ($speckit-bug-* for Codex/ZCode, /skill:speckit-bug-* for Kimi). Assisted-by: GitHub Copilot (model: Claude Opus 4.8, supervised) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d9232f8-ece4-4aa6-a9bd-ff8d74ca1c89 * docs: tighten bug-command contracts and drop numbered-phase examples - agentic-bugfix: don't overstate overwrite protection — an interactive run can overwrite an existing assessment after confirmation; only automated mode refuses and picks a new slug. Correct the verify verdict to the schema's verified/partial/failed (not-run is a per-check status); an unexercised reproduction downgrades the result to partial. - agentic-sdd: the implement examples labeled scoping "Phase 1/2", but the tasks contract reserves Phase 1 for Setup and Phase 2 for Foundational (user stories start at Phase 3). Scope by phase name and user-story content instead to avoid mis-scoping execution. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, supervised) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d9232f8-ece4-4aa6-a9bd-ff8d74ca1c89 --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- README.md | 290 +------------------------------ docs/index.md | 21 ++- docs/quickstart.md | 200 +++++++-------------- docs/reference/agentic-bugfix.md | 52 ++++++ docs/reference/agentic-sdd.md | 115 ++++++++++++ docs/reference/integrations.md | 2 +- docs/reference/overview.md | 22 ++- docs/toc.yml | 4 + 8 files changed, 267 insertions(+), 439 deletions(-) create mode 100644 docs/reference/agentic-bugfix.md create mode 100644 docs/reference/agentic-sdd.md diff --git a/README.md b/README.md index 77ef313f2d..ac9842e244 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,6 @@ - [🎯 Experimental Goals](#-experimental-goals) - [🔧 Prerequisites](#-prerequisites) - [📖 Learn More](#-learn-more) -- [📋 Detailed Process](#-detailed-process) - [💬 Support](#-support) - [🙏 Acknowledgements](#-acknowledgements) - [📄 License](#-license) @@ -361,294 +360,7 @@ If you encounter issues with an agent, please open an issue so we can refine the ## 📖 Learn More - **[Complete Spec-Driven Development Methodology](./spec-driven.md)** - Deep dive into the full process -- **[Detailed Walkthrough](#-detailed-process)** - Step-by-step implementation guide - ---- - -## 📋 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: - -```bash -specify init -``` - -Or initialize in the current directory: - -```bash -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](./media/specify_cli.gif) - -In an interactive terminal, you will be prompted to select the coding agent integration you are using. In non-interactive sessions, such as CI or piped runs, `specify init` defaults to GitHub Copilot unless you pass `--integration`. You can also proactively specify the integration directly in the terminal: - -```bash -specify init --integration copilot -specify init --integration gemini -specify init --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 checks that the selected integration's required CLI tool is installed on your machine when that integration has `requires_cli: True`. If you do not have the required tool installed, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command: - -```bash -specify init --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](./media/bootstrap-claude-code.gif) - -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: - -```text -/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: - -```text -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: - -```text -. -├── .specify -│ ├── memory -│ │ └── constitution.md -│ ├── scripts -│ │ └── bash -│ │ ├── check-prerequisites.sh -│ │ ├── common.sh -│ │ ├── create-new-feature.sh -│ │ ├── setup-plan.sh -│ │ └── setup-tasks.sh -│ └── templates -│ ├── plan-template.md -│ ├── spec-template.md -│ └── tasks-template.md -└── specs - └── 001-create-taskify - └── spec.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): - -```text -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: - -```text -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: - -```text -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: - -```text -. -├── CLAUDE.md -├── .specify -│ ├── memory -│ │ └── constitution.md -│ ├── scripts -│ │ └── bash -│ │ ├── check-prerequisites.sh -│ │ ├── common.sh -│ │ ├── create-new-feature.sh -│ │ ├── setup-plan.sh -│ │ └── setup-tasks.sh -│ └── templates -│ ├── CLAUDE-template.md -│ ├── plan-template.md -│ ├── spec-template.md -│ └── tasks-template.md -└── specs - └── 001-create-taskify - ├── contracts - │ ├── api-spec.json - │ └── signalr-spec.md - ├── data-model.md - ├── plan.md - ├── quickstart.md - ├── research.md - └── spec.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: - -```text -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: - -```text -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: - -```text -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](https://docs.github.com/en/github-cli/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 in `.specify/memory/constitution.md` 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: - -```text -/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: - -```text -/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. - -
+- **[Quick Start Guide](https://github.github.io/spec-kit/quickstart.html)** - Step-by-step implementation walkthrough --- diff --git a/docs/index.md b/docs/index.md index 083d380efc..e5b99a9287 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,9 +2,9 @@ # GitHub Spec Kit -**Define what to build before building it — with any AI coding agent.** +**Spec-Driven Development or your own process — with any AI coding agent.** -Spec Kit is a toolkit for [Spec-Driven Development](concepts/sdd.md) (SDD), a methodology that puts specifications at the center of AI-assisted software development. Instead of jumping straight to code, you describe _what_ to build, refine it through structured phases, and let your AI coding agent implement it. +Spec Kit is an extensible, knowledge-driven toolkit for AI-assisted software development. Use it for [Spec-Driven Development](concepts/sdd.md) (SDD) — describing _what_ to build and refining it through structured phases — or shape a process that fits how your team works, with intent at the center. Install Spec Kit  Quick Start @@ -33,7 +33,7 @@ Define what to build before building it. Rich templates, quality checklists, and 35 integrations — Copilot, Gemini, Codex, Kilo Code, Zed, Claude, Forge, Kiro, and more. Switch freely between agents with a single command. No lock-in. -Run `specify init` with your agent of choice and Spec Kit sets up the right command files, context rules, and directory structures automatically. If your agent isn't listed, the `generic` integration is an escape hatch for any tool. +Run `specify init` with your agent of choice and Spec Kit sets up the right command files and directory structures automatically. If your agent isn't listed, the `generic` integration is an escape hatch for any tool. See all integrations → @@ -43,7 +43,7 @@ Run `specify init` with your agent of choice and Spec Kit sets up the right comm ### Make it your own -138 community extensions (70+ authors), 25 presets, and growing. Tune the core process with presets, extend it with extensions, orchestrate it with workflows, or replace it entirely. Build and publish your own. +138 community extensions (70+ authors), 25 presets, and growing. Tune the core process with presets, extend it with extensions, orchestrate it with workflows, and package it all up as bundles you can share — or replace the process entirely. Including entirely different SDD processes: @@ -53,7 +53,10 @@ Including entirely different SDD processes: - **FX→.NET** — end-to-end .NET Framework migration across 7 phases - **MAQA** — multi-agent orchestration with quality assurance gates -Browse community presets → +Presets →   +Extensions →   +Workflows →   +Bundles → @@ -61,12 +64,12 @@ Including entirely different SDD processes: ### Integrate into your organization -Works offline, behind firewalls, and on **Windows, macOS, and Linux**. Host your own extension and preset catalogs so your organization controls what gets installed. +Works offline, behind firewalls, and on **Windows, macOS, and Linux**. Host your own catalogs to curate what integrations, extensions, presets, workflows, and bundles your organization discovers and recommends. Community extensions like CI Guard and Architecture Guard add compliance gates and governance that fit the way your team already works. -Installation guide →   -Extensions reference → +Enterprise / Air-Gapped →   +Reference → @@ -143,7 +146,7 @@ Community extensions like CI Guard and Architecture Guard add compliance gates a