mirror of
https://github.com/github/spec-kit.git
synced 2026-03-17 02:43:08 +00:00
# Conflicts: # CHANGELOG.md # src/specify_cli/__init__.py # src/specify_cli/extensions.py
14 KiB
14 KiB
Changelog
Recent changes to the Specify CLI and templates are documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- feat(presets): Pluggable preset system with preset catalog and template resolver
- Preset manifest (
preset.yml) with validation for artifact, command, and script types PresetManifest,PresetRegistry,PresetManager,PresetCatalog,PresetResolverclasses insrc/specify_cli/presets.py- CLI commands:
specify preset search,specify preset add,specify preset list,specify preset remove,specify preset resolve,specify preset info - CLI commands:
specify preset catalog list,specify preset catalog add,specify preset catalog removefor multi-catalog management PresetCatalogEntrydataclass and multi-catalog support mirroring the extension catalog system--presetoption forspecify initto install presets during initialization- Priority-based preset resolution: presets with lower priority number win (
--priorityflag) resolve_template()/Resolve-Templatehelpers in bash and PowerShell common scripts- Template resolution priority stack: overrides → presets → extensions → core
- Preset catalog files (
presets/catalog.json,presets/catalog.community.json) - Preset scaffold directory (
presets/scaffold/) - Scripts updated to use template resolution instead of hardcoded paths
- feat(presets): Preset command overrides now propagate to agent skills when
--ai-skillswas used during init - feat:
specify initpersists CLI options to.specify/init-options.jsonfor downstream operations - feat(extensions): support
.extensionignoreto exclude files/folders duringspecify extension add(#1781)
[0.2.1] - 2026-03-11
Changed
- Added February 2026 newsletter (#1812)
- feat: add Kimi Code CLI agent support (#1790)
- docs: fix broken links in quickstart guide (#1759) (#1797)
- docs: add catalog cli help documentation (#1793) (#1794)
- fix: use quiet checkout to avoid exception on git checkout (#1792)
- feat(extensions): support .extensionignore to exclude files during install (#1781)
- feat: add Codex support for extension command registration (#1767)
- chore: bump version to 0.2.0 (#1786)
- fix: sync agent list comments with actual supported agents (#1785)
- feat(extensions): support multiple active catalogs simultaneously (#1720)
- Pavel/add tabnine cli support (#1503)
- Add Understanding extension to community catalog (#1778)
- Add ralph extension to community catalog (#1780)
- Update README with project initialization instructions (#1772)
- feat: add review extension to community catalog (#1775)
- Add fleet extension to community catalog (#1771)
- Integration of Mistral vibe support into speckit (#1725)
- fix: Remove duplicate options in specify.md (#1765)
- fix: use global branch numbering instead of per-short-name detection (#1757)
- Add Community Walkthroughs section to README (#1766)
- feat(extensions): add Jira Integration to community catalog (#1764)
- Add Azure DevOps Integration extension to community catalog (#1734)
- Fix docs: update Antigravity link and add initialization example (#1748)
- fix: wire after_tasks and after_implement hook events into command templates (#1702)
- make c ignores consistent with c++ (#1747)
- chore: bump version to 0.1.13 (#1746)
- 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.2.0] - 2026-03-09
Changed
- feat: add Kimi Code CLI agent support
- fix: sync agent list comments with actual supported agents (#1785)
- feat(extensions): support multiple active catalogs simultaneously (#1720)
- Pavel/add tabnine cli support (#1503)
- Add Understanding extension to community catalog (#1778)
- Add ralph extension to community catalog (#1780)
- Update README with project initialization instructions (#1772)
- feat: add review extension to community catalog (#1775)
- Add fleet extension to community catalog (#1771)
- Integration of Mistral vibe support into speckit (#1725)
- fix: Remove duplicate options in specify.md (#1765)
- fix: use global branch numbering instead of per-short-name detection (#1757)
- Add Community Walkthroughs section to README (#1766)
- feat(extensions): add Jira Integration to community catalog (#1764)
- Add Azure DevOps Integration extension to community catalog (#1734)
- Fix docs: update Antigravity link and add initialization example (#1748)
- fix: wire after_tasks and after_implement hook events into command templates (#1702)
- make c ignores consistent with c++ (#1747)
- chore: bump version to 0.1.13 (#1746)
- 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.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 listcommand lists all active catalogs with name, URL, priority, andinstall_allowedstatus - New
specify extension catalog addandspecify extension catalog removecommands for project-scoped catalog management - Default built-in stack includes
catalog.json(default, installable) andcatalog.community.json(community, discovery only) — community extensions are now surfaced in search results out of the box specify extension searchaggregates results across all active catalogs, annotating each result with source catalogspecify extension addenforcesinstall_allowedpolicy — extensions from discovery-only catalogs cannot be installed directly- Project-level
.specify/extension-catalogs.ymland user-level~/.specify/extension-catalogs.ymlconfig files supported, with project-level taking precedence SPECKIT_CATALOG_URLenvironment variable still works for backward compatibility (replaces full stack with single catalog)- All catalog URLs require HTTPS (HTTP allowed for localhost development)
- New
CatalogEntrydataclass inextensions.pyfor 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_allowedenforcement - Updated RFC, Extension User Guide, and Extension API Reference documentation
- New
[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
.mdto.agent.mdinCommandRegistrar.AGENT_CONFIGSso Copilot recognizes agent files - Added generation of companion
.prompt.mdfiles in.github/prompts/during extension command registration, matching the release packaging behavior - Added cleanup of
.prompt.mdcompanion files when removing extensions viaspecify extension remove
- Changed Copilot file extension from
- Fixed a syntax regression in
src/specify_cli/__init__.pyin_build_ai_assistant_help()that brokeruffandpytestcollection 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.tomland git release tags- Split release process into two workflows:
release-trigger.ymlfor version management andrelease.ymlfor 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.tomlat that commit - Prevents confusion when installing from source
- Split release process into two workflows:
[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
--aior--ai-commands-dirincorrectly consume following flags like--hereor--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 --herenow fail with actionable feedback instead of confusing "Must specify project name" errors - Added comprehensive test suite (5 new tests) to prevent regressions
- Added validation to detect when
[0.1.5] - 2026-02-21
Fixed
- AI Skills Installation Bug (#1658): Fixed
--ai-skillsflag not generating skill files for GitHub Copilot and other agents with non-standard command directory structures- Added
commands_subdirfield toAGENT_CONFIGto 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 assumingcommands/for everyone
- Added
[0.1.4] - 2026-02-20
Fixed
- Qoder CLI detection: Renamed
AGENT_CONFIGkey from"qoder"to"qodercli"to match the actual executable name, fixingspecify checkandspecify init --aidetection failures
[0.1.3] - 2026-02-20
Added
- Generic Agent Support: Added
--ai genericoption for unsupported AI agents ("bring your own agent")- Requires
--ai-commands-dir <path>to specify where the agent reads commands from - Generates Markdown commands with
$ARGUMENTSformat (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
- Requires
[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)