mirror of
https://github.com/github/spec-kit.git
synced 2026-03-25 06:43:09 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb152eb824 | ||
|
|
00e5dc1f91 | ||
|
|
eeda669c19 | ||
|
|
ebc61067e8 | ||
|
|
2c2936022c | ||
|
|
816c1160e9 | ||
|
|
bc766c3101 | ||
|
|
f132f748e3 | ||
|
|
ee65758e2b |
11
CHANGELOG.md
11
CHANGELOG.md
@@ -1,11 +1,22 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [0.4.1] - 2026-03-24
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
- Add checkpoint extension (#1947)
|
||||||
|
- fix(scripts): prioritize .specify over git for repo root detection (#1933)
|
||||||
|
- docs: add AIDE extension demo to community projects (#1943)
|
||||||
|
- fix(templates): add missing Assumptions section to spec template (#1939)
|
||||||
|
- chore: bump version to 0.4.1 (#1937)
|
||||||
|
|
||||||
## [0.4.0] - 2026-03-23
|
## [0.4.0] - 2026-03-23
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
|
||||||
- fix(cli): add allow_unicode=True and encoding="utf-8" to YAML I/O (#1936)
|
- fix(cli): add allow_unicode=True and encoding="utf-8" to YAML I/O (#1936)
|
||||||
- fix(codex): native skills fallback refresh + legacy prompt suppression (#1930)
|
- fix(codex): native skills fallback refresh + legacy prompt suppression (#1930)
|
||||||
|
|
||||||
- feat(cli): embed core pack in wheel for offline/air-gapped deployment (#1803)
|
- feat(cli): embed core pack in wheel for offline/air-gapped deployment (#1803)
|
||||||
- ci: increase stale workflow operations-per-run to 250 (#1922)
|
- ci: increase stale workflow operations-per-run to 250 (#1922)
|
||||||
- docs: update publishing guide with Category and Effect columns (#1913)
|
- docs: update publishing guide with Category and Effect columns (#1913)
|
||||||
|
|||||||
63
README.md
63
README.md
@@ -22,7 +22,10 @@
|
|||||||
- [🤔 What is Spec-Driven Development?](#-what-is-spec-driven-development)
|
- [🤔 What is Spec-Driven Development?](#-what-is-spec-driven-development)
|
||||||
- [⚡ Get Started](#-get-started)
|
- [⚡ Get Started](#-get-started)
|
||||||
- [📽️ Video Overview](#️-video-overview)
|
- [📽️ Video Overview](#️-video-overview)
|
||||||
|
- [🧩 Community Extensions](#-community-extensions)
|
||||||
|
- [🎨 Community Presets](#-community-presets)
|
||||||
- [🚶 Community Walkthroughs](#-community-walkthroughs)
|
- [🚶 Community Walkthroughs](#-community-walkthroughs)
|
||||||
|
- [🛠️ Community Friends](#️-community-friends)
|
||||||
- [🤖 Supported AI Agents](#-supported-ai-agents)
|
- [🤖 Supported AI Agents](#-supported-ai-agents)
|
||||||
- [🔧 Specify CLI Reference](#-specify-cli-reference)
|
- [🔧 Specify CLI Reference](#-specify-cli-reference)
|
||||||
- [🧩 Making Spec Kit Your Own: Extensions & Presets](#-making-spec-kit-your-own-extensions--presets)
|
- [🧩 Making Spec Kit Your Own: Extensions & Presets](#-making-spec-kit-your-own-extensions--presets)
|
||||||
@@ -155,6 +158,56 @@ Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.c
|
|||||||
|
|
||||||
[](https://www.youtube.com/watch?v=a9eR1xsfvHg&pp=0gcJCckJAYcqIYzv)
|
[](https://www.youtube.com/watch?v=a9eR1xsfvHg&pp=0gcJCckJAYcqIYzv)
|
||||||
|
|
||||||
|
## 🧩 Community Extensions
|
||||||
|
|
||||||
|
The following community-contributed extensions are available in [`catalog.community.json`](extensions/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
|
||||||
|
|
||||||
|
| Extension | Purpose | Category | Effect | URL |
|
||||||
|
|-----------|---------|----------|--------|-----|
|
||||||
|
| AI-Driven Engineering (AIDE) | A structured 7-step workflow for building new projects from scratch with AI assistants — from vision through implementation | `process` | Read+Write | [aide](https://github.com/mnriem/spec-kit-extensions/tree/main/aide) |
|
||||||
|
| Archive Extension | Archive merged features into main project memory. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
|
||||||
|
| Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | `integration` | Read+Write | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
|
||||||
|
| Checkpoint Extension | Commit the changes made during the middle of the implementation, so you don't end up with just one very large commit at the end | `code` | Read+Write | [spec-kit-checkpoint](https://github.com/aaronrsun/spec-kit-checkpoint) |
|
||||||
|
| Cleanup Extension | Post-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues | `code` | Read+Write | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
|
||||||
|
| Cognitive Squad | Multi-agent cognitive system with Triadic Model: understanding, internalization, application — with quality gates, backpropagation verification, and self-healing | `docs` | Read+Write | [cognitive-squad](https://github.com/Testimonial/cognitive-squad) |
|
||||||
|
| Conduct Extension | Orchestrates spec-kit phases via sub-agent delegation to reduce context pollution. | `process` | Read+Write | [spec-kit-conduct-ext](https://github.com/twbrandon7/spec-kit-conduct-ext) |
|
||||||
|
| DocGuard — CDD Enforcement | Canonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. Zero NPM runtime dependencies. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) |
|
||||||
|
| Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) |
|
||||||
|
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | `process` | Read+Write | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) |
|
||||||
|
| Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building | `docs` | Read+Write | [spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate) |
|
||||||
|
| Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | `integration` | Read+Write | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
|
||||||
|
| Learning Extension | Generate educational guides from implementations and enhance clarifications with mentoring context | `docs` | Read+Write | [spec-kit-learn](https://github.com/imviancagrace/spec-kit-learn) |
|
||||||
|
| Presetify | Create and validate presets and preset catalogs | `process` | Read+Write | [presetify](https://github.com/mnriem/spec-kit-extensions/tree/main/presetify) |
|
||||||
|
| Project Health Check | Diagnose a Spec Kit project and report health issues across structure, agents, features, scripts, extensions, and git | `visibility` | Read-only | [spec-kit-doctor](https://github.com/KhawarHabibKhan/spec-kit-doctor) |
|
||||||
|
| Project Status | Show current SDD workflow progress — active feature, artifact status, task completion, workflow phase, and extensions summary | `visibility` | Read-only | [spec-kit-status](https://github.com/KhawarHabibKhan/spec-kit-status) |
|
||||||
|
| Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) |
|
||||||
|
| Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
|
||||||
|
| Retrospective Extension | Post-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updates | `docs` | Read+Write | [spec-kit-retrospective](https://github.com/emi-dm/spec-kit-retrospective) |
|
||||||
|
| Review Extension | Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification | `code` | Read-only | [spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review) |
|
||||||
|
| SDD Utilities | Resume interrupted workflows, validate project health, and verify spec-to-task traceability | `process` | Read+Write | [speckit-utils](https://github.com/mvanhorn/speckit-utils) |
|
||||||
|
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | `docs` | Read+Write | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
|
||||||
|
| Understanding | Automated requirements quality analysis — 31 deterministic metrics against IEEE/ISO standards with experimental energy-based ambiguity detection | `docs` | Read-only | [understanding](https://github.com/Testimonial/understanding) |
|
||||||
|
| V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability | `docs` | Read+Write | [spec-kit-v-model](https://github.com/leocamello/spec-kit-v-model) |
|
||||||
|
| Verify Extension | Post-implementation quality gate that validates implemented code against specification artifacts | `code` | Read-only | [spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify) |
|
||||||
|
| Verify Tasks Extension | Detect phantom completions: tasks marked [X] in tasks.md with no real implementation | `code` | Read-only | [spec-kit-verify-tasks](https://github.com/datastone-inc/spec-kit-verify-tasks) |
|
||||||
|
|
||||||
|
To submit your own extension, see the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md).
|
||||||
|
|
||||||
|
## 🎨 Community Presets
|
||||||
|
|
||||||
|
The following community-contributed presets customize how Spec Kit behaves — overriding templates, commands, and terminology without changing any tooling. Presets are available in [`catalog.community.json`](presets/catalog.community.json):
|
||||||
|
|
||||||
|
| Preset | Purpose | Provides | Requires | URL |
|
||||||
|
|--------|---------|----------|----------|-----|
|
||||||
|
| AIDE In-Place Migration | Adapts the AIDE extension workflow for in-place technology migrations (X → Y pattern) — adds migration objectives, verification gates, knowledge documents, and behavioral equivalence criteria | 2 templates, 8 commands | AIDE extension | [spec-kit-presets](https://github.com/mnriem/spec-kit-presets) |
|
||||||
|
| Pirate Speak (Full) | Transforms all Spec Kit output into pirate speak — specs become "Voyage Manifests", plans become "Battle Plans", tasks become "Crew Assignments" | 6 templates, 9 commands | — | [spec-kit-presets](https://github.com/mnriem/spec-kit-presets) |
|
||||||
|
|
||||||
|
To build and publish your own preset, see the [Presets Publishing Guide](presets/PUBLISHING.md).
|
||||||
|
|
||||||
## 🚶 Community Walkthroughs
|
## 🚶 Community Walkthroughs
|
||||||
|
|
||||||
See Spec-Driven Development in action across different scenarios with these community-contributed walkthroughs:
|
See Spec-Driven Development in action across different scenarios with these community-contributed walkthroughs:
|
||||||
@@ -173,6 +226,14 @@ See Spec-Driven Development in action across different scenarios with these comm
|
|||||||
|
|
||||||
- **[Greenfield Spring Boot + React with a custom extension](https://github.com/mnriem/spec-kit-aide-extension-demo)** — Walks through the **AIDE extension**, a community extension that adds an alternative spec-driven workflow to spec-kit with high-level specs (vision) and low-level specs (work items) organized in a 7-step iterative lifecycle: vision → roadmap → progress tracking → work queue → work items → execution → feedback loops. Uses a family trading platform (Spring Boot 4, React 19, PostgreSQL, Docker Compose) as the scenario to illustrate how the extension mechanism lets you plug in a different style of spec-driven development without changing any core tooling — truly utilizing the "Kit" in Spec Kit.
|
- **[Greenfield Spring Boot + React with a custom extension](https://github.com/mnriem/spec-kit-aide-extension-demo)** — Walks through the **AIDE extension**, a community extension that adds an alternative spec-driven workflow to spec-kit with high-level specs (vision) and low-level specs (work items) organized in a 7-step iterative lifecycle: vision → roadmap → progress tracking → work queue → work items → execution → feedback loops. Uses a family trading platform (Spring Boot 4, React 19, PostgreSQL, Docker Compose) as the scenario to illustrate how the extension mechanism lets you plug in a different style of spec-driven development without changing any core tooling — truly utilizing the "Kit" in Spec Kit.
|
||||||
|
|
||||||
|
## 🛠️ Community Friends
|
||||||
|
|
||||||
|
Community projects that extend, visualize, or build on Spec Kit:
|
||||||
|
|
||||||
|
- **[cc-sdd](https://github.com/rhuss/cc-sdd)** - A Claude Code plugin that adds composable traits on top of Spec Kit with [Superpowers](https://github.com/obra/superpowers)-based quality gates, spec/code review, git worktree isolation, and parallel implementation via agent teams.
|
||||||
|
|
||||||
|
- **[Spec Kit Assistant](https://marketplace.visualstudio.com/items?itemName=rfsales.speckit-assistant)** — A VS Code extension that provides a visual orchestrator for the full SDD workflow (constitution → specification → planning → tasks → implementation) with phase status visualization, an interactive task checklist, DAG visualization, and support for Claude, Gemini, GitHub Copilot, and OpenAI backends. Requires the `specify` CLI in your PATH.
|
||||||
|
|
||||||
## 🤖 Supported AI Agents
|
## 🤖 Supported AI Agents
|
||||||
|
|
||||||
| Agent | Support | Notes |
|
| Agent | Support | Notes |
|
||||||
@@ -382,7 +443,7 @@ specify extension add <extension-name>
|
|||||||
|
|
||||||
For example, extensions could add Jira integration, post-implementation code review, V-Model test traceability, or project health diagnostics.
|
For example, extensions could add Jira integration, post-implementation code review, V-Model test traceability, or project health diagnostics.
|
||||||
|
|
||||||
See the [Extensions README](./extensions/README.md) for the full guide, the complete community catalog, and how to build and publish your own.
|
See the [Extensions README](./extensions/README.md) for the full guide and how to build and publish your own. Browse the [community extensions](#-community-extensions) above for what's available.
|
||||||
|
|
||||||
### Presets — Customize Existing Workflows
|
### Presets — Customize Existing Workflows
|
||||||
|
|
||||||
|
|||||||
79
TESTING.md
Normal file
79
TESTING.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# Manual Testing Guide
|
||||||
|
|
||||||
|
Any change that affects a slash command's behavior requires manually testing that command through an AI agent and submitting results with the PR.
|
||||||
|
|
||||||
|
## Process
|
||||||
|
|
||||||
|
1. **Identify affected commands** — use the [prompt below](#determining-which-tests-to-run) to have your agent analyze your changed files and determine which commands need testing.
|
||||||
|
2. **Set up a test project** — scaffold from your local branch (see [Setup](#setup)).
|
||||||
|
3. **Run each affected command** — invoke it in your agent, verify it completes successfully, and confirm it produces the expected output (files created, scripts executed, artifacts populated).
|
||||||
|
4. **Run prerequisites first** — commands that depend on earlier commands (e.g., `/speckit.tasks` requires `/speckit.plan` which requires `/speckit.specify`) must be run in order.
|
||||||
|
5. **Report results** — paste the [reporting template](#reporting-results) into your PR with pass/fail for each command tested.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install the CLI from your local branch
|
||||||
|
cd <spec-kit-repo>
|
||||||
|
uv venv .venv
|
||||||
|
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
||||||
|
uv pip install -e .
|
||||||
|
|
||||||
|
# Initialize a test project using your local changes
|
||||||
|
specify init /tmp/speckit-test --ai <agent> --offline
|
||||||
|
cd /tmp/speckit-test
|
||||||
|
|
||||||
|
# Open in your agent
|
||||||
|
```
|
||||||
|
|
||||||
|
## Reporting results
|
||||||
|
|
||||||
|
Paste this into your PR:
|
||||||
|
|
||||||
|
~~~markdown
|
||||||
|
## Manual test results
|
||||||
|
|
||||||
|
**Agent**: [e.g., GitHub Copilot in VS Code] | **OS/Shell**: [e.g., macOS/zsh]
|
||||||
|
|
||||||
|
| Command tested | Notes |
|
||||||
|
|----------------|-------|
|
||||||
|
| `/speckit.command` | |
|
||||||
|
~~~
|
||||||
|
|
||||||
|
## Determining which tests to run
|
||||||
|
|
||||||
|
Copy this prompt into your agent. Include the agent's response (selected tests plus a brief explanation of the mapping) in your PR.
|
||||||
|
|
||||||
|
~~~text
|
||||||
|
Read TESTING.md, then run `git diff --name-only main` to get my changed files.
|
||||||
|
For each changed file, determine which slash commands it affects by reading
|
||||||
|
the command templates in templates/commands/ to understand what each command
|
||||||
|
invokes. Use these mapping rules:
|
||||||
|
|
||||||
|
- templates/commands/X.md → the command it defines
|
||||||
|
- scripts/bash/Y.sh or scripts/powershell/Y.ps1 → every command that invokes that script (grep templates/commands/ for the script name). Also check transitive dependencies: if the changed script is sourced by other scripts (e.g., common.sh is sourced by create-new-feature.sh, check-prerequisites.sh, setup-plan.sh, update-agent-context.sh), then every command invoking those downstream scripts is also affected
|
||||||
|
- templates/Z-template.md → every command that consumes that template during execution
|
||||||
|
- src/specify_cli/*.py → CLI commands (`specify init`, `specify check`, `specify extension *`, `specify preset *`); test the affected CLI command and, for init/scaffolding changes, at minimum test /speckit.specify
|
||||||
|
- extensions/X/commands/* → the extension command it defines
|
||||||
|
- extensions/X/scripts/* → every extension command that invokes that script
|
||||||
|
- extensions/X/extension.yml or config-template.yml → every command in that extension. Also check if the manifest defines hooks (look for `hooks:` entries like `before_specify`, `after_implement`, etc.) — if so, the core commands those hooks attach to are also affected
|
||||||
|
- presets/*/* → test preset scaffolding via `specify init` with the preset
|
||||||
|
- pyproject.toml → packaging/bundling; test `specify init` and verify bundled assets
|
||||||
|
|
||||||
|
Include prerequisite tests (e.g., T5 requires T3 requires T1).
|
||||||
|
|
||||||
|
Output in this format:
|
||||||
|
|
||||||
|
### Test selection reasoning
|
||||||
|
|
||||||
|
| Changed file | Affects | Test | Why |
|
||||||
|
|---|---|---|---|
|
||||||
|
| (path) | (command) | T# | (reason) |
|
||||||
|
|
||||||
|
### Required tests
|
||||||
|
|
||||||
|
Number each test sequentially (T1, T2, ...). List prerequisite tests first.
|
||||||
|
|
||||||
|
- T1: /speckit.command — (reason)
|
||||||
|
- T2: /speckit.command — (reason)
|
||||||
|
~~~
|
||||||
@@ -523,7 +523,7 @@ Submit to the community catalog for public discovery:
|
|||||||
|
|
||||||
1. **Fork** spec-kit repository
|
1. **Fork** spec-kit repository
|
||||||
2. **Add entry** to `extensions/catalog.community.json`
|
2. **Add entry** to `extensions/catalog.community.json`
|
||||||
3. **Update** `extensions/README.md` with your extension
|
3. **Update** the Community Extensions table in `README.md` with your extension
|
||||||
4. **Create PR** following the [Extension Publishing Guide](EXTENSION-PUBLISHING-GUIDE.md)
|
4. **Create PR** following the [Extension Publishing Guide](EXTENSION-PUBLISHING-GUIDE.md)
|
||||||
5. **After merge**, your extension becomes available:
|
5. **After merge**, your extension becomes available:
|
||||||
- Users can browse `catalog.community.json` to discover your extension
|
- Users can browse `catalog.community.json` to discover your extension
|
||||||
|
|||||||
@@ -204,9 +204,9 @@ Edit `extensions/catalog.community.json` and add your extension:
|
|||||||
- Use current timestamp for `created_at` and `updated_at`
|
- Use current timestamp for `created_at` and `updated_at`
|
||||||
- Update the top-level `updated_at` to current time
|
- Update the top-level `updated_at` to current time
|
||||||
|
|
||||||
### 3. Update Extensions README
|
### 3. Update Community Extensions Table
|
||||||
|
|
||||||
Add your extension to the Available Extensions table in `extensions/README.md`:
|
Add your extension to the Community Extensions table in the project root `README.md`:
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
| Your Extension Name | Brief description of what it does | `<category>` | <effect> | [repo-name](https://github.com/your-org/spec-kit-your-extension) |
|
| Your Extension Name | Brief description of what it does | `<category>` | <effect> | [repo-name](https://github.com/your-org/spec-kit-your-extension) |
|
||||||
@@ -234,7 +234,7 @@ Insert your extension in alphabetical order in the table.
|
|||||||
git checkout -b add-your-extension
|
git checkout -b add-your-extension
|
||||||
|
|
||||||
# Commit your changes
|
# Commit your changes
|
||||||
git add extensions/catalog.community.json extensions/README.md
|
git add extensions/catalog.community.json README.md
|
||||||
git commit -m "Add your-extension to community catalog
|
git commit -m "Add your-extension to community catalog
|
||||||
|
|
||||||
- Extension ID: your-extension
|
- Extension ID: your-extension
|
||||||
@@ -273,7 +273,7 @@ Brief description of what your extension does.
|
|||||||
- [x] All commands working
|
- [x] All commands working
|
||||||
- [x] No security vulnerabilities
|
- [x] No security vulnerabilities
|
||||||
- [x] Added to extensions/catalog.community.json
|
- [x] Added to extensions/catalog.community.json
|
||||||
- [x] Added to extensions/README.md Available Extensions table
|
- [x] Added to Community Extensions table in README.md
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
Tested on:
|
Tested on:
|
||||||
|
|||||||
@@ -68,37 +68,9 @@ specify extension add --from https://github.com/org/spec-kit-ext/archive/refs/ta
|
|||||||
|
|
||||||
## Available Community Extensions
|
## Available Community Extensions
|
||||||
|
|
||||||
The following community-contributed extensions are available in [`catalog.community.json`](catalog.community.json):
|
See the [Community Extensions](../README.md#-community-extensions) section in the main README for the full list of available community-contributed extensions.
|
||||||
|
|
||||||
**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
|
For the raw catalog data, see [`catalog.community.json`](catalog.community.json).
|
||||||
|
|
||||||
**Effect:** `Read-only` — produces reports without modifying files · `Read+Write` — modifies files, creates artifacts, or updates specs
|
|
||||||
|
|
||||||
| Extension | Purpose | Category | Effect | URL |
|
|
||||||
|-----------|---------|----------|--------|-----|
|
|
||||||
| Archive Extension | Archive merged features into main project memory. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
|
|
||||||
| Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | `integration` | Read+Write | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
|
|
||||||
| Checkpoint Extension | Commit the changes made during the middle of the implementation, so you don't end up with just one very large commit at the end | `code` | Read+Write | [spec-kit-checkpoint](https://github.com/aaronrsun/spec-kit-checkpoint) |
|
|
||||||
| Cleanup Extension | Post-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues | `code` | Read+Write | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
|
|
||||||
| Cognitive Squad | Multi-agent cognitive system with Triadic Model: understanding, internalization, application — with quality gates, backpropagation verification, and self-healing | `docs` | Read+Write | [cognitive-squad](https://github.com/Testimonial/cognitive-squad) |
|
|
||||||
| Conduct Extension | Orchestrates spec-kit phases via sub-agent delegation to reduce context pollution. | `process` | Read+Write | [spec-kit-conduct-ext](https://github.com/twbrandon7/spec-kit-conduct-ext) |
|
|
||||||
| DocGuard — CDD Enforcement | Canonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. Zero NPM runtime dependencies. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) |
|
|
||||||
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | `process` | Read+Write | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) |
|
|
||||||
| Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building | `docs` | Read+Write | [spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate) |
|
|
||||||
| Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | `integration` | Read+Write | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
|
|
||||||
| Learning Extension | Generate educational guides from implementations and enhance clarifications with mentoring context | `docs` | Read+Write | [spec-kit-learn](https://github.com/imviancagrace/spec-kit-learn) |
|
|
||||||
| Project Health Check | Diagnose a Spec Kit project and report health issues across structure, agents, features, scripts, extensions, and git | `visibility` | Read-only | [spec-kit-doctor](https://github.com/KhawarHabibKhan/spec-kit-doctor) |
|
|
||||||
| Project Status | Show current SDD workflow progress — active feature, artifact status, task completion, workflow phase, and extensions summary | `visibility` | Read-only | [spec-kit-status](https://github.com/KhawarHabibKhan/spec-kit-status) |
|
|
||||||
| Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) |
|
|
||||||
| Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
|
|
||||||
| Retrospective Extension | Post-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updates | `docs` | Read+Write | [spec-kit-retrospective](https://github.com/emi-dm/spec-kit-retrospective) |
|
|
||||||
| Review Extension | Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification | `code` | Read-only | [spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review) |
|
|
||||||
| SDD Utilities | Resume interrupted workflows, validate project health, and verify spec-to-task traceability | `process` | Read+Write | [speckit-utils](https://github.com/mvanhorn/speckit-utils) |
|
|
||||||
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | `docs` | Read+Write | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
|
|
||||||
| Understanding | Automated requirements quality analysis — 31 deterministic metrics against IEEE/ISO standards with experimental energy-based ambiguity detection | `docs` | Read-only | [understanding](https://github.com/Testimonial/understanding) |
|
|
||||||
| V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability | `docs` | Read+Write | [spec-kit-v-model](https://github.com/leocamello/spec-kit-v-model) |
|
|
||||||
| Verify Extension | Post-implementation quality gate that validates implemented code against specification artifacts | `code` | Read-only | [spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify) |
|
|
||||||
| Verify Tasks Extension | Detect phantom completions: tasks marked [X] in tasks.md with no real implementation | `code` | Read-only | [spec-kit-verify-tasks](https://github.com/datastone-inc/spec-kit-verify-tasks) |
|
|
||||||
|
|
||||||
|
|
||||||
## Adding Your Extension
|
## Adding Your Extension
|
||||||
|
|||||||
@@ -3,6 +3,39 @@
|
|||||||
"updated_at": "2026-03-19T12:08:20Z",
|
"updated_at": "2026-03-19T12:08:20Z",
|
||||||
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
||||||
"extensions": {
|
"extensions": {
|
||||||
|
"aide": {
|
||||||
|
"name": "AI-Driven Engineering (AIDE)",
|
||||||
|
"id": "aide",
|
||||||
|
"description": "A structured 7-step workflow for building new projects from scratch with AI assistants — from vision through implementation.",
|
||||||
|
"author": "mnriem",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"download_url": "https://github.com/mnriem/spec-kit-extensions/releases/download/aide-v1.0.0/aide.zip",
|
||||||
|
"repository": "https://github.com/mnriem/spec-kit-extensions",
|
||||||
|
"homepage": "https://github.com/mnriem/spec-kit-extensions",
|
||||||
|
"documentation": "https://github.com/mnriem/spec-kit-extensions/blob/main/aide/README.md",
|
||||||
|
"changelog": "https://github.com/mnriem/spec-kit-extensions/blob/main/aide/CHANGELOG.md",
|
||||||
|
"license": "MIT",
|
||||||
|
"requires": {
|
||||||
|
"speckit_version": ">=0.2.0"
|
||||||
|
},
|
||||||
|
"provides": {
|
||||||
|
"commands": 7,
|
||||||
|
"hooks": 0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"workflow",
|
||||||
|
"project-management",
|
||||||
|
"ai-driven",
|
||||||
|
"new-project",
|
||||||
|
"planning",
|
||||||
|
"experimental"
|
||||||
|
],
|
||||||
|
"verified": false,
|
||||||
|
"downloads": 0,
|
||||||
|
"stars": 0,
|
||||||
|
"created_at": "2026-03-18T00:00:00Z",
|
||||||
|
"updated_at": "2026-03-18T00:00:00Z"
|
||||||
|
},
|
||||||
"archive": {
|
"archive": {
|
||||||
"name": "Archive Extension",
|
"name": "Archive Extension",
|
||||||
"id": "archive",
|
"id": "archive",
|
||||||
@@ -281,6 +314,37 @@
|
|||||||
"created_at": "2026-03-13T00:00:00Z",
|
"created_at": "2026-03-13T00:00:00Z",
|
||||||
"updated_at": "2026-03-13T00:00:00Z"
|
"updated_at": "2026-03-13T00:00:00Z"
|
||||||
},
|
},
|
||||||
|
"extensify": {
|
||||||
|
"name": "Extensify",
|
||||||
|
"id": "extensify",
|
||||||
|
"description": "Create and validate extensions and extension catalogs.",
|
||||||
|
"author": "mnriem",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"download_url": "https://github.com/mnriem/spec-kit-extensions/releases/download/extensify-v1.0.0/extensify.zip",
|
||||||
|
"repository": "https://github.com/mnriem/spec-kit-extensions",
|
||||||
|
"homepage": "https://github.com/mnriem/spec-kit-extensions",
|
||||||
|
"documentation": "https://github.com/mnriem/spec-kit-extensions/blob/main/extensify/README.md",
|
||||||
|
"changelog": "https://github.com/mnriem/spec-kit-extensions/blob/main/extensify/CHANGELOG.md",
|
||||||
|
"license": "MIT",
|
||||||
|
"requires": {
|
||||||
|
"speckit_version": ">=0.2.0"
|
||||||
|
},
|
||||||
|
"provides": {
|
||||||
|
"commands": 4,
|
||||||
|
"hooks": 0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"extensions",
|
||||||
|
"workflow",
|
||||||
|
"validation",
|
||||||
|
"experimental"
|
||||||
|
],
|
||||||
|
"verified": false,
|
||||||
|
"downloads": 0,
|
||||||
|
"stars": 0,
|
||||||
|
"created_at": "2026-03-18T00:00:00Z",
|
||||||
|
"updated_at": "2026-03-18T00:00:00Z"
|
||||||
|
},
|
||||||
"fleet": {
|
"fleet": {
|
||||||
"name": "Fleet Orchestrator",
|
"name": "Fleet Orchestrator",
|
||||||
"id": "fleet",
|
"id": "fleet",
|
||||||
@@ -373,6 +437,37 @@
|
|||||||
"created_at": "2026-03-05T00:00:00Z",
|
"created_at": "2026-03-05T00:00:00Z",
|
||||||
"updated_at": "2026-03-05T00:00:00Z"
|
"updated_at": "2026-03-05T00:00:00Z"
|
||||||
},
|
},
|
||||||
|
"presetify": {
|
||||||
|
"name": "Presetify",
|
||||||
|
"id": "presetify",
|
||||||
|
"description": "Create and validate presets and preset catalogs.",
|
||||||
|
"author": "mnriem",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"download_url": "https://github.com/mnriem/spec-kit-extensions/releases/download/presetify-v1.0.0/presetify.zip",
|
||||||
|
"repository": "https://github.com/mnriem/spec-kit-extensions",
|
||||||
|
"homepage": "https://github.com/mnriem/spec-kit-extensions",
|
||||||
|
"documentation": "https://github.com/mnriem/spec-kit-extensions/blob/main/presetify/README.md",
|
||||||
|
"changelog": "https://github.com/mnriem/spec-kit-extensions/blob/main/presetify/CHANGELOG.md",
|
||||||
|
"license": "MIT",
|
||||||
|
"requires": {
|
||||||
|
"speckit_version": ">=0.2.0"
|
||||||
|
},
|
||||||
|
"provides": {
|
||||||
|
"commands": 4,
|
||||||
|
"hooks": 0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"presets",
|
||||||
|
"workflow",
|
||||||
|
"templates",
|
||||||
|
"experimental"
|
||||||
|
],
|
||||||
|
"verified": false,
|
||||||
|
"downloads": 0,
|
||||||
|
"stars": 0,
|
||||||
|
"created_at": "2026-03-18T00:00:00Z",
|
||||||
|
"updated_at": "2026-03-18T00:00:00Z"
|
||||||
|
},
|
||||||
"ralph": {
|
"ralph": {
|
||||||
"name": "Ralph Loop",
|
"name": "Ralph Loop",
|
||||||
"id": "ralph",
|
"id": "ralph",
|
||||||
|
|||||||
@@ -1,6 +1,58 @@
|
|||||||
{
|
{
|
||||||
"schema_version": "1.0",
|
"schema_version": "1.0",
|
||||||
"updated_at": "2026-03-09T00:00:00Z",
|
"updated_at": "2026-03-24T00:00:00Z",
|
||||||
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/presets/catalog.community.json",
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/presets/catalog.community.json",
|
||||||
"presets": {}
|
"presets": {
|
||||||
|
"aide-in-place": {
|
||||||
|
"name": "AIDE In-Place Migration",
|
||||||
|
"id": "aide-in-place",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Adapts the AIDE workflow for in-place technology migrations (X → Y pattern). Overrides vision, roadmap, progress, and work item commands with migration-specific guidance.",
|
||||||
|
"author": "mnriem",
|
||||||
|
"repository": "https://github.com/mnriem/spec-kit-presets",
|
||||||
|
"download_url": "https://github.com/mnriem/spec-kit-presets/releases/download/aide-in-place-v1.0.0/aide-in-place.zip",
|
||||||
|
"homepage": "https://github.com/mnriem/spec-kit-presets",
|
||||||
|
"documentation": "https://github.com/mnriem/spec-kit-presets/blob/main/aide-in-place/README.md",
|
||||||
|
"license": "MIT",
|
||||||
|
"requires": {
|
||||||
|
"speckit_version": ">=0.2.0",
|
||||||
|
"extensions": ["aide"]
|
||||||
|
},
|
||||||
|
"provides": {
|
||||||
|
"templates": 2,
|
||||||
|
"commands": 8
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"migration",
|
||||||
|
"in-place",
|
||||||
|
"brownfield",
|
||||||
|
"aide"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pirate": {
|
||||||
|
"name": "Pirate Speak (Full)",
|
||||||
|
"id": "pirate",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Arrr! Transforms all Spec Kit output into pirate speak. Specs, plans, and tasks be written fer scallywags.",
|
||||||
|
"author": "mnriem",
|
||||||
|
"repository": "https://github.com/mnriem/spec-kit-presets",
|
||||||
|
"download_url": "https://github.com/mnriem/spec-kit-presets/releases/download/pirate-v1.0.0/pirate.zip",
|
||||||
|
"homepage": "https://github.com/mnriem/spec-kit-presets",
|
||||||
|
"documentation": "https://github.com/mnriem/spec-kit-presets/blob/main/pirate/README.md",
|
||||||
|
"license": "MIT",
|
||||||
|
"requires": {
|
||||||
|
"speckit_version": ">=0.1.0"
|
||||||
|
},
|
||||||
|
"provides": {
|
||||||
|
"templates": 6,
|
||||||
|
"commands": 9
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"pirate",
|
||||||
|
"theme",
|
||||||
|
"fun",
|
||||||
|
"experimental"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "specify-cli"
|
name = "specify-cli"
|
||||||
version = "0.4.0"
|
version = "0.4.1"
|
||||||
description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)."
|
description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)."
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ Load only the minimal necessary context from each artifact:
|
|||||||
|
|
||||||
- Overview/Context
|
- Overview/Context
|
||||||
- Functional Requirements
|
- Functional Requirements
|
||||||
- Non-Functional Requirements
|
- Success Criteria (measurable outcomes — e.g., performance, security, availability, user success, business impact)
|
||||||
- User Stories
|
- User Stories
|
||||||
- Edge Cases (if present)
|
- Edge Cases (if present)
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ Load only the minimal necessary context from each artifact:
|
|||||||
|
|
||||||
Create internal representations (do not include raw artifacts in output):
|
Create internal representations (do not include raw artifacts in output):
|
||||||
|
|
||||||
- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" → `user-can-upload-file`)
|
- **Requirements inventory**: For each Functional Requirement (FR-###) and Success Criterion (SC-###), record a stable key. Use the explicit FR-/SC- identifier as the primary key when present, and optionally also derive an imperative-phrase slug for readability (e.g., "User can upload file" → `user-can-upload-file`). Include only Success Criteria items that require buildable work (e.g., load-testing infrastructure, security audit tooling), and exclude post-launch outcome metrics and business KPIs (e.g., "Reduce support tickets by 50%").
|
||||||
- **User story/action inventory**: Discrete user actions with acceptance criteria
|
- **User story/action inventory**: Discrete user actions with acceptance criteria
|
||||||
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
|
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
|
||||||
- **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements
|
- **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements
|
||||||
@@ -105,7 +105,7 @@ Focus on high-signal findings. Limit to 50 findings total; aggregate remainder i
|
|||||||
|
|
||||||
- Requirements with zero associated tasks
|
- Requirements with zero associated tasks
|
||||||
- Tasks with no mapped requirement/story
|
- Tasks with no mapped requirement/story
|
||||||
- Non-functional requirements not reflected in tasks (e.g., performance, security)
|
- Success Criteria requiring buildable work (performance, security, availability) not reflected in tasks
|
||||||
|
|
||||||
#### F. Inconsistency
|
#### F. Inconsistency
|
||||||
|
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ Execution steps:
|
|||||||
- Functional ambiguity → Update or add a bullet in Functional Requirements.
|
- Functional ambiguity → Update or add a bullet in Functional Requirements.
|
||||||
- User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
|
- User interaction / actor distinction → Update User Stories or Actors subsection (if present) with clarified role, constraint, or scenario.
|
||||||
- Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
|
- Data shape / entities → Update Data Model (add fields, types, relationships) preserving ordering; note added constraints succinctly.
|
||||||
- Non-functional constraint → Add/modify measurable criteria in Non-Functional / Quality Attributes section (convert vague adjective to metric or explicit target).
|
- Non-functional constraint → Add/modify measurable criteria in Success Criteria > Measurable Outcomes (convert vague adjective to metric or explicit target).
|
||||||
- Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
|
- Edge case / negative flow → Add a new bullet under Edge Cases / Error Handling (or create such subsection if template provides placeholder for it).
|
||||||
- Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.
|
- Terminology conflict → Normalize term across spec; retain original only if necessary by adding `(formerly referred to as "X")` once.
|
||||||
- If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.
|
- If the clarification invalidates an earlier ambiguous statement, replace that statement instead of duplicating; leave no obsolete contradictory text.
|
||||||
|
|||||||
@@ -1172,6 +1172,8 @@ class TestPresetCatalog:
|
|||||||
|
|
||||||
def test_search_with_cached_data(self, project_dir):
|
def test_search_with_cached_data(self, project_dir):
|
||||||
"""Test search with cached catalog data."""
|
"""Test search with cached catalog data."""
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
catalog = PresetCatalog(project_dir)
|
catalog = PresetCatalog(project_dir)
|
||||||
catalog.cache_dir.mkdir(parents=True, exist_ok=True)
|
catalog.cache_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
@@ -1200,23 +1202,26 @@ class TestPresetCatalog:
|
|||||||
"cached_at": datetime.now(timezone.utc).isoformat(),
|
"cached_at": datetime.now(timezone.utc).isoformat(),
|
||||||
}))
|
}))
|
||||||
|
|
||||||
# Search by query
|
# Isolate from community catalog so results are deterministic
|
||||||
results = catalog.search(query="agile")
|
default_only = [PresetCatalogEntry(url=catalog.DEFAULT_CATALOG_URL, name="default", priority=1, install_allowed=True)]
|
||||||
assert len(results) == 1
|
with patch.object(catalog, "get_active_catalogs", return_value=default_only):
|
||||||
assert results[0]["id"] == "safe-agile"
|
# Search by query
|
||||||
|
results = catalog.search(query="agile")
|
||||||
|
assert len(results) == 1
|
||||||
|
assert results[0]["id"] == "safe-agile"
|
||||||
|
|
||||||
# Search by tag
|
# Search by tag
|
||||||
results = catalog.search(tag="hipaa")
|
results = catalog.search(tag="hipaa")
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
assert results[0]["id"] == "healthcare"
|
assert results[0]["id"] == "healthcare"
|
||||||
|
|
||||||
# Search by author
|
# Search by author
|
||||||
results = catalog.search(author="agile-community")
|
results = catalog.search(author="agile-community")
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
|
|
||||||
# Search all
|
# Search all
|
||||||
results = catalog.search()
|
results = catalog.search()
|
||||||
assert len(results) == 2
|
assert len(results) == 2
|
||||||
|
|
||||||
def test_get_pack_info(self, project_dir):
|
def test_get_pack_info(self, project_dir):
|
||||||
"""Test getting info for a specific pack."""
|
"""Test getting info for a specific pack."""
|
||||||
|
|||||||
Reference in New Issue
Block a user