specify-cli 0.12.15__tar.gz → 0.12.17__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
  2. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -0
  3. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/feature_request.yml +1 -0
  4. {specify_cli-0.12.15 → specify_cli-0.12.17}/.gitignore +2 -1
  5. {specify_cli-0.12.15 → specify_cli-0.12.17}/CHANGELOG.md +30 -0
  6. {specify_cli-0.12.15 → specify_cli-0.12.17}/PKG-INFO +7 -1
  7. {specify_cli-0.12.15 → specify_cli-0.12.17}/README.md +6 -0
  8. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/community/extensions.md +4 -1
  9. specify_cli-0.12.17/docs/install/pypi.md +83 -0
  10. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/installation.md +27 -4
  11. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/integrations.md +8 -2
  12. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/workflows.md +10 -0
  13. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/toc.yml +2 -0
  14. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/agent-context-defaults.json +1 -0
  15. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/catalog.community.json +149 -11
  16. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +10 -0
  17. specify_cli-0.12.17/extensions/git/scripts/python/auto_commit.py +187 -0
  18. specify_cli-0.12.17/extensions/git/scripts/python/create_new_feature_branch.py +634 -0
  19. specify_cli-0.12.17/extensions/git/scripts/python/git_common.py +81 -0
  20. specify_cli-0.12.17/extensions/git/scripts/python/initialize_repo.py +89 -0
  21. {specify_cli-0.12.15 → specify_cli-0.12.17}/integrations/catalog.json +10 -1
  22. {specify_cli-0.12.15 → specify_cli-0.12.17}/pyproject.toml +1 -1
  23. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_invocation_style.py +1 -1
  24. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/commands/init.py +34 -15
  25. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/extensions/__init__.py +26 -0
  26. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/__init__.py +2 -0
  27. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/_helpers.py +15 -2
  28. specify_cli-0.12.17/src/specify_cli/integrations/grok/__init__.py +60 -0
  29. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/presets/__init__.py +212 -1
  30. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/presets/_commands.py +9 -0
  31. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/base.py +3 -0
  32. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/engine.py +17 -4
  33. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/expressions.py +46 -5
  34. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/do_while/__init__.py +24 -0
  35. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/if_then/__init__.py +23 -0
  36. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/shell/__init__.py +9 -0
  37. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/switch/__init__.py +33 -0
  38. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/while_loop/__init__.py +26 -0
  39. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/git/test_git_extension.py +28 -0
  40. specify_cli-0.12.17/tests/extensions/git/test_git_extension_python_parity.py +647 -0
  41. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_cli.py +72 -0
  42. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_base_markdown.py +1 -0
  43. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_base_skills.py +1 -0
  44. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_base_toml.py +1 -0
  45. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_base_yaml.py +1 -0
  46. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_cline.py +1 -0
  47. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_copilot.py +3 -0
  48. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_generic.py +2 -0
  49. specify_cli-0.12.17/tests/integrations/test_integration_grok.py +187 -0
  50. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_subcommand.py +37 -0
  51. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_zed.py +2 -0
  52. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_agent_config_consistency.py +1 -0
  53. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_extension_skills.py +107 -0
  54. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_presets.py +685 -0
  55. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_workflows.py +544 -1
  56. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/README.md +7 -0
  57. {specify_cli-0.12.15 → specify_cli-0.12.17}/.devcontainer/devcontainer.json +0 -0
  58. {specify_cli-0.12.15 → specify_cli-0.12.17}/.devcontainer/post-create.sh +0 -0
  59. {specify_cli-0.12.15 → specify_cli-0.12.17}/.editorconfig +0 -0
  60. {specify_cli-0.12.15 → specify_cli-0.12.17}/.gitattributes +0 -0
  61. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/CODEOWNERS +0 -0
  62. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
  63. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  64. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  65. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  66. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  67. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/aw/actions-lock.json +0 -0
  68. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/dependabot.yml +0 -0
  69. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/skills/add-community-extension/SKILL.md +0 -0
  70. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/RELEASE-PROCESS.md +0 -0
  71. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/add-community-extension.lock.yml +0 -0
  72. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/add-community-extension.md +0 -0
  73. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/add-community-preset.lock.yml +0 -0
  74. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/add-community-preset.md +0 -0
  75. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/bug-assess.lock.yml +0 -0
  76. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/bug-assess.md +0 -0
  77. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/bug-fix.lock.yml +0 -0
  78. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/bug-fix.md +0 -0
  79. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/bug-test.lock.yml +0 -0
  80. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/bug-test.md +0 -0
  81. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/catalog-assign.yml +0 -0
  82. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/codeql.yml +0 -0
  83. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/docs.yml +0 -0
  84. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/lint.yml +0 -0
  85. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/publish-pypi.yml +0 -0
  86. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/release-trigger.yml +0 -0
  87. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/release.yml +0 -0
  88. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/stale.yml +0 -0
  89. {specify_cli-0.12.15 → specify_cli-0.12.17}/.github/workflows/test.yml +0 -0
  90. {specify_cli-0.12.15 → specify_cli-0.12.17}/.markdownlint-cli2.jsonc +0 -0
  91. {specify_cli-0.12.15 → specify_cli-0.12.17}/.pre-commit-config.yaml +0 -0
  92. {specify_cli-0.12.15 → specify_cli-0.12.17}/.zenodo.json +0 -0
  93. {specify_cli-0.12.15 → specify_cli-0.12.17}/AGENTS.md +0 -0
  94. {specify_cli-0.12.15 → specify_cli-0.12.17}/CITATION.cff +0 -0
  95. {specify_cli-0.12.15 → specify_cli-0.12.17}/CODE_OF_CONDUCT.md +0 -0
  96. {specify_cli-0.12.15 → specify_cli-0.12.17}/CONTRIBUTING.md +0 -0
  97. {specify_cli-0.12.15 → specify_cli-0.12.17}/DEVELOPMENT.md +0 -0
  98. {specify_cli-0.12.15 → specify_cli-0.12.17}/LICENSE +0 -0
  99. {specify_cli-0.12.15 → specify_cli-0.12.17}/SECURITY.md +0 -0
  100. {specify_cli-0.12.15 → specify_cli-0.12.17}/SUPPORT.md +0 -0
  101. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/.gitignore +0 -0
  102. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/README.md +0 -0
  103. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/community/bundles.md +0 -0
  104. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/community/friends.md +0 -0
  105. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/community/overview.md +0 -0
  106. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/community/presets.md +0 -0
  107. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/community/walkthroughs.md +0 -0
  108. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/concepts/complex-features.md +0 -0
  109. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/concepts/sdd.md +0 -0
  110. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/concepts/spec-persistence.md +0 -0
  111. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/docfx.json +0 -0
  112. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/guides/evolving-specs.md +0 -0
  113. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/guides/monorepo.md +0 -0
  114. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/index.md +0 -0
  115. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/install/air-gapped.md +0 -0
  116. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/install/one-time.md +0 -0
  117. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/install/pipx.md +0 -0
  118. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/install/uv.md +0 -0
  119. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/local-development.md +0 -0
  120. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/quickstart.md +0 -0
  121. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/authentication.md +0 -0
  122. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/bundles.md +0 -0
  123. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/core.md +0 -0
  124. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/extensions.md +0 -0
  125. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/overview.md +0 -0
  126. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/reference/presets.md +0 -0
  127. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/template/public/main.css +0 -0
  128. {specify_cli-0.12.15 → specify_cli-0.12.17}/docs/upgrade.md +0 -0
  129. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/business-analyst/README.md +0 -0
  130. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/business-analyst/bundle.yml +0 -0
  131. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/developer/README.md +0 -0
  132. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/developer/bundle.yml +0 -0
  133. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/product-manager/README.md +0 -0
  134. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/product-manager/bundle.yml +0 -0
  135. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/security-researcher/README.md +0 -0
  136. {specify_cli-0.12.15 → specify_cli-0.12.17}/examples/bundles/security-researcher/bundle.yml +0 -0
  137. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  138. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  139. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  140. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  141. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/README.md +0 -0
  142. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  143. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/README.md +0 -0
  144. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/agent-context-config.yml +0 -0
  145. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  146. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/extension.yml +0 -0
  147. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  148. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  149. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
  150. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/bug/README.md +0 -0
  151. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  152. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  153. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/bug/commands/speckit.bug.test.md +0 -0
  154. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/bug/extension.yml +0 -0
  155. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/catalog.json +0 -0
  156. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/README.md +0 -0
  157. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/commands/speckit.git.commit.md +0 -0
  158. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/commands/speckit.git.feature.md +0 -0
  159. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/commands/speckit.git.initialize.md +0 -0
  160. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/commands/speckit.git.remote.md +0 -0
  161. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/commands/speckit.git.validate.md +0 -0
  162. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/config-template.yml +0 -0
  163. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/extension.yml +0 -0
  164. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/git-config.yml +0 -0
  165. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  166. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  167. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/bash/git-common.sh +0 -0
  168. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  169. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  170. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  171. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  172. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/selftest/commands/selftest.md +0 -0
  173. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/selftest/extension.yml +0 -0
  174. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/.gitignore +0 -0
  175. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/CHANGELOG.md +0 -0
  176. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/EXAMPLE-README.md +0 -0
  177. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/LICENSE +0 -0
  178. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/README.md +0 -0
  179. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/commands/example.md +0 -0
  180. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/config-template.yml +0 -0
  181. {specify_cli-0.12.15 → specify_cli-0.12.17}/extensions/template/extension.yml +0 -0
  182. {specify_cli-0.12.15 → specify_cli-0.12.17}/integrations/CONTRIBUTING.md +0 -0
  183. {specify_cli-0.12.15 → specify_cli-0.12.17}/integrations/README.md +0 -0
  184. {specify_cli-0.12.15 → specify_cli-0.12.17}/integrations/catalog.community.json +0 -0
  185. {specify_cli-0.12.15 → specify_cli-0.12.17}/media/bootstrap-claude-code.gif +0 -0
  186. {specify_cli-0.12.15 → specify_cli-0.12.17}/media/logo_large.webp +0 -0
  187. {specify_cli-0.12.15 → specify_cli-0.12.17}/media/logo_small.webp +0 -0
  188. {specify_cli-0.12.15 → specify_cli-0.12.17}/media/spec-kit-video-header.jpg +0 -0
  189. {specify_cli-0.12.15 → specify_cli-0.12.17}/media/specify_cli.gif +0 -0
  190. {specify_cli-0.12.15 → specify_cli-0.12.17}/newsletters/2026-April.md +0 -0
  191. {specify_cli-0.12.15 → specify_cli-0.12.17}/newsletters/2026-February.md +0 -0
  192. {specify_cli-0.12.15 → specify_cli-0.12.17}/newsletters/2026-June.md +0 -0
  193. {specify_cli-0.12.15 → specify_cli-0.12.17}/newsletters/2026-March.md +0 -0
  194. {specify_cli-0.12.15 → specify_cli-0.12.17}/newsletters/2026-May.md +0 -0
  195. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/ARCHITECTURE.md +0 -0
  196. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/PUBLISHING.md +0 -0
  197. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/README.md +0 -0
  198. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/catalog.community.json +0 -0
  199. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/catalog.json +0 -0
  200. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/README.md +0 -0
  201. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/commands/speckit.constitution.md +0 -0
  202. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/commands/speckit.implement.md +0 -0
  203. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/commands/speckit.plan.md +0 -0
  204. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/commands/speckit.specify.md +0 -0
  205. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/commands/speckit.tasks.md +0 -0
  206. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/lean/preset.yml +0 -0
  207. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/scaffold/README.md +0 -0
  208. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  209. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/scaffold/commands/speckit.specify.md +0 -0
  210. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/scaffold/preset.yml +0 -0
  211. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/scaffold/templates/myext-template.md +0 -0
  212. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/scaffold/templates/spec-template.md +0 -0
  213. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/commands/speckit.specify.md +0 -0
  214. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  215. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/preset.yml +0 -0
  216. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/templates/checklist-template.md +0 -0
  217. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/templates/constitution-template.md +0 -0
  218. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/templates/plan-template.md +0 -0
  219. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/templates/spec-template.md +0 -0
  220. {specify_cli-0.12.15 → specify_cli-0.12.17}/presets/self-test/templates/tasks-template.md +0 -0
  221. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/bash/check-prerequisites.sh +0 -0
  222. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/bash/common.sh +0 -0
  223. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/bash/create-new-feature.sh +0 -0
  224. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/bash/setup-plan.sh +0 -0
  225. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/bash/setup-tasks.sh +0 -0
  226. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/powershell/check-prerequisites.ps1 +0 -0
  227. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/powershell/common.ps1 +0 -0
  228. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/powershell/create-new-feature.ps1 +0 -0
  229. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/powershell/setup-plan.ps1 +0 -0
  230. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/powershell/setup-tasks.ps1 +0 -0
  231. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/python/check_prerequisites.py +0 -0
  232. {specify_cli-0.12.15 → specify_cli-0.12.17}/scripts/python/common.py +0 -0
  233. {specify_cli-0.12.15 → specify_cli-0.12.17}/spec-driven.md +0 -0
  234. {specify_cli-0.12.15 → specify_cli-0.12.17}/spec-kit.code-workspace +0 -0
  235. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/__init__.py +0 -0
  236. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_agent_config.py +0 -0
  237. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_assets.py +0 -0
  238. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_console.py +0 -0
  239. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_github_http.py +0 -0
  240. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_init_options.py +0 -0
  241. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_project.py +0 -0
  242. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_toml_string.py +0 -0
  243. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_utils.py +0 -0
  244. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/_version.py +0 -0
  245. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/agents.py +0 -0
  246. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/authentication/__init__.py +0 -0
  247. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/authentication/azure_devops.py +0 -0
  248. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/authentication/base.py +0 -0
  249. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/authentication/config.py +0 -0
  250. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/authentication/github.py +0 -0
  251. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/authentication/http.py +0 -0
  252. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/__init__.py +0 -0
  253. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
  254. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
  255. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/lib/__init__.py +0 -0
  256. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/lib/project.py +0 -0
  257. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/lib/versioning.py +0 -0
  258. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/lib/yamlio.py +0 -0
  259. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/models/__init__.py +0 -0
  260. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/models/catalog.py +0 -0
  261. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/models/manifest.py +0 -0
  262. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/models/records.py +0 -0
  263. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/__init__.py +0 -0
  264. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/adapters.py +0 -0
  265. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
  266. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/conflict.py +0 -0
  267. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/installer.py +0 -0
  268. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/packager.py +0 -0
  269. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/primitives.py +0 -0
  270. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/references.py +0 -0
  271. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/resolver.py +0 -0
  272. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/bundler/services/validator.py +0 -0
  273. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/catalogs.py +0 -0
  274. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/commands/__init__.py +0 -0
  275. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/commands/bundle/__init__.py +0 -0
  276. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/extensions/_commands.py +0 -0
  277. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integration_runtime.py +0 -0
  278. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integration_scaffold.py +0 -0
  279. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integration_state.py +0 -0
  280. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integration_status.py +0 -0
  281. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/_commands.py +0 -0
  282. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/_install_commands.py +0 -0
  283. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/_migrate_commands.py +0 -0
  284. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/_query_commands.py +0 -0
  285. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
  286. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/agy/__init__.py +0 -0
  287. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/amp/__init__.py +0 -0
  288. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  289. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/base.py +0 -0
  290. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/bob/__init__.py +0 -0
  291. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/catalog.py +0 -0
  292. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/claude/__init__.py +0 -0
  293. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/cline/__init__.py +0 -0
  294. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  295. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/codex/__init__.py +0 -0
  296. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/copilot/__init__.py +0 -0
  297. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  298. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/devin/__init__.py +0 -0
  299. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/firebender/__init__.py +0 -0
  300. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/forge/__init__.py +0 -0
  301. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  302. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/generic/__init__.py +0 -0
  303. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/goose/__init__.py +0 -0
  304. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/hermes/__init__.py +0 -0
  305. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/junie/__init__.py +0 -0
  306. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  307. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/kimi/__init__.py +0 -0
  308. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
  309. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  310. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/manifest.py +0 -0
  311. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/omp/__init__.py +0 -0
  312. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  313. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/pi/__init__.py +0 -0
  314. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  315. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  316. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  317. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/shai/__init__.py +0 -0
  318. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  319. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/trae/__init__.py +0 -0
  320. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  321. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/zcode/__init__.py +0 -0
  322. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/integrations/zed/__init__.py +0 -0
  323. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/shared_infra.py +0 -0
  324. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/__init__.py +0 -0
  325. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/_commands.py +0 -0
  326. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/catalog.py +0 -0
  327. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/__init__.py +0 -0
  328. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
  329. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
  330. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
  331. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
  332. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
  333. {specify_cli-0.12.15 → specify_cli-0.12.17}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
  334. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/checklist-template.md +0 -0
  335. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/analyze.md +0 -0
  336. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/checklist.md +0 -0
  337. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/clarify.md +0 -0
  338. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/constitution.md +0 -0
  339. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/converge.md +0 -0
  340. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/implement.md +0 -0
  341. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/plan.md +0 -0
  342. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/specify.md +0 -0
  343. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/tasks.md +0 -0
  344. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/commands/taskstoissues.md +0 -0
  345. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/constitution-template.md +0 -0
  346. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/plan-template.md +0 -0
  347. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/spec-template.md +0 -0
  348. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/tasks-template.md +0 -0
  349. {specify_cli-0.12.15 → specify_cli-0.12.17}/templates/vscode-settings.json +0 -0
  350. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/__init__.py +0 -0
  351. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/auth_helpers.py +0 -0
  352. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/bundler_helpers.py +0 -0
  353. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/conftest.py +0 -0
  354. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/contract/test_bundle_cli.py +0 -0
  355. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/contract/test_catalog_schema.py +0 -0
  356. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/contract/test_manifest_schema.py +0 -0
  357. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/__init__.py +0 -0
  358. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/bug/__init__.py +0 -0
  359. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/bug/test_bug_extension.py +0 -0
  360. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/git/__init__.py +0 -0
  361. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/test_agent_context_cli_free.py +0 -0
  362. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/test_extension_agent_context.py +0 -0
  363. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
  364. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
  365. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/hooks/TESTING.md +0 -0
  366. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/hooks/plan.md +0 -0
  367. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/hooks/spec.md +0 -0
  368. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/hooks/tasks.md +0 -0
  369. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/http_helpers.py +0 -0
  370. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integration/test_bundler_catalog_stack.py +0 -0
  371. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integration/test_bundler_init_install.py +0 -0
  372. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integration/test_bundler_install_flow.py +0 -0
  373. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integration/test_bundler_local_install.py +0 -0
  374. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integration/test_bundler_offline.py +0 -0
  375. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integration/test_bundler_security_paths.py +0 -0
  376. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/__init__.py +0 -0
  377. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/conftest.py +0 -0
  378. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_base.py +0 -0
  379. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_extra_args.py +0 -0
  380. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_home_isolation.py +0 -0
  381. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_agy.py +0 -0
  382. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_amp.py +0 -0
  383. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_auggie.py +0 -0
  384. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_bob.py +0 -0
  385. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_catalog.py +0 -0
  386. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_claude.py +0 -0
  387. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_codebuddy.py +0 -0
  388. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_codex.py +0 -0
  389. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_cursor_agent.py +0 -0
  390. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_devin.py +0 -0
  391. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_firebender.py +0 -0
  392. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_forge.py +0 -0
  393. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_gemini.py +0 -0
  394. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_goose.py +0 -0
  395. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_hermes.py +0 -0
  396. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_junie.py +0 -0
  397. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_kilocode.py +0 -0
  398. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_kimi.py +0 -0
  399. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_kiro_cli.py +0 -0
  400. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_lingma.py +0 -0
  401. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_omp.py +0 -0
  402. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_opencode.py +0 -0
  403. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_pi.py +0 -0
  404. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_qodercli.py +0 -0
  405. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_qwen.py +0 -0
  406. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_rovodev.py +0 -0
  407. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_scaffold.py +0 -0
  408. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_shai.py +0 -0
  409. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_state.py +0 -0
  410. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_tabnine.py +0 -0
  411. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_trae.py +0 -0
  412. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_vibe.py +0 -0
  413. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_integration_zcode.py +0 -0
  414. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_manifest.py +0 -0
  415. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_registry.py +0 -0
  416. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
  417. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/self_upgrade_helpers.py +0 -0
  418. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_authentication.py +0 -0
  419. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_branch_numbering.py +0 -0
  420. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_check_prerequisites_paths_only.py +0 -0
  421. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_check_prerequisites_python_parity.py +0 -0
  422. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_check_tool.py +0 -0
  423. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_cli_version.py +0 -0
  424. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_command_template_py_scripts.py +0 -0
  425. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_commands_package.py +0 -0
  426. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_console_imports.py +0 -0
  427. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_extension_registration.py +0 -0
  428. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_extension_update_hardening.py +0 -0
  429. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_extensions.py +0 -0
  430. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_github_http.py +0 -0
  431. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_github_workflows.py +0 -0
  432. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_init_dir.py +0 -0
  433. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_init_dir_cli.py +0 -0
  434. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_live_transient_windows.py +0 -0
  435. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_merge.py +0 -0
  436. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_post_process.py +0 -0
  437. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_ps1_encoding.py +0 -0
  438. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_registrar_path_traversal.py +0 -0
  439. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_self_upgrade_detection.py +0 -0
  440. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_self_upgrade_execution.py +0 -0
  441. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_self_upgrade_guidance.py +0 -0
  442. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_self_upgrade_verification.py +0 -0
  443. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_setup_plan_feature_json.py +0 -0
  444. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_setup_plan_no_overwrite.py +0 -0
  445. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_setup_tasks.py +0 -0
  446. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_shared_infra_integrity.py +0 -0
  447. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_timestamp_branches.py +0 -0
  448. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_upgrade.py +0 -0
  449. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_utils.py +0 -0
  450. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_utils_assets_imports.py +0 -0
  451. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_version_imports.py +0 -0
  452. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/test_workflow_run_without_project.py +0 -0
  453. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_adapters.py +0 -0
  454. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_catalog_config.py +0 -0
  455. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_conflict.py +0 -0
  456. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_packager.py +0 -0
  457. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_primitives.py +0 -0
  458. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_records.py +0 -0
  459. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_references.py +0 -0
  460. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_resolver.py +0 -0
  461. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_validator.py +0 -0
  462. {specify_cli-0.12.15 → specify_cli-0.12.17}/tests/unit/test_bundler_versioning.py +0 -0
  463. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/ARCHITECTURE.md +0 -0
  464. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/PUBLISHING.md +0 -0
  465. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/catalog.community.json +0 -0
  466. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/catalog.json +0 -0
  467. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/speckit/workflow.yml +0 -0
  468. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/step-catalog.community.json +0 -0
  469. {specify_cli-0.12.15 → specify_cli-0.12.17}/workflows/step-catalog.json +0 -0
