What changed in spec-kit from 0 to 1
5 releases numbered after v0.16.5 up to and including v1.0.4, stable releases only. v0.16.5 and v1.0.4 are the newest stable releases of 0 and 1 we track; this page follows them as new ones ship.
- 1 mentions breaking changes
76 changes across 5 releases
- Let a preset declare a required extension
- Add DeepSeek Harness (DSH) integration
- Add --require-spec flag to check-prerequisites
- Add Docker Agent integration
- Add Jira Mirror extension to community catalog
- Add AgentDocx SpecKit V2 extension to community catalog
- Add Pre-Spec Cards extension to community catalog
- Add Verified Codebase Context preset to community catalog
- Add Taco Review extension to community catalog
- Add Azure Cosmos DB extension to community catalog
- add Inventory Alignment preset to community catalog
- add Spec Inventory extension to community catalog
- add AgentDocx extension to community catalog
- add Closed Vocabulary Check preset to community catalog
- Update Charter extension to v0.6.1
- Update Spec Kit Figma extension to v3.1.1
- Update SpecKit Grill Me extension to v1.0.1
- Update BDD extension to v1.0.3
- Update Parallel Autonomous Run Governance preset to v0.2.6
- Update SpecAssay bundle to v0.4.12
- Update SpecAssay preset to v0.4.12
- Update Archive Extension to v1.3.0
- Update Reconcile extension to v1.2.1
- Update SpecAssay Check extension to v0.4.12
- raise feature assessment credit budget
- update Security Review extension to v2.0.0
- update Intake Sequencing Governance preset to v0.2.3
- update MAQA — Multi-Agent & Quality Assurance extension to v0.1.6
- update Architecture Guard extension to v2.3.6
- update SpecKit Companion extension to v0.20.2
- update Autonomous Run Governance preset to v0.4.1
- update Atlas extension display name in community catalog
- Stop wrap composition looping on a token in core content
- Keep non-ASCII text readable in written overlay files
- Report overlay operation keys in declaration order
- Skip corrupted state.json in list_runs() instead of aborting
- Guard non-string prompt names when merging prompts.yml
- Narrow bare except Exception in preset command reconciliation
- Refuse a filter mixed with a comparison operator instead of silently mis-binding it
- Escape Rich markup in workflow error output
- Add JSON error handling to auth config loader
- Use missing_ok=True in extension ZIP cleanup
- Reject unsupported catalog payload versions
- Install bundled extension updates from the local package
- Reject malformed step config on add
- Stop create-new-feature crashing on a non-Latin description
- Treat an explicit-null records field as missing, not "None"
- Reject malformed step config on remove
- Reject malformed workflow config on remove
- Skip unreadable extension manifests
- Fail closed on unreadable provenance
- Reject malformed explicit URL ports in github-http
- Scaffold extension config when installing via bundler
- Reject unknown setup-plan arguments
- Reject a condition that is spliced into text, not evaluated
- Pass explicit workflow_add options from bundle install
- Reject falsy non-mapping catalog roots
- Reject non-string catalog entry tag members in bundler
- Reject malformed URL ports before credential matching in auth
- Decode feature.json as UTF-8 in Windows PowerShell
- Stop falling back to a fake pwsh argv when no launcher exists in events
- Validate catalog URL port, not just hostname in presets
- Stop event run crashing on every piped stdin payload in events
- Require a 'cases' block on switch steps in workflows
- Strip the resolved value before matching switch cases in workflows
- Reject non-string manifest list members in bundler
- Reject non-mapping catalog mutations in presets
- Stop offering a condition correction that inverts it in workflows
- Use chunked read for integration and preset manifest hash
- reject duplicate provides.templates name+type entries
- decode a downloaded (non-zip) bundle manifest as UTF-8
- migrate QodercliIntegration to SkillsIntegration
- reject a condition that has no {{ }} block
- report a falsy non-mapping integration descriptor as a shape error
- validate dispatch defaults
- narrow bare except Exception in merge_json_files
Original release notes, newest first
The list above is our reading of these notes; the originals from github are here, one fold per release.
v1.0.4Spec Kit - 1.0.4
Install
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v1.0.4
specify init my-project
What's Changed
- chore: bump version to 1.0.4
- fix(scripts): stop wrap composition looping on a token in core content (#4396)
- [extension] Update Charter extension to v0.6.1 (#4409)
- fix(workflows): keep non-ASCII text readable in written overlay files (#4148)
- fix(workflows): report overlay operation keys in declaration order (#4146)
- fix: skip corrupted state.json in list_runs() instead of aborting (#3904)
- fix(rovodev): guard non-string prompt names when merging prompts.yml (#4145)
- fix: narrow bare except Exception in preset command reconciliation (#3842)
- fix(workflows): refuse a filter mixed with a comparison operator instead of silently mis-binding it (#3894)
- fix: escape Rich markup in workflow error output (#3837)
- fix: add JSON error handling to auth config loader (#3836)
- fix: use missing_ok=True in extension ZIP cleanup (#3870)
- feat(presets): let a preset declare a required extension (#4250)
- fix(bundler): reject unsupported catalog payload versions (#4090)
- fix(extensions): install bundled extension updates from the local package (#4351)
- docs: clarify autonomous PR handling (#4392)
- fix(workflows): reject malformed step config on add (#4087)
- fix(powershell): stop create-new-feature crashing on a non-Latin description (#4138)
- fix(bundler): treat an explicit-null records field as missing, not "None" (#4136)
- Add DeepSeek Harness (DSH) integration (#4336)
- chore: release 1.0.3, begin 1.0.4.dev0 development (#4391)
v1.0.3Spec Kit - 1.0.3
Install
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v1.0.3
specify init my-project
What's Changed
- chore: bump version to 1.0.3
- fix(workflows): reject malformed step config on remove (#4095)
- fix(workflows): reject malformed workflow config on remove (#4096)
- fix(events): skip unreadable extension manifests (#4089)
- docs(extensions): fix private catalog FAQ command (#4373)
- [extension] Add Vurnix Honest Gate extension to community catalog (#4388)
- fix(presets): fail closed on unreadable provenance (#4092)
- docs: explain how Spec Kit dogfoods itself (#4381)
- add --require-spec to check-prerequisites (#4367)
- fix(ci): harden PyPI release tag handling (#4386)
- fix(github-http): reject malformed explicit URL ports (#4372)
- fix: scaffold extension config when installing via bundler (#4285)
- fix: reject unknown setup-plan arguments (#4371)
- feat(docker-agent): add Docker Agent integration (#4302)
- fix(workflows): reject a condition that is spliced into text, not evaluated (#4292)
- fix(bundler): pass explicit workflow_add options from bundle install (#4284)
- test(bundle): join across wrap points in the build output-path assertion (#4280)
- chore(deps): bump the codeql-action group with 2 updates (#4357)
- [extension] Update Spec Kit Figma extension to v3.1.1 (#4377)
- fix(presets): reject falsy non-mapping catalog roots (#4088)
- chore: release 1.0.2, begin 1.0.3.dev0 development (#4379)
v1.0.2Spec Kit - 1.0.2
Install
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v1.0.2
specify init my-project
What's Changed
- chore: bump version to 1.0.2
- [extension] Add Jira Mirror extension to community catalog (#4376)
- [extension] Add AgentDocx SpecKit V2 extension to community catalog (#4369)
- fix(bundler): reject non-string catalog entry tag members (#4318)
- fix(auth): reject malformed URL ports before credential matching (#4362)
- fix: decode feature.json as UTF-8 in Windows PowerShell (#4359)
- fix(events): stop falling back to a fake "pwsh" argv when no launcher exists (#4340)
- Add Pre-Spec Cards extension to community catalog (#4365)
- docs(workflows): document Python init script support (#4331)
- fix(presets): validate catalog URL port, not just hostname (#4341)
- Add Verified Codebase Context preset to community catalog (#4344)
- fix(events): stop
event runcrashing on every piped stdin payload (#4326) - Add Taco Review extension to community catalog (#4322)
- Update SpecKit Grill Me extension to v1.0.1 (#4317)
- [extension] Update BDD extension to v1.0.3 (#4299)
- Update Parallel Autonomous Run Governance preset to v0.2.6 (#4304)
- Update SpecAssay bundle to v0.4.12 (#4257)
- Update SpecAssay preset to v0.4.12 (#4256)
- Update Archive Extension to v1.3.0 (#4298)
- Update Reconcile extension to v1.2.1 (#4297)
- chore: release 1.0.1, begin 1.0.2.dev0 development (#4266)
v1.0.1Spec Kit - 1.0.1
Install
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v1.0.1
specify init my-project
What's Changed
- chore: bump version to 1.0.1
- docs: flatten project history navigation (#4265)
- docs: use Spec Kit branding on documentation site (#4264)
- docs: add existing project adoption guide (#4263)
- docs: add project history page (#4262)
- docs: mark Spec Kit's first anniversary (#4260)
- docs: add workflow quickstarts (#4258)
- chore(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.1 (#4244)
- Update SpecAssay Check extension to v0.4.12 (#4254)
- fix(workflows): require a 'cases' block on switch steps (#4144)
- fix(workflows): strip the resolved value before matching switch cases (#4143)
- fix(bundler): reject non-string manifest list members (#4091)
- fix(presets): reject non-mapping catalog mutations (#4094)
- fix(workflows): stop offering a condition correction that inverts it (#4230)
- fix: use chunked read for integration and preset manifest hash (#3843)
- docs: update landing page stats for 1.0.0 (#4251)
- Add Azure Cosmos DB extension to community catalog (#4247)
- chore(deps): bump actions/checkout from 6.0.3 to 7.0.1 (#4243)
- chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 (#4242)
- chore(deps): bump the codeql-action group with 2 updates (#4241)
- chore: release 1.0.0, begin 1.0.1.dev0 development (#4246)
v1.0.0Spec Kit - 1.0.0
Install
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v1.0.0
specify init my-project
The promise a 1.0.0 used to make — and why it stopped mattering
For decades a version number was load-bearing. The
1in the major slot was insurance, and what it insured against was the cost of change. A breaking change meant a human opening every call site by hand, working through a migration guide line by line, praying the tests caught what the eyes missed. That was expensive, so semver turned the cost into a signal: a bumped major meant budget a bad afternoon — or worse, a frozen major meant build on this without fear. The promise mattered because adapting was the hard part.That is the assumption that quietly stopped being true. Adjusting to a breaking change is not a bad afternoon anymore — it is a sentence. You point an agent at the diff — the catalog format changed these three fields, update every extension in this repo — and it fixes the call sites in less time than it took me to write this paragraph. Refactoring, the thing we scheduled around and dreaded, got cheap. The migration guide is no longer something you consume; it is something your agent consumes for you.
So the insurance a 1.0.0 sells is insurance against a cost that mostly collapsed. That does not make the number dishonest — it just makes it a number. The old 1.0.0 was a handshake: rely on the shape, I will warn you before I change it. Ours is more of a wave: here is a good place to start; if I move something, your agent will follow it faster than a changelog could describe it. The value moved from stability to adaptability, and adaptability is something you already have.
— From “Spec Kit Turns One — and Ships 1.0.0”
What's Changed
- chore: bump version to 1.0.0
- [extension] Update Security Review extension to v2.0.0 (#4223)
- fix(presets): reject duplicate provides.templates name+type entries (#4191)
- fix(bundler): decode a downloaded (non-zip) bundle manifest as UTF-8 (#4190)
- Update Intake Sequencing Governance preset to v0.2.3 (#4235)
- Update MAQA — Multi-Agent & Quality Assurance extension to v0.1.6 (#4234)
- [bug-fix] Fix qodercli-skills-migration: migrate QodercliIntegration to SkillsIntegration (#4205)
- [preset] Add Inventory Alignment preset to community catalog (#4229)
- [extension] Add Spec Inventory extension to community catalog (#4228)
- [extension] Update Architecture Guard extension to v2.3.6 (#4224)
- Update SpecKit Companion extension to v0.20.2 (#4225)
- fix(workflows): reject a condition that has no {{ }} block (#4182)
- fix: raise feature assessment credit budget (#4222)
- [extension] Add AgentDocx extension to community catalog (#4184)
- fix(integrations): report a falsy non-mapping integration descriptor as a shape error (#4187)
- Update Autonomous Run Governance preset to v0.4.1 (#4203)
- fix(workflows): validate dispatch defaults (#4181)
- Update Atlas extension display name in community catalog (#4202)
- Add Closed Vocabulary Check preset to community catalog (#4201)
- fix(utils): narrow bare except Exception in merge_json_files (#4189)
- chore: release 0.16.5, begin 0.16.6.dev0 development (#4206)