# Spec Kit Extensions Extension system for [Spec Kit](https://github.com/github/spec-kit) - add new functionality without bloating the core framework. ## Extension Catalogs Spec Kit provides two catalog files with different purposes: ### Your Catalog (`catalog.json`) - **Purpose**: Default upstream catalog of extensions used by the Spec Kit CLI - **Default State**: Empty by design in the upstream project - you or your organization populate a fork/copy with extensions you trust - **Location (upstream)**: `extensions/catalog.json` in the GitHub-hosted spec-kit repo - **CLI Default**: The `specify extension` commands use the upstream catalog URL by default, unless overridden - **Org Catalog**: Point `SPECKIT_CATALOG_URL` at your organization's fork or hosted catalog JSON to use it instead of the upstream default - **Customization**: Copy entries from the community catalog into your org catalog, or add your own extensions directly **Example override:** ```bash # Override the default upstream catalog with your organization's catalog export SPECKIT_CATALOG_URL="https://your-org.com/spec-kit/catalog.json" specify extension search # Now uses your organization's catalog instead of the upstream default ``` ### Community Reference Catalog (`catalog.community.json`) - **Purpose**: Browse available community-contributed extensions - **Status**: Active - contains extensions submitted by the community - **Location**: `extensions/catalog.community.json` - **Usage**: Reference catalog for discovering available extensions - **Submission**: Open to community contributions via Pull Request **How It Works:** ## Making Extensions Available You control which extensions your team can discover and install: ### Option 1: Curated Catalog (Recommended for Organizations) Populate your `catalog.json` with approved extensions: 1. **Discover** extensions from various sources: - Browse `catalog.community.json` for community extensions - Find private/internal extensions in your organization's repos - Discover extensions from trusted third parties 2. **Review** extensions and choose which ones you want to make available 3. **Add** those extension entries to your own `catalog.json` 4. **Team members** can now discover and install them: - `specify extension search` shows your curated catalog - `specify extension add ` installs from your catalog **Benefits**: Full control over available extensions, team consistency, organizational approval workflow **Example**: Copy an entry from `catalog.community.json` to your `catalog.json`, then your team can discover and install it by name. ### Option 2: Direct URLs (For Ad-hoc Use) Skip catalog curation - team members install directly using URLs: ```bash specify extension add --from https://github.com/org/spec-kit-ext/archive/refs/tags/v1.0.0.zip ``` **Benefits**: Quick for one-off testing or private extensions **Tradeoff**: Extensions installed this way won't appear in `specify extension search` for other team members unless you also add them to your `catalog.json`. ## Available Community Extensions The following community-contributed extensions are available in [`catalog.community.json`](catalog.community.json): | Extension | Purpose | URL | |-----------|---------|-----| | Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) | | 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 | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) | | Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) | | Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) | | Project Health Check | Diagnose a Spec Kit project and report health issues across structure, agents, features, scripts, extensions, and git | [spec-kit-doctor](https://github.com/KhawarHabibKhan/spec-kit-doctor) | | Ralph Loop | Autonomous implementation loop using AI agent CLI | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) | | Retrospective Extension | Post-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updates | [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 | [spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review) | | Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | [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 | [understanding](https://github.com/Testimonial/understanding) | | V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability | [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 | [spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify) | ## Adding Your Extension ### Submission Process To add your extension to the community catalog: 1. **Prepare your extension** following the [Extension Development Guide](EXTENSION-DEVELOPMENT-GUIDE.md) 2. **Create a GitHub release** for your extension 3. **Submit a Pull Request** that: - Adds your extension to `extensions/catalog.community.json` - Updates this README with your extension in the Available Extensions table 4. **Wait for review** - maintainers will review and merge if criteria are met See the [Extension Publishing Guide](EXTENSION-PUBLISHING-GUIDE.md) for detailed step-by-step instructions. ### Submission Checklist Before submitting, ensure: - ✅ Valid `extension.yml` manifest - ✅ Complete README with installation and usage instructions - ✅ LICENSE file included - ✅ GitHub release created with semantic version (e.g., v1.0.0) - ✅ Extension tested on a real project - ✅ All commands working as documented ## Installing Extensions Once extensions are available (either in your catalog or via direct URL), install them: ```bash # From your curated catalog (by name) specify extension search # See what's in your catalog specify extension add # Install by name # Direct from URL (bypasses catalog) specify extension add --from https://github.com///archive/refs/tags/.zip # List installed extensions specify extension list ``` For more information, see the [Extension User Guide](EXTENSION-USER-GUIDE.md).