@@ -8,7 +8,7 @@ body:
8
8
  value: |
9
9
  Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
10
10
 
11
- **Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
11
+ **Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
12
12
 
13
13
  - type: input
14
14
  id: agent-name
@@ -76,6 +76,7 @@ body:
76
76
  - Gemini CLI
77
77
  - GitHub Copilot
78
78
  - Goose
79
+ - Grok Build
79
80
  - Hermes Agent
80
81
  - IBM Bob
81
82
  - Junie
@@ -70,6 +70,7 @@ body:
70
70
  - Gemini CLI
71
71
  - GitHub Copilot
72
72
  - Goose
73
+ - Grok Build
73
74
  - Hermes Agent
74
75
  - IBM Bob
75
76
  - Junie
@@ -53,9 +53,10 @@ docs/dev
53
53
 
54
54
  # The following directories/file are intentionally ignored so that they are not accidentally
55
55
  # committed to the repository. They contain the scaffolding `specify init --integration copilot`
56
- # does and they are meant for dogfooding Spec Kit during its own feature development.
56
+ # (or other agents) does and they are meant for dogfooding Spec Kit during its own feature development.
57
57
  .github/agents/
58
58
  .github/prompts/
59
59
  .github/copilot-instructions.md
60
+ .grok/
60
61
  .specify/
