# Changelog Recent changes to the Specify CLI and templates are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.1.14] - 2026-03-09 ### Added - feat: add Tabnine CLI agent support - **Multi-Catalog Support (#1707)**: Extension catalog system now supports multiple active catalogs simultaneously via a catalog stack - New `specify extension catalog list` command lists all active catalogs with name, URL, priority, and `install_allowed` status - New `specify extension catalog add` and `specify extension catalog remove` commands for project-scoped catalog management - Default built-in stack includes `catalog.json` (default, installable) and `catalog.community.json` (community, discovery only) — community extensions are now surfaced in search results out of the box - `specify extension search` aggregates results across all active catalogs, annotating each result with source catalog - `specify extension add` enforces `install_allowed` policy — extensions from discovery-only catalogs cannot be installed directly - Project-level `.specify/extension-catalogs.yml` and user-level `~/.specify/extension-catalogs.yml` config files supported, with project-level taking precedence - `SPECKIT_CATALOG_URL` environment variable still works for backward compatibility (replaces full stack with single catalog) - All catalog URLs require HTTPS (HTTP allowed for localhost development) - New `CatalogEntry` dataclass in `extensions.py` for catalog stack representation - Per-URL hash-based caching for non-default catalogs; legacy cache preserved for default catalog - Higher-priority catalogs win on merge conflicts (same extension id in multiple catalogs) - 13 new tests covering catalog stack resolution, merge conflicts, URL validation, and `install_allowed` enforcement - Updated RFC, Extension User Guide, and Extension API Reference documentation ## [0.1.13] - 2026-03-03 ### Changed - feat: add kiro-cli and AGENT_CONFIG consistency coverage (#1690) - feat: add verify extension to community catalog (#1726) - Add Retrospective Extension to community catalog README table (#1741) - fix(scripts): add empty description validation and branch checkout error handling (#1559) - fix: correct Copilot extension command registration (#1724) - fix(implement): remove Makefile from C ignore patterns (#1558) - Add sync extension to community catalog (#1728) - fix(checklist): clarify file handling behavior for append vs create (#1556) - fix(clarify): correct conflicting question limit from 10 to 5 (#1557) - chore: bump version to 0.1.12 (#1737) - fix: use RELEASE_PAT so tag push triggers release workflow (#1736) - fix: release-trigger uses release branch + PR instead of direct push to main (#1733) - fix: Split release process to sync pyproject.toml version with git tags (#1732) ## [0.1.13] - 2026-03-03 ### Fixed - **Copilot Extension Commands Not Visible**: Fixed extension commands not appearing in GitHub Copilot when installed via `specify extension add --dev` - Changed Copilot file extension from `.md` to `.agent.md` in `CommandRegistrar.AGENT_CONFIGS` so Copilot recognizes agent files - Added generation of companion `.prompt.md` files in `.github/prompts/` during extension command registration, matching the release packaging behavior - Added cleanup of `.prompt.md` companion files when removing extensions via `specify extension remove` - Fixed a syntax regression in `src/specify_cli/__init__.py` in `_build_ai_assistant_help()` that broke `ruff` and `pytest` collection in CI. ## [0.1.12] - 2026-03-02 ### Changed - fix: use RELEASE_PAT so tag push triggers release workflow (#1736) - fix: release-trigger uses release branch + PR instead of direct push to main (#1733) - fix: Split release process to sync pyproject.toml version with git tags (#1732) ## [0.1.10] - 2026-03-02 ### Fixed - **Version Sync Issue (#1721)**: Fixed version mismatch between `pyproject.toml` and git release tags - Split release process into two workflows: `release-trigger.yml` for version management and `release.yml` for artifact building - Version bump now happens BEFORE tag creation, ensuring tags point to commits with correct version - Supports both manual version specification and auto-increment (patch version) - Git tags now accurately reflect the version in `pyproject.toml` at that commit - Prevents confusion when installing from source ## [0.1.9] - 2026-02-28 ### Changed - Updated dependency: bumped astral-sh/setup-uv from 6 to 7 ## [0.1.8] - 2026-02-28 ### Changed - Updated dependency: bumped actions/setup-python from 5 to 6 ## [0.1.7] - 2026-02-27 ### Changed - Updated outdated GitHub Actions versions - Documented dual-catalog system for extensions ### Fixed - Fixed version command in documentation ### Added - Added Cleanup Extension to README - Added retrospective extension to community catalog ## [0.1.6] - 2026-02-23 ### Fixed - **Parameter Ordering Issues (#1641)**: Fixed CLI parameter parsing issue where option flags were incorrectly consumed as values for preceding options - Added validation to detect when `--ai` or `--ai-commands-dir` incorrectly consume following flags like `--here` or `--ai-skills` - Now provides clear error messages: "Invalid value for --ai: '--here'" - Includes helpful hints suggesting proper usage and listing available agents - Commands like `specify init --ai-skills --ai --here` now fail with actionable feedback instead of confusing "Must specify project name" errors - Added comprehensive test suite (5 new tests) to prevent regressions ## [0.1.5] - 2026-02-21 ### Fixed - **AI Skills Installation Bug (#1658)**: Fixed `--ai-skills` flag not generating skill files for GitHub Copilot and other agents with non-standard command directory structures - Added `commands_subdir` field to `AGENT_CONFIG` to explicitly specify the subdirectory name for each agent - Affected agents now work correctly: copilot (`.github/agents/`), opencode (`.opencode/command/`), windsurf (`.windsurf/workflows/`), codex (`.codex/prompts/`), kilocode (`.kilocode/workflows/`), q (`.amazonq/prompts/`), and agy (`.agent/workflows/`) - The `install_ai_skills()` function now uses the correct path for all agents instead of assuming `commands/` for everyone ## [0.1.4] - 2026-02-20 ### Fixed - **Qoder CLI detection**: Renamed `AGENT_CONFIG` key from `"qoder"` to `"qodercli"` to match the actual executable name, fixing `specify check` and `specify init --ai` detection failures ## [0.1.3] - 2026-02-20 ### Added - **Generic Agent Support**: Added `--ai generic` option for unsupported AI agents ("bring your own agent") - Requires `--ai-commands-dir ` to specify where the agent reads commands from - Generates Markdown commands with `$ARGUMENTS` format (compatible with most agents) - Example: `specify init my-project --ai generic --ai-commands-dir .myagent/commands/` - Enables users to start with Spec Kit immediately while their agent awaits formal support ## [0.0.102] - 2026-02-20 - fix: include 'src/**' path in release workflow triggers (#1646) ## [0.0.101] - 2026-02-19 - chore(deps): bump github/codeql-action from 3 to 4 (#1635) ## [0.0.100] - 2026-02-19 - Add pytest and Python linting (ruff) to CI (#1637) - feat: add pull request template for better contribution guidelines (#1634) ## [0.0.99] - 2026-02-19 - Feat/ai skills (#1632) ## [0.0.98] - 2026-02-19 - chore(deps): bump actions/stale from 9 to 10 (#1623) - feat: add dependabot configuration for pip and GitHub Actions updates (#1622) ## [0.0.97] - 2026-02-18 - Remove Maintainers section from README.md (#1618) ## [0.0.96] - 2026-02-17 - fix: typo in plan-template.md (#1446) ## [0.0.95] - 2026-02-12 - Feat: add a new agent: Google Anti Gravity (#1220) ## [0.0.94] - 2026-02-11 - Add stale workflow for 180-day inactive issues and PRs (#1594)