61
62
  specs/
@@ -2,6 +2,36 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [0.12.17] - 2026-07-16
6
+
7
+ ### Changed
8
+
9
+ - fix(extensions): resolve __SPECKIT_COMMAND tokens in auto-registered skills (#3544)
10
+ - fix(workflows): fail if/switch steps on non-list branch instead of crashing (#3515)
11
+ - feat(integrations): add Grok Build skills-based integration (#3535)
12
+ - fix(extensions/git): reject negative -Number in create-new-feature-branch.ps1 (#3538)
13
+ - test: cover preset constitution seeding through init CLI (#3297)
14
+ - fix(integration): preserve ai_skills on `use` for skills-mode Copilot (#3550) (#3551)
15
+ - [extension] Add Figma Starter extension to community catalog (#3547)
16
+ - [extension] Add Spec-Kit BDD extension to community catalog (#3548)
17
+ - [extension] Update Quality Gates (Enforcement Layer) extension to v0.3.2 (#3542)
18
+ - chore: release 0.12.16, begin 0.12.17.dev0 development (#3549)
19
+
20
+ ## [0.12.16] - 2026-07-15
21
+
22
+ ### Changed
23
+
24
+ - fix(workflows): raise a clear error, not a cryptic crash, on non-string filter args (#3522)
25
+ - feat(workflows): expose workflow source directory to steps (#3469)
26
+ - fix(workflows): fan-out max_concurrency .inf falls back to sequential, not crash (#3521)
27
+ - Update Coding Standards Drift Control extension to v0.4.0 (#3540)
28
+ - fix(presets): seed constitution from preset constitution-template (#3272) (#3276)
29
+ - docs: add PyPI as second supported install route (#3425) (#3516)
30
+ - fix(workflows): fail while/do-while steps on non-list steps instead of crashing (#3519)
31
+ - Add PatchWarden Evidence Pack extension to community catalog (#3514)
32
+ - feat(extensions): port git extension scripts to Python (#3400)
33
+ - chore: release 0.12.15, begin 0.12.16.dev0 development (#3513)
34
+
5
35
  ## [0.12.15] - 2026-07-14
6
36
 
7
37
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specify-cli
3
- Version: 0.12.15
3
+ Version: 0.12.17
4
4
  Summary: Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD).
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.11
@@ -71,6 +71,12 @@ Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md
71
71
  uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
72
72
  ```
73
73
 
74
+ Prefer installing from PyPI? The `specify-cli` package is also published there:
75
+
76
+ ```bash
77
+ uv tool install specify-cli
78
+ ```
79
+
74
80
  See the [Installation Guide](./docs/installation.md) for alternative methods, verification, upgrade, and troubleshooting.
75
81
 
76
82
  ### 2. Initialize a project
@@ -51,6 +51,12 @@ Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md
51
51
  uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
52
52
  ```
53
53
 
54
+ Prefer installing from PyPI? The `specify-cli` package is also published there:
55
+
56
+ ```bash
57
+ uv tool install specify-cli
58
+ ```
59
+
54
60
  See the [Installation Guide](./docs/installation.md) for alternative methods, verification, upgrade, and troubleshooting.
55
61
 
56
62
  ### 2. Initialize a project
@@ -54,6 +54,7 @@ The following community-contributed extensions are available in [`catalog.commun
54
54
  | DocGuard — CDD Enforcement | Doc-integrity engine with MCP server, SARIF output, and zero-LLM core. Validates, scores, and traces documentation against code — 24 validators, stable finding codes, spec-kit hooks. Pure Node.js. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) |
55
55
  | EARS Requirements Syntax | Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements | `docs` | Read+Write | [spec-kit-ears](https://github.com/dhruv-15-03/spec-kit-ears) |
56
56
  | Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) |
57
+ | Figma Starter | Turns a Figma section's screens into per-screen spec.md files, an app-level user-stories.md, and a build-order.md, then hands off to /speckit.specify | `integration` | Read+Write | [spec-kit-figma-starter](https://github.com/wavemaker/spec-kit-figma-starter) |
57
58
  | Fix Findings | Automated analyze-fix-reanalyze loop that resolves spec findings until clean | `code` | Read+Write | [spec-kit-fix-findings](https://github.com/Quratulain-bilal/spec-kit-fix-findings) |
58
59
  | FixIt Extension | Spec-aware bug fixing — maps bugs to spec artifacts, proposes a plan, applies minimal changes | `code` | Read+Write | [spec-kit-fixit](https://github.com/speckit-community/spec-kit-fixit) |
59
60
  | 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) |
@@ -91,6 +92,7 @@ The following community-contributed extensions are available in [`catalog.commun
91
92
  | Optimize | Audit and optimize AI governance for context efficiency — token budgets, rule health, interpretability, compression, coherence, and echo detection | `process` | Read+Write | [spec-kit-optimize](https://github.com/sakitA/spec-kit-optimize) |
92
93
  | Orchestration Task Context Management | Adds subagent work-unit orchestration to generated Spec Kit task files | `process` | Read+Write | [spec-kit-orchestration-task-context-management](https://github.com/benizzio/spec-kit-orchestration-task-context-management) |
93
94
  | OWASP LLM Threat Model | OWASP Top 10 for LLM Applications 2025 threat analysis on agent artifacts | `code` | Read-only | [spec-kit-threatmodel](https://github.com/NaviaSamal/spec-kit-threatmodel) |
95
+ | PatchWarden Evidence Pack | Map Spec Kit tasks into a guarded PatchWarden Goal and export bounded, traceable evidence for an accepted lineage. | `process` | Read+Write | [spec-kit-patchwarden](https://github.com/jiezeng2004-design/spec-kit-patchwarden) |
94
96
  | Plan Review Gate | Require spec.md and plan.md to be merged via MR/PR before allowing task generation | `process` | Read-only | [spec-kit-plan-review-gate](https://github.com/luno/spec-kit-plan-review-gate) |
95
97
  | PR Bridge | Auto-generate pull request descriptions, checklists, and summaries from spec artifacts | `process` | Read-only | [spec-kit-pr-bridge-](https://github.com/Quratulain-bilal/spec-kit-pr-bridge-) |
96
98
  | Presetify | Create and validate presets and preset catalogs | `process` | Read+Write | [presetify](https://github.com/mnriem/spec-kit-extensions/tree/main/presetify) |
@@ -99,7 +101,7 @@ The following community-contributed extensions are available in [`catalog.commun
99
101
  | 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) |
100
102
  | 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) |
101
103
  | QA Testing Extension | Systematic QA testing with browser-driven or CLI-based validation of acceptance criteria from spec | `code` | Read-only | [spec-kit-qa](https://github.com/arunt14/spec-kit-qa) |
102
- | Quality Gates (Enforcement Layer) | Deterministic quality enforcement for Spec Kit projects at three boundaries — agent hooks, git pre-commit, CI — with one policy file and provable enforcement (attestations, canaries, verified parity). | `process` | Read+Write | [spec-gates](https://github.com/schwichtgit/spec-gates) |
104
+ | Quality Gates (Enforcement Layer) | Deterministic quality enforcement for Spec Kit across agent hooks, git checks, and CI pipelines with one policy file and one verify entrypoint for identical results at every boundary. | `process` | Read+Write | [spec-gates](https://github.com/schwichtgit/spec-gates) |
103
105
  | RAG Azure Builder | Spec Kit extension for onboarding and operating an Azure RAG stack with guided workflows. | `process` | Read+Write | [spec-kit-extension-rag-azure-builder](https://github.com/Sertxito/spec-kit-extension-rag-azure-builder) |
104
106
  | Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss-Projects/spec-kit-ralph) |
105
107
  | Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
@@ -133,6 +135,7 @@ The following community-contributed extensions are available in [`catalog.commun
133
135
  | 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) |
134
136
  | Spec Trace | Build a requirement → test traceability matrix from spec.md and the test suite — surface untested requirements and orphan tests | `code` | Read+Write | [spec-kit-trace](https://github.com/Quratulain-bilal/spec-kit-trace) |
135
137
  | Spec Validate | Comprehension validation, review gating, and approval state for spec-kit artifacts — staged quizzes, peer review SLA, and a hard gate before /speckit.implement | `process` | Read+Write | [spec-kit-spec-validate](https://github.com/aeltayeb/spec-kit-spec-validate) |
138
+ | Spec-Kit BDD | ATDD/BDD extension: convert specs to Gherkin scenarios, scaffold step definitions, and verify acceptance test coverage | `process` | Read+Write | [spec-kit-bdd](https://github.com/RSginer/spec-kit-bdd) |
136
139
  | Spec2Cloud | Spec-driven workflow tuned for shipping to Azure | `process` | Read+Write | [spec2cloud](https://github.com/Azure-Samples/Spec2Cloud) |
137
140
  | SpecKit Companion | Live spec-driven progress — lifecycle capture, status, resume, and a turbo pipeline profile | `visibility` | Read+Write | [speckit-companion](https://github.com/alfredoperez/speckit-companion) |
138
141
  | SpecTest | Auto-generate test scaffolds from spec criteria, map coverage, and find untested requirements | `code` | Read+Write | [spec-kit-spectest](https://github.com/Quratulain-bilal/spec-kit-spectest) |
@@ -0,0 +1,83 @@
1
+ # Installing from PyPI
2
+
3
+ Spec Kit is published to PyPI as [`specify-cli`](https://pypi.org/project/specify-cli/), maintained by the Spec Kit maintainers. Installing from PyPI is the second supported install route alongside installing from the [GitHub source](../installation.md#install-from-source--persistent-installation-recommended). Use whichever fits your workflow — both provide the same `specify` CLI.
4
+
5
+ > [!NOTE]
6
+ > The PyPI release version tracks the GitHub release tags (for example, PyPI `0.12.11` corresponds to the `v0.12.11` tag). `specify version` is only a local version/runtime sanity check — it reports the installed version but not where the `specify` executable came from, so it cannot distinguish a PyPI install from a Git install. To confirm the install source, inspect the source metadata your package manager records: `pipx list --json` reports the exact install specification for each tool, and for uv/pip installs you can check the package's [PEP 610](https://peps.python.org/pep-0610/) `direct_url.json` inside its `*.dist-info` directory (a Git or URL install records the repository/archive URL there, while a plain PyPI index install does not create that file). Note that `pip show specify-cli` only prints package metadata and will not see uv/pipx-managed environments from the host interpreter.
7
+
8
+ ## Install Specify CLI
9
+
10
+ Use whichever Python tool you already have:
11
+
12
+ ```bash
13
+ # Using uv (recommended)
14
+ uv tool install specify-cli
15
+
16
+ # Or using pipx
17
+ pipx install specify-cli
18
+
19
+ # Or using pip
20
+ pip install specify-cli
21
+ ```
22
+
23
+ ### Install a specific release
24
+
25
+ Pin an exact version for reproducible installs (check [PyPI](https://pypi.org/project/specify-cli/#history) or [Releases](https://github.com/github/spec-kit/releases) for available versions):
26
+
27
+ ```bash
28
+ # Using uv
29
+ uv tool install specify-cli==0.12.11
30
+
31
+ # Or using pipx
32
+ pipx install specify-cli==0.12.11
33
+
34
+ # Or using pip
35
+ pip install specify-cli==0.12.11
36
+ ```
37
+
38
+ ## Verify
39
+
40
+ ```bash
41
+ specify version
42
+ ```
43
+
44
+ ## Initialize a project
45
+
46
+ ```bash
47
+ specify init <PROJECT_NAME> --integration copilot
48
+ ```
49
+
50
+ ## Upgrade
51
+
52
+ Upgrade by reinstalling the package through the same tool you used for the original install. If you originally pinned a version, note that `uv tool upgrade` preserves that pin; to move to the newest PyPI release, use an unpinned install command so you do not keep the existing version pin:
53
+
54
+ ```bash
55
+ # Using uv
56
+ uv tool install --force specify-cli
57
+
58
+ # Or using pipx
59
+ pipx install --force specify-cli
60
+
61
+ # Or using pip
62
+ pip install --upgrade specify-cli
63
+ ```
64
+
65
+ > [!NOTE]
66
+ > `specify self upgrade` currently rebuilds `uv tool` and `pipx` installs from the GitHub source release URL rather than preserving a PyPI-based installation. If you want to stay on the PyPI route, use the package-manager commands above. A plain `pip install specify-cli` is treated as an unmanaged install — upgrade it with `pip install --upgrade specify-cli`. See the [Upgrade Guide](../upgrade.md) for details.
67
+
68
+ ## Uninstall
69
+
70
+ ```bash
71
+ # Using uv
72
+ uv tool uninstall specify-cli
73
+
74
+ # Or using pipx
75
+ pipx uninstall specify-cli
76
+
77
+ # Or using pip
78
+ pip uninstall specify-cli
79
+ ```
80
+
81
+ ## Next steps
82
+
83
+ Head to the [Quick Start](../quickstart.md) to initialize your first project.
@@ -11,9 +11,14 @@
11
11
  ## Installation
12
12
 
13
13
  > [!IMPORTANT]
14
- > The only official, maintained packages for Spec Kit come from the [github/spec-kit](https://github.com/github/spec-kit) GitHub repository. Any packages with the same name available on PyPI (e.g. `specify-cli` on pypi.org) are **not** affiliated with this project and are not maintained by the Spec Kit maintainers. For normal installs, use the GitHub-based commands shown below. For offline or air-gapped environments, locally built wheels created from this repository are also valid.
14
+ > Spec Kit is distributed through two official channels, both published and maintained by the Spec Kit maintainers: the [github/spec-kit](https://github.com/github/spec-kit) GitHub repository (source installs) and the [`specify-cli`](https://pypi.org/project/specify-cli/) package on [PyPI](https://pypi.org/project/specify-cli/). Either route is supported for normal installs — use the commands shown below. After installing, run `specify version` as a local version/runtime sanity check. It confirms that the `specify` command is available and reports its version, but it does not prove whether the executable came from PyPI or GitHub. For offline or air-gapped environments, locally built wheels created from this repository are also valid.
15
15
 
16
- ### Persistent Installation (Recommended)
16
+ Spec Kit supports two install routes:
17
+
18
+ 1. **Install from source (GitHub)** — the recommended route, pinned to a release tag.
19
+ 2. **Install from PyPI** — install the published `specify-cli` package with your usual Python tooling.
20
+
21
+ ### Install from Source — Persistent Installation (Recommended)
17
22
 
18
23
  Install once and use everywhere. Replace `vX.Y.Z` with a release tag from [Releases](https://github.com/github/spec-kit/releases) — keep the leading `v` (for example, `v0.12.11`, not `0.12.11`):
19
24
 
@@ -30,12 +35,30 @@ Then initialize a project:
30
35
  specify init <PROJECT_NAME> --integration copilot
31
36
  ```
32
37
 
38
+ ### Install from PyPI
39
+
40
+ Spec Kit is also published to PyPI as [`specify-cli`](https://pypi.org/project/specify-cli/), so you can install it with your preferred Python package manager without referencing the Git URL:
41
+
42
+ ```bash
43
+ # Using uv (recommended)
44
+ uv tool install specify-cli
45
+
46
+ # Or using pipx
47
+ pipx install specify-cli
48
+
49
+ # Or using pip
50
+ pip install specify-cli
51
+ ```
52
+
53
+ To install a specific release, pin the version — for example `uv tool install specify-cli==0.12.11`. See the [PyPI installation guide](install/pypi.md) for details, including how to upgrade.
54
+
33
55
  ### One-time Usage
34
56
 
35
57
  Run directly without installing — see the [One-time usage (uvx)](install/one-time.md) guide.
36
58
 
37
59
  ### Alternative Package Managers
38
60
 
61
+ - **PyPI** — see the [PyPI installation guide](install/pypi.md)
39
62
  - **pipx** — see the [pipx installation guide](install/pipx.md)
40
63
  - **Enterprise / Air-Gapped** — see the [air-gapped installation guide](install/air-gapped.md)
41
64
 
@@ -81,13 +104,13 @@ specify init <project_name> --integration claude --ignore-agent-tools
81
104
 
82
105
  ## Verification
83
106
 
84
- After installation, run the following command to confirm the correct version is installed:
107
+ After installation, run the following command as a local version/runtime check:
85
108
 
86
109
  ```bash
87
110
  specify version
88
111
  ```
89
112
 
90
- This helps verify you are running the official Spec Kit build from GitHub, not an unrelated package with the same name.
113
+ This confirms that the `specify` command is available and reporting the expected version. It does not prove whether that executable came from PyPI or GitHub.
91
114
 
92
115
  **Stay current:** Run `specify self check` periodically to learn whether a newer release is available — it is read-only and never modifies your installation. When you are ready to upgrade, follow the [Upgrade Guide](./upgrade.md).
93
116
 
@@ -20,6 +20,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
20
20
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | |
21
21
  | [GitHub Copilot](https://code.visualstudio.com/) | `copilot` | Defaults to legacy markdown mode: `.agent.md` command files under `.github/agents/`, companion `.prompt.md` files under `.github/prompts/`, and a `.vscode/settings.json` merge. Pass `--integration-options="--skills"` to scaffold skills as `speckit-<command>/SKILL.md` under `.github/skills/` instead. Legacy markdown mode is deprecated and will stop being the default in a future release. |
22
22
  | [Goose](https://goose-docs.ai/) | `goose` | Uses YAML recipe format in `.goose/recipes/` |
23
+ | [Grok Build](https://docs.x.ai/build/overview) | `grok` | Skills-based integration; installs skills into `.grok/skills` and invokes them as `/speckit-<command>` |
23
24
  | [Hermes](https://github.com/NousResearch/hermes-agent) | `hermes` | Skills-based integration; installs skills globally into `~/.hermes/skills/` |
24
25
  | [IBM Bob](https://www.ibm.com/products/bob) | `bob` | IDE-based agent |
25
26
  | [Junie](https://junie.jetbrains.com/) | `junie` | |
@@ -249,7 +250,11 @@ Spec Kit tracks one default integration in `.specify/integration.json` with `def
249
250
 
250
251
  ### Which integrations are multi-install safe?
251
252
 
252
- An integration is multi-install safe when it uses isolated agent directories, a dedicated context file that does not collide with another safe integration, stable command invocation settings, and a separate install manifest. Shared Spec Kit templates remain aligned to the single default integration.
253
+ An integration is multi-install safe when it uses a static, unique agent root and command directory, stable command invocation settings, and a separate install manifest whose managed files do not overlap another safe integration. Registry tests enforce those path and manifest invariants. Shared Spec Kit templates remain aligned to the single default integration.
254
+
255
+ The Isolation column below lists paths Spec Kit manages for that integration (skills/commands roots and any integration-owned rule files). It is not a full inventory of every file an agent may read.
256
+
257
+ **Agent-context defaults are separate.** The optional agent-context extension maps each integration to a default context file in `extensions/agent-context/agent-context-defaults.json`. Those defaults are independent of multi-install safety: several agents may share a root file such as `AGENTS.md` when the extension is enabled. Multi-install safety does not require a unique context file per safe integration.
253
258
 
254
259
  The currently declared multi-install safe integrations are:
255
260
 
@@ -263,6 +268,7 @@ The currently declared multi-install safe integrations are:
263
268
  | `cursor-agent` | `.cursor/skills`, `.cursor/rules/specify-rules.mdc` |
264
269
  | `firebender` | `.firebender/commands`, `.firebender/rules/specify-rules.mdc` |
265
270
  | `gemini` | `.gemini/commands`, `GEMINI.md` |
271
+ | `grok` | `.grok/skills` |
266
272
  | `junie` | `.junie/commands`, `.junie/AGENTS.md` |
267
273
  | `kilocode` | `.kilocode/workflows`, `.kilocode/rules/specify-rules.md` |
268
274
  | `qodercli` | `.qoder/commands`, `QODER.md` |
@@ -272,7 +278,7 @@ The currently declared multi-install safe integrations are:
272
278
  | `trae` | `.trae/skills`, `.trae/rules/project_rules.md` |
273
279
  | `zcode` | `.zcode/skills`, `ZCODE.md` |
274
280
 
275
- Integrations that share a context file or command directory with another integration, require dynamic install paths such as `--commands-dir`, or merge shared tool settings are not declared safe by default. They can still be installed alongside another integration with `--force`.
281
+ Integrations that share a command directory with another integration, require dynamic install paths such as `--commands-dir`, or merge shared tool settings are not declared safe by default. They can still be installed alongside another integration with `--force`.
276
282
 
277
283
  ### What happens to my changes when I uninstall or switch?
278
284
 
@@ -305,6 +305,8 @@ Steps can reference inputs and previous step outputs using `{{ expression }}` sy
305
305
  | `inputs.spec` | Workflow input values |
306
306
  | `steps.specify.output.file` | Output from a previous step |
307
307
  | `item` | Current item in a fan-out iteration |
308
+ | `context.run_id` | Current workflow run ID |
309
+ | `context.workflow_dir` | Resolved absolute path to the workflow source directory. Empty string for string-loaded workflows. |
308
310
 
309
311
  Available filters: `default`, `join`, `contains`, `map`, `from_json`.
310
312
 
@@ -316,6 +318,14 @@ args: "{{ inputs.spec }}"
316
318
  message: "{{ status | default('pending') }}"
317
319
  ```
318
320
 
321
+ ## Shell Step Environment Variables
322
+
323
+ Shell steps automatically receive the following environment variables:
324
+
325
+ | Variable | Description |
326
+ | -------- | ----------- |
327
+ | `SPECKIT_WORKFLOW_DIR` | Resolved absolute path to the workflow source directory (same value as `{{ context.workflow_dir }}`). Not set when the workflow has no source path. |
328
+
319
329
  ## Input Types
320
330
 
321
331
  | Type | Coercion |
@@ -13,6 +13,8 @@
13
13
  href: upgrade.md
14
14
  - name: Install uv
15
15
  href: install/uv.md
16
+ - name: Install from PyPI
17
+ href: install/pypi.md
16
18
  - name: Install with pipx
17
19
  href: install/pipx.md
18
20
  - name: One-time Usage (uvx)
@@ -17,6 +17,7 @@
17
17
  "gemini": "GEMINI.md",
18
18
  "generic": "AGENTS.md",
19
19
  "goose": "AGENTS.md",
20
+ "grok": "AGENTS.md",
20
21
  "hermes": "AGENTS.md",
21
22
  "junie": ".junie/AGENTS.md",
22
23
  "kilocode": ".kilocode/rules/specify-rules.md",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": "1.0",
3
- "updated_at": "2026-07-13T00:00:00Z",
3
+ "updated_at": "2026-07-15T14:10:00Z",
4
4
  "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
5
5
  "extensions": {
6
6
  "aide": {
@@ -395,6 +395,66 @@
395
395
  "created_at": "2026-03-03T00:00:00Z",
396
396
  "updated_at": "2026-03-03T00:00:00Z"
397
397
  },
398
+ "bdd": {
399
+ "name": "Spec-Kit BDD",
400
+ "id": "bdd",
401
+ "description": "ATDD/BDD extension: convert specs to Gherkin scenarios, scaffold step definitions, and verify acceptance test coverage.",
402
+ "author": "RSginer",
403
+ "version": "1.0.2",
404
+ "download_url": "https://github.com/RSginer/spec-kit-bdd/archive/refs/tags/v1.0.2.zip",
405
+ "repository": "https://github.com/RSginer/spec-kit-bdd",
406
+ "homepage": "https://github.com/RSginer/spec-kit-bdd",
407
+ "documentation": "https://github.com/RSginer/spec-kit-bdd/blob/main/docs/usage.md",
408
+ "changelog": "https://github.com/RSginer/spec-kit-bdd/releases",
409
+ "license": "MIT",
410
+ "category": "process",
411
+ "effect": "read-write",
412
+ "requires": {
413
+ "speckit_version": ">=0.2.0",
414
+ "tools": [
415
+ {
416
+ "name": "pytest-bdd",
417
+ "required": false
418
+ },
419
+ {
420
+ "name": "behave",
421
+ "required": false
422
+ },
423
+ {
424
+ "name": "@cucumber/cucumber",
425
+ "required": false
426
+ },
427
+ {
428
+ "name": "cucumber",
429
+ "required": false
430
+ },
431
+ {
432
+ "name": "io.cucumber",
433
+ "required": false
434
+ },
435
+ {
436
+ "name": "SpecFlow",
437
+ "required": false
438
+ }
439
+ ]
440
+ },
441
+ "provides": {
442
+ "commands": 3,
443
+ "hooks": 2
444
+ },
445
+ "tags": [
446
+ "bdd",
447
+ "gherkin",
448
+ "atdd",
449
+ "acceptance-testing",
450
+ "tdd"
451
+ ],
452
+ "verified": false,
453
+ "downloads": 0,
454
+ "stars": 0,
455
+ "created_at": "2026-07-15T00:00:00Z",
456
+ "updated_at": "2026-07-15T00:00:00Z"
457
+ },
398
458
  "blueprint": {
399
459
  "name": "Blueprint",
400
460
  "id": "blueprint",
@@ -809,8 +869,8 @@
809
869
  "id": "coding-standards-drift-control",
810
870
  "description": "Generate coding-standards drift reports and remediation tasks for active Spec Kit features",
811
871
  "author": "Igor Benicio de Mesquita",
812
- "version": "0.3.1",
813
- "download_url": "https://github.com/benizzio/spec-kit-coding-standards-drift-control/archive/refs/tags/v0.3.1.zip",
872
+ "version": "0.4.0",
873
+ "download_url": "https://github.com/benizzio/spec-kit-coding-standards-drift-control/archive/refs/tags/v0.4.0.zip",
814
874
  "repository": "https://github.com/benizzio/spec-kit-coding-standards-drift-control",
815
875
  "homepage": "https://github.com/benizzio/spec-kit-coding-standards-drift-control",
816
876
  "documentation": "https://github.com/benizzio/spec-kit-coding-standards-drift-control#readme",
@@ -835,7 +895,7 @@
835
895
  "downloads": 0,
836
896
  "stars": 0,
837
897
  "created_at": "2026-06-11T00:00:00Z",
838
- "updated_at": "2026-06-11T00:00:00Z"
898
+ "updated_at": "2026-07-15T00:00:00Z"
839
899
  },
840
900
  "companion": {
841
901
  "name": "SpecKit Companion",
@@ -1295,6 +1355,43 @@
1295
1355
  "created_at": "2026-07-08T00:00:00Z",
1296
1356
  "updated_at": "2026-07-08T00:00:00Z"
1297
1357
  },
1358
+ "figma-starter": {
1359
+ "name": "Figma Starter",
1360
+ "id": "figma-starter",
1361
+ "description": "Turns a Figma section's screens into per-screen spec.md files, an app-level user-stories.md, and a build-order.md, then hands off to /speckit.specify.",
1362
+ "author": "WaveMaker",
1363
+ "version": "1.0.0",
1364
+ "download_url": "https://github.com/wavemaker/spec-kit-figma-starter/archive/refs/tags/v1.0.0.zip",
1365
+ "repository": "https://github.com/wavemaker/spec-kit-figma-starter",
1366
+ "homepage": "https://github.com/wavemaker/spec-kit-figma-starter",
1367
+ "documentation": "https://github.com/wavemaker/spec-kit-figma-starter/blob/main/README.md",
1368
+ "changelog": "https://github.com/wavemaker/spec-kit-figma-starter/blob/main/CHANGELOG.md",
1369
+ "license": "MIT",
1370
+ "category": "integration",
1371
+ "effect": "read-write",
1372
+ "requires": {
1373
+ "speckit_version": ">=0.1.0",
1374
+ "tools": [
1375
+ { "name": "python3", "version": ">=3.8", "required": true }
1376
+ ]
1377
+ },
1378
+ "provides": {
1379
+ "commands": 1,
1380
+ "hooks": 1
1381
+ },
1382
+ "tags": [
1383
+ "figma",
1384
+ "design",
1385
+ "design-to-spec",
1386
+ "ui",
1387
+ "frontend"
1388
+ ],
1389
+ "verified": false,
1390
+ "downloads": 0,
1391
+ "stars": 0,
1392
+ "created_at": "2026-07-15T00:00:00Z",
1393
+ "updated_at": "2026-07-15T00:00:00Z"
1394
+ },
1298
1395
  "fix-findings": {
1299
1396
  "name": "Fix Findings",
1300
1397
  "id": "fix-findings",
@@ -1438,13 +1535,14 @@
1438
1535
  "gates": {
1439
1536
  "name": "Quality Gates (Enforcement Layer)",
1440
1537
  "id": "gates",
1441
- "description": "Deterministic quality enforcement for Spec Kit projects at three boundaries — agent hooks, git pre-commit, CI — with one policy file and provable enforcement (attestations, canaries, verified parity).",
1538
+ "description": "Deterministic quality enforcement for Spec Kit across agent hooks, git checks, and CI pipelines with one policy file and one verify entrypoint for identical results at every boundary.",
1442
1539
  "author": "schwichtgit",
1443
- "version": "0.1.0",
1444
- "download_url": "https://github.com/schwichtgit/spec-gates/releases/download/v0.1.0/gates-0.1.0.zip",
1540
+ "version": "0.3.2",
1541
+ "download_url": "https://github.com/schwichtgit/spec-gates/releases/download/v0.3.2/gates-0.3.2.zip",
1445
1542
  "repository": "https://github.com/schwichtgit/spec-gates",
1446
1543
  "homepage": "https://github.com/schwichtgit/spec-gates",
1447
1544
  "documentation": "https://github.com/schwichtgit/spec-gates/blob/main/docs/how-it-works.md",
1545
+ "changelog": "https://github.com/schwichtgit/spec-gates/releases",
1448
1546
  "license": "MIT",
1449
1547
  "category": "process",
1450
1548
  "effect": "read-write",
@@ -1457,7 +1555,7 @@
1457
1555
  },
1458
1556
  {
1459
1557
  "name": "git",
1460
- "required": true
1558
+ "required": false
1461
1559
  },
1462
1560
  {
1463
1561
  "name": "node",
@@ -1470,8 +1568,8 @@
1470
1568
  ]
1471
1569
  },
1472
1570
  "provides": {
1473
- "commands": 5,
1474
- "hooks": 1
1571
+ "commands": 8,
1572
+ "hooks": 2
1475
1573
  },
1476
1574
  "tags": [
1477
1575
  "quality",
@@ -1484,7 +1582,7 @@
1484
1582
  "downloads": 0,
1485
1583
  "stars": 0,
1486
1584
  "created_at": "2026-07-09T00:00:00Z",
1487
- "updated_at": "2026-07-13T00:00:00Z"
1585
+ "updated_at": "2026-07-15T00:00:00Z"
1488
1586
  },
1489
1587
  "github-issues": {
1490
1588
  "name": "GitHub Issues Integration 1",
@@ -2677,6 +2775,46 @@
2677
2775
  "created_at": "2026-04-24T14:00:00Z",
2678
2776
  "updated_at": "2026-04-24T14:00:00Z"
2679
2777
  },
2778
+ "patchwarden-evidence": {
2779
+ "name": "PatchWarden Evidence Pack",
2780
+ "id": "patchwarden-evidence",
2781
+ "description": "Map Spec Kit tasks into a guarded PatchWarden Goal and export bounded, traceable evidence for an accepted lineage.",
2782
+ "author": "Zengjie",
2783
+ "version": "1.0.1",
2784
+ "download_url": "https://github.com/jiezeng2004-design/spec-kit-patchwarden/archive/refs/tags/v1.0.1.zip",
2785
+ "repository": "https://github.com/jiezeng2004-design/spec-kit-patchwarden",
2786
+ "homepage": "https://github.com/jiezeng2004-design/spec-kit-patchwarden",
2787
+ "documentation": "https://github.com/jiezeng2004-design/spec-kit-patchwarden/blob/main/README.md",
2788
+ "changelog": "https://github.com/jiezeng2004-design/spec-kit-patchwarden/blob/main/CHANGELOG.md",
2789
+ "license": "MIT",
2790
+ "category": "process",
2791
+ "effect": "read-write",
2792
+ "requires": {
2793
+ "speckit_version": ">=0.1.0",
2794
+ "tools": [
2795
+ {
2796
+ "name": "patchwarden",
2797
+ "version": ">=1.5.1",
2798
+ "required": true
2799
+ }
2800
+ ]
2801
+ },
2802
+ "provides": {
2803
+ "commands": 2,
2804
+ "hooks": 2
2805
+ },
2806
+ "tags": [
2807
+ "verification",
2808
+ "evidence",
2809
+ "traceability",
2810
+ "security"
2811
+ ],
2812
+ "verified": false,
2813
+ "downloads": 0,
2814
+ "stars": 0,
2815
+ "created_at": "2026-07-14T00:00:00Z",
2816
+ "updated_at": "2026-07-14T00:00:00Z"
2817
+ },
2680
2818
  "plan-review-gate": {
2681
2819
  "name": "Plan Review Gate",
2682
2820
  "id": "plan-review-gate",
@@ -41,6 +41,16 @@ if ($Help) {
41
41
  exit 0
42
42
  }
43
43
 
44
+ # -Number is [long], so PowerShell binds "-5" as -5 rather than rejecting it
45
+ # the way the bash/Python twins do (`^[0-9]+$`). A negative value would format
46
+ # via '{0:000}' to e.g. "-005" and produce a branch name starting with "-",
47
+ # which git refuses (refs cannot begin with a dash). Reject it here, before the
48
+ # description check, matching the bash twin's parse-time validation order.
49
+ if ($Number -lt 0) {
50
+ Write-Error 'Error: --number must be a non-negative integer'
51
+ exit 1
52
+ }
53
+
44
54
  if (-not $FeatureDescription -or $FeatureDescription.Count -eq 0) {
45
55
  Write-Error "Usage: ./create-new-feature-branch.ps1 [-Json] [-DryRun] [-AllowExistingBranch] [-ShortName <name>] [-Number N] [-Timestamp] <feature description>"
46
56
  exit 1