specify-cli 0.12.12__tar.gz → 0.12.14__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 (462) hide show
  1. {specify_cli-0.12.12 → specify_cli-0.12.14}/CHANGELOG.md +31 -0
  2. {specify_cli-0.12.12 → specify_cli-0.12.14}/PKG-INFO +2 -2
  3. {specify_cli-0.12.12 → specify_cli-0.12.14}/README.md +1 -1
  4. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/community/extensions.md +2 -0
  5. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/community/presets.md +2 -0
  6. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/install/one-time.md +2 -1
  7. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/install/pipx.md +2 -1
  8. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/installation.md +1 -1
  9. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/catalog.community.json +88 -1
  10. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/ARCHITECTURE.md +1 -2
  11. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/catalog.community.json +57 -1
  12. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/preset.yml +0 -6
  13. {specify_cli-0.12.12 → specify_cli-0.12.14}/pyproject.toml +1 -1
  14. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/agents.py +49 -0
  15. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/commands/init.py +34 -5
  16. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/extensions/__init__.py +5 -0
  17. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/_helpers.py +9 -1
  18. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/kiro_cli/__init__.py +8 -0
  19. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/presets/__init__.py +108 -25
  20. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/expressions.py +22 -2
  21. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/command/__init__.py +38 -2
  22. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/fan_in/__init__.py +18 -0
  23. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/if_then/__init__.py +2 -2
  24. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/shell/__init__.py +43 -20
  25. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/switch/__init__.py +14 -0
  26. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/constitution.md +1 -1
  27. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_cli.py +59 -1
  28. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_kiro_cli.py +3 -0
  29. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_subcommand.py +21 -0
  30. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_registry.py +14 -0
  31. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_extension_skills.py +59 -0
  32. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_extensions.py +179 -0
  33. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_presets.py +514 -1
  34. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_workflows.py +271 -101
  35. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/README.md +6 -0
  36. specify_cli-0.12.12/presets/self-test/templates/agent-file-template.md +0 -9
  37. {specify_cli-0.12.12 → specify_cli-0.12.14}/.devcontainer/devcontainer.json +0 -0
  38. {specify_cli-0.12.12 → specify_cli-0.12.14}/.devcontainer/post-create.sh +0 -0
  39. {specify_cli-0.12.12 → specify_cli-0.12.14}/.editorconfig +0 -0
  40. {specify_cli-0.12.12 → specify_cli-0.12.14}/.gitattributes +0 -0
  41. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/CODEOWNERS +0 -0
  42. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
  43. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  44. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
  45. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  46. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  47. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  48. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  49. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  50. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/aw/actions-lock.json +0 -0
  51. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/dependabot.yml +0 -0
  52. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/skills/add-community-extension/SKILL.md +0 -0
  53. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/RELEASE-PROCESS.md +0 -0
  54. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/add-community-extension.lock.yml +0 -0
  55. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/add-community-extension.md +0 -0
  56. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/add-community-preset.lock.yml +0 -0
  57. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/add-community-preset.md +0 -0
  58. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/bug-assess.lock.yml +0 -0
  59. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/bug-assess.md +0 -0
  60. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/bug-fix.lock.yml +0 -0
  61. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/bug-fix.md +0 -0
  62. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/bug-test.lock.yml +0 -0
  63. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/bug-test.md +0 -0
  64. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/catalog-assign.yml +0 -0
  65. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/codeql.yml +0 -0
  66. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/docs.yml +0 -0
  67. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/lint.yml +0 -0
  68. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/publish-pypi.yml +0 -0
  69. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/release-trigger.yml +0 -0
  70. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/release.yml +0 -0
  71. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/stale.yml +0 -0
  72. {specify_cli-0.12.12 → specify_cli-0.12.14}/.github/workflows/test.yml +0 -0
  73. {specify_cli-0.12.12 → specify_cli-0.12.14}/.gitignore +0 -0
  74. {specify_cli-0.12.12 → specify_cli-0.12.14}/.markdownlint-cli2.jsonc +0 -0
  75. {specify_cli-0.12.12 → specify_cli-0.12.14}/.pre-commit-config.yaml +0 -0
  76. {specify_cli-0.12.12 → specify_cli-0.12.14}/.zenodo.json +0 -0
  77. {specify_cli-0.12.12 → specify_cli-0.12.14}/AGENTS.md +0 -0
  78. {specify_cli-0.12.12 → specify_cli-0.12.14}/CITATION.cff +0 -0
  79. {specify_cli-0.12.12 → specify_cli-0.12.14}/CODE_OF_CONDUCT.md +0 -0
  80. {specify_cli-0.12.12 → specify_cli-0.12.14}/CONTRIBUTING.md +0 -0
  81. {specify_cli-0.12.12 → specify_cli-0.12.14}/DEVELOPMENT.md +0 -0
  82. {specify_cli-0.12.12 → specify_cli-0.12.14}/LICENSE +0 -0
  83. {specify_cli-0.12.12 → specify_cli-0.12.14}/SECURITY.md +0 -0
  84. {specify_cli-0.12.12 → specify_cli-0.12.14}/SUPPORT.md +0 -0
  85. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/.gitignore +0 -0
  86. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/README.md +0 -0
  87. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/community/bundles.md +0 -0
  88. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/community/friends.md +0 -0
  89. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/community/overview.md +0 -0
  90. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/community/walkthroughs.md +0 -0
  91. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/concepts/complex-features.md +0 -0
  92. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/concepts/sdd.md +0 -0
  93. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/concepts/spec-persistence.md +0 -0
  94. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/docfx.json +0 -0
  95. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/guides/evolving-specs.md +0 -0
  96. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/guides/monorepo.md +0 -0
  97. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/index.md +0 -0
  98. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/install/air-gapped.md +0 -0
  99. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/install/uv.md +0 -0
  100. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/local-development.md +0 -0
  101. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/quickstart.md +0 -0
  102. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/authentication.md +0 -0
  103. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/bundles.md +0 -0
  104. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/core.md +0 -0
  105. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/extensions.md +0 -0
  106. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/integrations.md +0 -0
  107. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/overview.md +0 -0
  108. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/presets.md +0 -0
  109. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/reference/workflows.md +0 -0
  110. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/template/public/main.css +0 -0
  111. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/toc.yml +0 -0
  112. {specify_cli-0.12.12 → specify_cli-0.12.14}/docs/upgrade.md +0 -0
  113. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/business-analyst/README.md +0 -0
  114. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/business-analyst/bundle.yml +0 -0
  115. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/developer/README.md +0 -0
  116. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/developer/bundle.yml +0 -0
  117. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/product-manager/README.md +0 -0
  118. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/product-manager/bundle.yml +0 -0
  119. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/security-researcher/README.md +0 -0
  120. {specify_cli-0.12.12 → specify_cli-0.12.14}/examples/bundles/security-researcher/bundle.yml +0 -0
  121. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  122. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  123. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  124. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  125. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/README.md +0 -0
  126. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  127. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/README.md +0 -0
  128. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/agent-context-config.yml +0 -0
  129. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/agent-context-defaults.json +0 -0
  130. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  131. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/extension.yml +0 -0
  132. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  133. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  134. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
  135. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/bug/README.md +0 -0
  136. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  137. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  138. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/bug/commands/speckit.bug.test.md +0 -0
  139. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/bug/extension.yml +0 -0
  140. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/catalog.json +0 -0
  141. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/README.md +0 -0
  142. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/commands/speckit.git.commit.md +0 -0
  143. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/commands/speckit.git.feature.md +0 -0
  144. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/commands/speckit.git.initialize.md +0 -0
  145. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/commands/speckit.git.remote.md +0 -0
  146. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/commands/speckit.git.validate.md +0 -0
  147. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/config-template.yml +0 -0
  148. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/extension.yml +0 -0
  149. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/git-config.yml +0 -0
  150. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  151. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  152. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/bash/git-common.sh +0 -0
  153. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  154. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  155. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
  156. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  157. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  158. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/selftest/commands/selftest.md +0 -0
  159. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/selftest/extension.yml +0 -0
  160. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/.gitignore +0 -0
  161. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/CHANGELOG.md +0 -0
  162. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/EXAMPLE-README.md +0 -0
  163. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/LICENSE +0 -0
  164. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/README.md +0 -0
  165. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/commands/example.md +0 -0
  166. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/config-template.yml +0 -0
  167. {specify_cli-0.12.12 → specify_cli-0.12.14}/extensions/template/extension.yml +0 -0
  168. {specify_cli-0.12.12 → specify_cli-0.12.14}/integrations/CONTRIBUTING.md +0 -0
  169. {specify_cli-0.12.12 → specify_cli-0.12.14}/integrations/README.md +0 -0
  170. {specify_cli-0.12.12 → specify_cli-0.12.14}/integrations/catalog.community.json +0 -0
  171. {specify_cli-0.12.12 → specify_cli-0.12.14}/integrations/catalog.json +0 -0
  172. {specify_cli-0.12.12 → specify_cli-0.12.14}/media/bootstrap-claude-code.gif +0 -0
  173. {specify_cli-0.12.12 → specify_cli-0.12.14}/media/logo_large.webp +0 -0
  174. {specify_cli-0.12.12 → specify_cli-0.12.14}/media/logo_small.webp +0 -0
  175. {specify_cli-0.12.12 → specify_cli-0.12.14}/media/spec-kit-video-header.jpg +0 -0
  176. {specify_cli-0.12.12 → specify_cli-0.12.14}/media/specify_cli.gif +0 -0
  177. {specify_cli-0.12.12 → specify_cli-0.12.14}/newsletters/2026-April.md +0 -0
  178. {specify_cli-0.12.12 → specify_cli-0.12.14}/newsletters/2026-February.md +0 -0
  179. {specify_cli-0.12.12 → specify_cli-0.12.14}/newsletters/2026-June.md +0 -0
  180. {specify_cli-0.12.12 → specify_cli-0.12.14}/newsletters/2026-March.md +0 -0
  181. {specify_cli-0.12.12 → specify_cli-0.12.14}/newsletters/2026-May.md +0 -0
  182. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/PUBLISHING.md +0 -0
  183. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/README.md +0 -0
  184. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/catalog.json +0 -0
  185. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/README.md +0 -0
  186. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/commands/speckit.constitution.md +0 -0
  187. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/commands/speckit.implement.md +0 -0
  188. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/commands/speckit.plan.md +0 -0
  189. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/commands/speckit.specify.md +0 -0
  190. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/commands/speckit.tasks.md +0 -0
  191. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/lean/preset.yml +0 -0
  192. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/scaffold/README.md +0 -0
  193. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  194. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/scaffold/commands/speckit.specify.md +0 -0
  195. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/scaffold/preset.yml +0 -0
  196. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/scaffold/templates/myext-template.md +0 -0
  197. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/scaffold/templates/spec-template.md +0 -0
  198. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/commands/speckit.specify.md +0 -0
  199. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  200. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/templates/checklist-template.md +0 -0
  201. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/templates/constitution-template.md +0 -0
  202. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/templates/plan-template.md +0 -0
  203. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/templates/spec-template.md +0 -0
  204. {specify_cli-0.12.12 → specify_cli-0.12.14}/presets/self-test/templates/tasks-template.md +0 -0
  205. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/bash/check-prerequisites.sh +0 -0
  206. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/bash/common.sh +0 -0
  207. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/bash/create-new-feature.sh +0 -0
  208. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/bash/setup-plan.sh +0 -0
  209. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/bash/setup-tasks.sh +0 -0
  210. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/powershell/check-prerequisites.ps1 +0 -0
  211. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/powershell/common.ps1 +0 -0
  212. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/powershell/create-new-feature.ps1 +0 -0
  213. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/powershell/setup-plan.ps1 +0 -0
  214. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/powershell/setup-tasks.ps1 +0 -0
  215. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/python/check_prerequisites.py +0 -0
  216. {specify_cli-0.12.12 → specify_cli-0.12.14}/scripts/python/common.py +0 -0
  217. {specify_cli-0.12.12 → specify_cli-0.12.14}/spec-driven.md +0 -0
  218. {specify_cli-0.12.12 → specify_cli-0.12.14}/spec-kit.code-workspace +0 -0
  219. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/__init__.py +0 -0
  220. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_agent_config.py +0 -0
  221. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_assets.py +0 -0
  222. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_console.py +0 -0
  223. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_github_http.py +0 -0
  224. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_init_options.py +0 -0
  225. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_invocation_style.py +0 -0
  226. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_project.py +0 -0
  227. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_toml_string.py +0 -0
  228. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_utils.py +0 -0
  229. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/_version.py +0 -0
  230. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/authentication/__init__.py +0 -0
  231. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/authentication/azure_devops.py +0 -0
  232. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/authentication/base.py +0 -0
  233. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/authentication/config.py +0 -0
  234. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/authentication/github.py +0 -0
  235. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/authentication/http.py +0 -0
  236. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/__init__.py +0 -0
  237. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
  238. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
  239. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/lib/__init__.py +0 -0
  240. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/lib/project.py +0 -0
  241. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/lib/versioning.py +0 -0
  242. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/lib/yamlio.py +0 -0
  243. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/models/__init__.py +0 -0
  244. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/models/catalog.py +0 -0
  245. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/models/manifest.py +0 -0
  246. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/models/records.py +0 -0
  247. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/__init__.py +0 -0
  248. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/adapters.py +0 -0
  249. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
  250. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/conflict.py +0 -0
  251. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/installer.py +0 -0
  252. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/packager.py +0 -0
  253. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/primitives.py +0 -0
  254. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/references.py +0 -0
  255. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/resolver.py +0 -0
  256. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/bundler/services/validator.py +0 -0
  257. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/catalogs.py +0 -0
  258. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/commands/__init__.py +0 -0
  259. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/commands/bundle/__init__.py +0 -0
  260. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/extensions/_commands.py +0 -0
  261. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integration_runtime.py +0 -0
  262. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integration_scaffold.py +0 -0
  263. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integration_state.py +0 -0
  264. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integration_status.py +0 -0
  265. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/__init__.py +0 -0
  266. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/_commands.py +0 -0
  267. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/_install_commands.py +0 -0
  268. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/_migrate_commands.py +0 -0
  269. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/_query_commands.py +0 -0
  270. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
  271. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/agy/__init__.py +0 -0
  272. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/amp/__init__.py +0 -0
  273. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  274. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/base.py +0 -0
  275. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/bob/__init__.py +0 -0
  276. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/catalog.py +0 -0
  277. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/claude/__init__.py +0 -0
  278. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/cline/__init__.py +0 -0
  279. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  280. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/codex/__init__.py +0 -0
  281. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/copilot/__init__.py +0 -0
  282. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  283. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/devin/__init__.py +0 -0
  284. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/firebender/__init__.py +0 -0
  285. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/forge/__init__.py +0 -0
  286. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  287. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/generic/__init__.py +0 -0
  288. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/goose/__init__.py +0 -0
  289. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/hermes/__init__.py +0 -0
  290. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/junie/__init__.py +0 -0
  291. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  292. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/kimi/__init__.py +0 -0
  293. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  294. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/manifest.py +0 -0
  295. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/omp/__init__.py +0 -0
  296. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  297. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/pi/__init__.py +0 -0
  298. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  299. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  300. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  301. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/shai/__init__.py +0 -0
  302. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  303. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/trae/__init__.py +0 -0
  304. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  305. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/zcode/__init__.py +0 -0
  306. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/integrations/zed/__init__.py +0 -0
  307. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/presets/_commands.py +0 -0
  308. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/shared_infra.py +0 -0
  309. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/__init__.py +0 -0
  310. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/_commands.py +0 -0
  311. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/base.py +0 -0
  312. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/catalog.py +0 -0
  313. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/engine.py +0 -0
  314. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/__init__.py +0 -0
  315. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
  316. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
  317. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
  318. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
  319. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
  320. {specify_cli-0.12.12 → specify_cli-0.12.14}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
  321. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/checklist-template.md +0 -0
  322. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/analyze.md +0 -0
  323. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/checklist.md +0 -0
  324. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/clarify.md +0 -0
  325. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/converge.md +0 -0
  326. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/implement.md +0 -0
  327. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/plan.md +0 -0
  328. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/specify.md +0 -0
  329. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/tasks.md +0 -0
  330. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/commands/taskstoissues.md +0 -0
  331. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/constitution-template.md +0 -0
  332. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/plan-template.md +0 -0
  333. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/spec-template.md +0 -0
  334. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/tasks-template.md +0 -0
  335. {specify_cli-0.12.12 → specify_cli-0.12.14}/templates/vscode-settings.json +0 -0
  336. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/__init__.py +0 -0
  337. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/auth_helpers.py +0 -0
  338. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/bundler_helpers.py +0 -0
  339. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/conftest.py +0 -0
  340. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/contract/test_bundle_cli.py +0 -0
  341. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/contract/test_catalog_schema.py +0 -0
  342. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/contract/test_manifest_schema.py +0 -0
  343. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/__init__.py +0 -0
  344. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/bug/__init__.py +0 -0
  345. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/bug/test_bug_extension.py +0 -0
  346. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/git/__init__.py +0 -0
  347. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/git/test_git_extension.py +0 -0
  348. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/test_agent_context_cli_free.py +0 -0
  349. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/test_extension_agent_context.py +0 -0
  350. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
  351. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
  352. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/hooks/TESTING.md +0 -0
  353. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/hooks/plan.md +0 -0
  354. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/hooks/spec.md +0 -0
  355. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/hooks/tasks.md +0 -0
  356. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/http_helpers.py +0 -0
  357. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integration/test_bundler_catalog_stack.py +0 -0
  358. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integration/test_bundler_init_install.py +0 -0
  359. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integration/test_bundler_install_flow.py +0 -0
  360. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integration/test_bundler_local_install.py +0 -0
  361. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integration/test_bundler_offline.py +0 -0
  362. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integration/test_bundler_security_paths.py +0 -0
  363. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/__init__.py +0 -0
  364. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/conftest.py +0 -0
  365. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_base.py +0 -0
  366. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_extra_args.py +0 -0
  367. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_home_isolation.py +0 -0
  368. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_agy.py +0 -0
  369. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_amp.py +0 -0
  370. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_auggie.py +0 -0
  371. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_base_markdown.py +0 -0
  372. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_base_skills.py +0 -0
  373. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_base_toml.py +0 -0
  374. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_base_yaml.py +0 -0
  375. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_bob.py +0 -0
  376. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_catalog.py +0 -0
  377. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_claude.py +0 -0
  378. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_cline.py +0 -0
  379. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_codebuddy.py +0 -0
  380. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_codex.py +0 -0
  381. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_copilot.py +0 -0
  382. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_cursor_agent.py +0 -0
  383. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_devin.py +0 -0
  384. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_firebender.py +0 -0
  385. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_forge.py +0 -0
  386. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_gemini.py +0 -0
  387. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_generic.py +0 -0
  388. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_goose.py +0 -0
  389. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_hermes.py +0 -0
  390. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_junie.py +0 -0
  391. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_kilocode.py +0 -0
  392. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_kimi.py +0 -0
  393. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_lingma.py +0 -0
  394. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_omp.py +0 -0
  395. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_opencode.py +0 -0
  396. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_pi.py +0 -0
  397. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_qodercli.py +0 -0
  398. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_qwen.py +0 -0
  399. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_rovodev.py +0 -0
  400. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_scaffold.py +0 -0
  401. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_shai.py +0 -0
  402. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_state.py +0 -0
  403. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_tabnine.py +0 -0
  404. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_trae.py +0 -0
  405. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_vibe.py +0 -0
  406. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_zcode.py +0 -0
  407. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_integration_zed.py +0 -0
  408. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_manifest.py +0 -0
  409. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
  410. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/self_upgrade_helpers.py +0 -0
  411. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_agent_config_consistency.py +0 -0
  412. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_authentication.py +0 -0
  413. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_branch_numbering.py +0 -0
  414. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_check_prerequisites_paths_only.py +0 -0
  415. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_check_prerequisites_python_parity.py +0 -0
  416. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_check_tool.py +0 -0
  417. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_cli_version.py +0 -0
  418. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_command_template_py_scripts.py +0 -0
  419. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_commands_package.py +0 -0
  420. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_console_imports.py +0 -0
  421. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_extension_registration.py +0 -0
  422. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_extension_update_hardening.py +0 -0
  423. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_github_http.py +0 -0
  424. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_github_workflows.py +0 -0
  425. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_init_dir.py +0 -0
  426. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_init_dir_cli.py +0 -0
  427. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_live_transient_windows.py +0 -0
  428. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_merge.py +0 -0
  429. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_post_process.py +0 -0
  430. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_ps1_encoding.py +0 -0
  431. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_registrar_path_traversal.py +0 -0
  432. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_self_upgrade_detection.py +0 -0
  433. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_self_upgrade_execution.py +0 -0
  434. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_self_upgrade_guidance.py +0 -0
  435. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_self_upgrade_verification.py +0 -0
  436. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_setup_plan_feature_json.py +0 -0
  437. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_setup_plan_no_overwrite.py +0 -0
  438. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_setup_tasks.py +0 -0
  439. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_shared_infra_integrity.py +0 -0
  440. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_timestamp_branches.py +0 -0
  441. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_upgrade.py +0 -0
  442. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_utils.py +0 -0
  443. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_utils_assets_imports.py +0 -0
  444. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_version_imports.py +0 -0
  445. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/test_workflow_run_without_project.py +0 -0
  446. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_adapters.py +0 -0
  447. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_catalog_config.py +0 -0
  448. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_conflict.py +0 -0
  449. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_packager.py +0 -0
  450. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_primitives.py +0 -0
  451. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_records.py +0 -0
  452. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_references.py +0 -0
  453. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_resolver.py +0 -0
  454. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_validator.py +0 -0
  455. {specify_cli-0.12.12 → specify_cli-0.12.14}/tests/unit/test_bundler_versioning.py +0 -0
  456. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/ARCHITECTURE.md +0 -0
  457. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/PUBLISHING.md +0 -0
  458. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/catalog.community.json +0 -0
  459. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/catalog.json +0 -0
  460. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/speckit/workflow.yml +0 -0
  461. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/step-catalog.community.json +0 -0
  462. {specify_cli-0.12.12 → specify_cli-0.12.14}/workflows/step-catalog.json +0 -0
@@ -2,6 +2,37 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [0.12.14] - 2026-07-13
6
+
7
+ ### Changed
8
+
9
+ - [extension] Add Spec Kit Memory extension to community catalog (#3455)
10
+ - Add Test-First Governance preset to community catalog (#3504)
11
+ - Add Autonomous Run Governance preset to community catalog (#3501)
12
+ - fix(workflows): validate command step input/options are mappings (#3262)
13
+ - fix(presets): resolve() honors manifest-declared file: for installed presets (#3351)
14
+ - fix(init): don't block on confirmation for 'init --here' without a TTY (#3236)
15
+ - [extension] Add Quality Gates (Enforcement Layer) extension to community catalog (#3431)
16
+ - fix(integrations): exit cleanly on unbalanced quote in --integration-options (#3457) (#3466)
17
+ - fix(integrations): declare kiro-cli multi-install safe (#3471) (#3485)
18
+ - fix(workflows): fail fan-in step on non-list wait_for instead of crashing (#3482)
19
+ - chore: release 0.12.13, begin 0.12.14.dev0 development (#3498)
20
+
21
+ ## [0.12.13] - 2026-07-13
22
+
23
+ ### Changed
24
+
25
+ - fix(workflows): fail switch step on non-mapping cases instead of crashing (#3481)
26
+ - Cleanup agent-file-template.md (#2579)
27
+ - fix: mark Kiro integration as multi-install safe (#3472)
28
+ - fix: rewrite extension-relative subdir paths in generated command bodies (#3444)
29
+ - fix(templates): point constitution sync checklist at installed command files (#3418)
30
+ - feat(workflows): make shell step timeout configurable (#3327) (#3328)
31
+ - docs: clarify that release tags keep the leading v prefix (#3463)
32
+ - fix(workflows): don't crash on membership test against a non-iterable (#3448)
33
+ - fix(workflows): if-step validate accepts falsy non-list else (#3264)
34
+ - chore: release 0.12.12, begin 0.12.13.dev0 development (#3490)
35
+
5
36
  ## [0.12.12] - 2026-07-13
6
37
 
7
38
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specify-cli
3
- Version: 0.12.12
3
+ Version: 0.12.14
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
@@ -65,7 +65,7 @@ Spec-Driven Development **flips the script** on traditional software development
65
65
 
66
66
  ### 1. Install Specify CLI
67
67
 
68
- Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md)). Replace `vX.Y.Z` with the latest tag from [Releases](https://github.com/github/spec-kit/releases):
68
+ Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md)). Replace `vX.Y.Z` with the latest release tag from [Releases](https://github.com/github/spec-kit/releases) — keep the leading `v` (for example, `v0.12.11`, not `0.12.11`):
69
69
 
70
70
  ```bash
71
71
  uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
@@ -45,7 +45,7 @@ Spec-Driven Development **flips the script** on traditional software development
45
45
 
46
46
  ### 1. Install Specify CLI
47
47
 
48
- Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md)). Replace `vX.Y.Z` with the latest tag from [Releases](https://github.com/github/spec-kit/releases):
48
+ Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md)). Replace `vX.Y.Z` with the latest release tag from [Releases](https://github.com/github/spec-kit/releases) — keep the leading `v` (for example, `v0.12.11`, not `0.12.11`):
49
49
 
50
50
  ```bash
51
51
  uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
@@ -98,6 +98,7 @@ The following community-contributed extensions are available in [`catalog.commun
98
98
  | 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) |
99
99
  | 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) |
100
100
  | 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) |
101
+ | 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) |
101
102
  | 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) |
102
103
  | Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss-Projects/spec-kit-ralph) |
103
104
  | Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
@@ -119,6 +120,7 @@ The following community-contributed extensions are available in [`catalog.commun
119
120
  | Spec Diagram | Auto-generate Mermaid diagrams of SDD workflow state, feature progress, and task dependencies | `visibility` | Read-only | [spec-kit-diagram-](https://github.com/Quratulain-bilal/spec-kit-diagram-) |
120
121
  | Spec Kit Discovery Extension | Run technical discovery commands for feasibility, technology selection, scenario-specific technical decisions, legacy codebase assessment, implementation understanding, and proof-of-concept validation | `process` | Read+Write | [spec-kit-discovery](https://github.com/bigsmartben/spec-kit-discovery) |
121
122
  | Spec Kit Figma | Agent-agnostic SpecKit extension that grounds spec, plan & task generation in Figma design context — REST + optional MCP, single/mono/multi-repo, macOS/Linux/Windows. | `integration` | Read+Write | [spec-kit-figma](https://github.com/Fyloss/spec-kit-figma) |
123
+ | Spec Kit Memory | Recalls prior specs and decisions from configurable memory tools (e.g. memsearch) before SDLC stages, so planning and specification start from what the project already knows | `docs` | Read+Write | [spec-kit-memory](https://github.com/zaytsevand/spec-kit-memory) |
122
124
  | Spec Kit Preview | Generate evidence-backed low, mid, or high fidelity previews from Spec Kit artifacts as Markdown or self-contained HTML | `docs` | Read+Write | [spec-kit-preview](https://github.com/bigsmartben/spec-kit-preview) |
123
125
  | Spec Kit Schedule | Optimal multi-agent task scheduling via CP-SAT — DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output | `process` | Read+Write | [spec-kit-schedule](https://github.com/jfranc38/spec-kit-schedule) |
124
126
  | Spec Kit TLDR | Render a feature's spec.md / plan.md into a review-oriented TLDR (self-contained HTML dashboard + PR-native Markdown) that surfaces risks for faster PR review. | `visibility` | Read+Write | [speckit-tldr](https://github.com/qurore/speckit-tldr) |
@@ -11,6 +11,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
11
11
  | Agent Parity Governance | Adds shared-guidance parity, audit-ready Spec-Kit run evidence, and agent-neutral model-routing guidance across a project's declared AI-agent instruction surfaces so agent guidance does not drift. | 6 templates, 3 commands | — | [spec-kit-preset-agent-parity-governance](https://github.com/hindermath/spec-kit-preset-agent-parity-governance) |
12
12
  | AIDE In-Place Migration | Adapts the AIDE extension workflow for in-place technology migrations (X → Y pattern) — adds migration objectives, verification gates, knowledge documents, and behavioral equivalence criteria | 2 templates, 8 commands | AIDE extension | [spec-kit-presets](https://github.com/mnriem/spec-kit-presets) |
13
13
  | Architecture Governance | Adds secure software architecture, STRIDE+CAPEC threat modeling, arc42 security cross-cutting concepts, S-ADRs, Zero Trust applicability, OWASP SAMM governance, BSI C3A cloud autonomy, BSI C5 cloud compliance assurance, and audit-ready Spec Kit run evidence | 13 templates, 3 commands | — | [spec-kit-preset-architecture-governance](https://github.com/hindermath/spec-kit-preset-architecture-governance) |
14
+ | Autonomous Run Governance | Adds permission-bounded, evidence-first governance for autonomous Spec Kit delivery, convergence, resume, closeout, and retrospective learning. | 10 templates, 2 commands | — | [spec-kit-preset-autonomous-run-governance](https://github.com/hindermath/spec-kit-preset-autonomous-run-governance) |
14
15
  | Canon Core | Adapts original Spec Kit workflow to work together with Canon extension | 2 templates, 8 commands | — | [spec-kit-canon](https://github.com/maximiliamus/spec-kit-canon) |
15
16
  | Claude AskUserQuestion | Upgrades `/speckit.clarify` and `/speckit.checklist` on Claude Code from Markdown-table prompts to the native AskUserQuestion picker, with a recommended option and reasoning on every question | 2 commands | — | [spec-kit-preset-claude-ask-questions](https://github.com/0xrafasec/spec-kit-preset-claude-ask-questions) |
16
17
  | Command Density | Compacts the nine core Spec Kit command prompts while preserving scripts, handoffs, placeholders, hook output blocks, and rule structure | 9 commands | — | [spec-kit-preset-command-density](https://github.com/Xopoko/spec-kit-preset-command-density) |
@@ -28,6 +29,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
28
29
  | SicarioSpec Core | Baseline secure-by-default Spec Kit governance profile. | 5 templates | — | [sicario-spec](https://github.com/dfirs1car1o/sicario-spec) |
29
30
  | Spec2Cloud | Spec-driven workflow tuned for shipping to Azure: spec → plan → tasks → implement → deploy | 5 templates, 8 commands | — | [spec2cloud](https://github.com/Azure-Samples/Spec2Cloud) |
30
31
  | Table of Contents Navigation | Adds a navigable Table of Contents to generated spec.md, plan.md, and tasks.md documents | 3 templates, 3 commands | — | [spec-kit-preset-toc-navigation](https://github.com/Quratulain-bilal/spec-kit-preset-toc-navigation) |
32
+ | Test-First Governance | Governs TDD with coverage-complete BDD/ATDD Gherkin scenarios, explicit suite ownership, professional test reports, traceability, and risk-based quality gates. | 10 templates, 8 commands | — | [spec-kit-preset-test-first-governance](https://github.com/ka-zo/spec-kit-preset-test-first-governance) |
31
33
  | VS Code Ask Questions | Enhances the clarify command to use `vscode/askQuestions` for batched interactive questioning. | 1 command | — | [spec-kit-presets](https://github.com/fdcastel/spec-kit-presets) |
32
34
  | Workflow Preset | Behavior-first specification, design artifacts, and agent-native handoff orchestration — adds requirement-phase behavior drafts, formal BDD/UIF/behavior contracts, optional design artifacts, and scoped implementation handoffs with Core Agent, Vertical Planner Agent, and Worker Agent modes | 22 templates, 8 commands | — | [spec-kit-workflow-preset](https://github.com/bigsmartben/spec-kit-workflow-preset) |
33
35
 
@@ -11,7 +11,8 @@ If you want to try Spec Kit without installing it permanently, use `uvx` to run
11
11
  # Create a new project (latest from main)
12
12
  uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
13
13
 
14
- # Or target a specific release (replace vX.Y.Z with a tag from Releases)
14
+ # Or target a specific release (replace vX.Y.Z with a tag from Releases;
15
+ # keep the leading v, e.g. v0.12.11 not 0.12.11)
15
16
  uvx --from git+https://github.com/github/spec-kit.git@vX.Y.Z specify init <PROJECT_NAME>
16
17
 
17
18
  # Initialize in the current directory
@@ -7,7 +7,8 @@
7
7
  Pin a specific release tag for stability (check [Releases](https://github.com/github/spec-kit/releases) for the latest):
8
8
 
9
9
  ```bash
10
- # Install a specific stable release (recommended — replace vX.Y.Z with the latest tag)
10
+ # Install a specific stable release (recommended — replace vX.Y.Z with the
11
+ # latest tag, keeping the leading v, e.g. v0.12.11 not 0.12.11)
11
12
  pipx install git+https://github.com/github/spec-kit.git@vX.Y.Z
12
13
 
13
14
  # Or install latest from main (may include unreleased changes)
@@ -15,7 +15,7 @@
15
15
 
16
16
  ### Persistent Installation (Recommended)
17
17
 
18
- Install once and use everywhere. Replace `vX.Y.Z` with a tag from [Releases](https://github.com/github/spec-kit/releases):
18
+ 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
19
 
20
20
  > [!NOTE]
21
21
  > The command below requires **[uv](https://docs.astral.sh/uv/)**. If you see `command not found: uv`, [install uv first](./install/uv.md).
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": "1.0",
3
- "updated_at": "2026-07-10T00:00:00Z",
3
+ "updated_at": "2026-07-13T00:00:00Z",
4
4
  "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
5
5
  "extensions": {
6
6
  "aide": {
@@ -1427,6 +1427,57 @@
1427
1427
  "created_at": "2026-05-06T00:00:00Z",
1428
1428
  "updated_at": "2026-05-06T00:00:00Z"
1429
1429
  },
1430
+ "gates": {
1431
+ "name": "Quality Gates (Enforcement Layer)",
1432
+ "id": "gates",
1433
+ "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).",
1434
+ "author": "schwichtgit",
1435
+ "version": "0.1.0",
1436
+ "download_url": "https://github.com/schwichtgit/spec-gates/releases/download/v0.1.0/gates-0.1.0.zip",
1437
+ "repository": "https://github.com/schwichtgit/spec-gates",
1438
+ "homepage": "https://github.com/schwichtgit/spec-gates",
1439
+ "documentation": "https://github.com/schwichtgit/spec-gates/blob/main/docs/how-it-works.md",
1440
+ "license": "MIT",
1441
+ "category": "process",
1442
+ "effect": "read-write",
1443
+ "requires": {
1444
+ "speckit_version": ">=0.12.0",
1445
+ "tools": [
1446
+ {
1447
+ "name": "jq",
1448
+ "required": true
1449
+ },
1450
+ {
1451
+ "name": "git",
1452
+ "required": true
1453
+ },
1454
+ {
1455
+ "name": "node",
1456
+ "required": false
1457
+ },
1458
+ {
1459
+ "name": "shellcheck",
1460
+ "required": false
1461
+ }
1462
+ ]
1463
+ },
1464
+ "provides": {
1465
+ "commands": 5,
1466
+ "hooks": 1
1467
+ },
1468
+ "tags": [
1469
+ "quality",
1470
+ "enforcement",
1471
+ "hooks",
1472
+ "ci",
1473
+ "governance"
1474
+ ],
1475
+ "verified": false,
1476
+ "downloads": 0,
1477
+ "stars": 0,
1478
+ "created_at": "2026-07-09T00:00:00Z",
1479
+ "updated_at": "2026-07-13T00:00:00Z"
1480
+ },
1430
1481
  "github-issues": {
1431
1482
  "name": "GitHub Issues Integration 1",
1432
1483
  "id": "github-issues",
@@ -2217,6 +2268,42 @@
2217
2268
  "created_at": "2026-05-08T00:00:00Z",
2218
2269
  "updated_at": "2026-05-08T00:00:00Z"
2219
2270
  },
2271
+ "memory": {
2272
+ "name": "Spec Kit Memory",
2273
+ "id": "memory",
2274
+ "description": "Recalls prior specs and decisions from configurable memory tools (e.g. memsearch) before SDLC stages, so planning and specification start from what the project already knows.",
2275
+ "author": "Andrey Zaytsev",
2276
+ "version": "0.3.0",
2277
+ "download_url": "https://github.com/zaytsevand/spec-kit-memory/archive/refs/tags/v0.3.0.zip",
2278
+ "repository": "https://github.com/zaytsevand/spec-kit-memory",
2279
+ "homepage": "https://github.com/zaytsevand/spec-kit-memory",
2280
+ "documentation": "https://github.com/zaytsevand/spec-kit-memory/blob/main/README.md",
2281
+ "changelog": "",
2282
+ "license": "MIT",
2283
+ "category": "docs",
2284
+ "effect": "read-write",
2285
+ "requires": {
2286
+ "speckit_version": ">=0.2.0",
2287
+ "tools": [
2288
+ { "name": "memsearch", "required": false }
2289
+ ]
2290
+ },
2291
+ "provides": {
2292
+ "commands": 2,
2293
+ "hooks": 3
2294
+ },
2295
+ "tags": [
2296
+ "memory",
2297
+ "recall",
2298
+ "research",
2299
+ "memsearch"
2300
+ ],
2301
+ "verified": false,
2302
+ "downloads": 0,
2303
+ "stars": 0,
2304
+ "created_at": "2026-07-10T00:00:00Z",
2305
+ "updated_at": "2026-07-10T00:00:00Z"
2306
+ },
2220
2307
  "memory-loader": {
2221
2308
  "name": "Memory Loader",
2222
2309
  "id": "memory-loader",
@@ -158,8 +158,7 @@ presets/
158
158
  ├── plan-template.md
159
159
  ├── tasks-template.md
160
160
  ├── checklist-template.md
161
- ├── constitution-template.md
162
- └── agent-file-template.md
161
+ └── constitution-template.md
163
162
  ```
164
163
 
165
164
  ## Module Structure
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": "1.0",
3
- "updated_at": "2026-06-30T00:00:00Z",
3
+ "updated_at": "2026-07-13T00:00:00Z",
4
4
  "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/presets/catalog.community.json",
5
5
  "presets": {
6
6
  "a11y-governance": {
@@ -131,6 +131,34 @@
131
131
  "created_at": "2026-04-27T00:00:00Z",
132
132
  "updated_at": "2026-06-14T00:00:00Z"
133
133
  },
134
+ "autonomous-run-governance": {
135
+ "name": "Autonomous Run Governance",
136
+ "id": "autonomous-run-governance",
137
+ "version": "0.1.1",
138
+ "description": "Adds permission-bounded, evidence-first governance for autonomous Spec Kit delivery, convergence, resume, closeout, and retrospective learning.",
139
+ "author": "Thorsten Hindermann",
140
+ "repository": "https://github.com/hindermath/spec-kit-preset-autonomous-run-governance",
141
+ "download_url": "https://github.com/hindermath/spec-kit-preset-autonomous-run-governance/archive/refs/tags/v0.1.1.zip",
142
+ "homepage": "https://github.com/hindermath/spec-kit-preset-autonomous-run-governance",
143
+ "documentation": "https://github.com/hindermath/spec-kit-preset-autonomous-run-governance/blob/main/README.md",
144
+ "license": "MIT",
145
+ "requires": {
146
+ "speckit_version": ">=0.8.3"
147
+ },
148
+ "provides": {
149
+ "templates": 10,
150
+ "commands": 2
151
+ },
152
+ "tags": [
153
+ "autonomous",
154
+ "governance",
155
+ "evidence",
156
+ "permissions",
157
+ "retrospective"
158
+ ],
159
+ "created_at": "2026-07-13T00:00:00Z",
160
+ "updated_at": "2026-07-13T00:00:00Z"
161
+ },
134
162
  "canon-core": {
135
163
  "name": "Canon Core",
136
164
  "id": "canon-core",
@@ -618,6 +646,34 @@
618
646
  "created_at": "2026-04-30T00:00:00Z",
619
647
  "updated_at": "2026-04-30T00:00:00Z"
620
648
  },
649
+ "test-first-governance": {
650
+ "name": "Test-First Governance",
651
+ "id": "test-first-governance",
652
+ "version": "1.3.0",
653
+ "description": "Governs TDD with coverage-complete BDD/ATDD Gherkin scenarios, explicit suite ownership, professional test reports, traceability, and risk-based quality gates.",
654
+ "author": "Zoltán Katona, PhD",
655
+ "repository": "https://github.com/ka-zo/spec-kit-preset-test-first-governance",
656
+ "download_url": "https://github.com/ka-zo/spec-kit-preset-test-first-governance/archive/refs/tags/1.3.0.zip",
657
+ "homepage": "https://github.com/ka-zo/spec-kit-preset-test-first-governance",
658
+ "documentation": "https://github.com/ka-zo/spec-kit-preset-test-first-governance/blob/main/README.md",
659
+ "license": "MIT",
660
+ "requires": {
661
+ "speckit_version": ">=0.12.11"
662
+ },
663
+ "provides": {
664
+ "templates": 10,
665
+ "commands": 8
666
+ },
667
+ "tags": [
668
+ "tdd",
669
+ "bdd",
670
+ "atdd",
671
+ "quality-gates",
672
+ "traceability"
673
+ ],
674
+ "created_at": "2026-07-13T00:00:00Z",
675
+ "updated_at": "2026-07-13T00:00:00Z"
676
+ },
621
677
  "toc-navigation": {
622
678
  "name": "Table of Contents Navigation",
623
679
  "id": "toc-navigation",
@@ -44,12 +44,6 @@ provides:
44
44
  description: "Self-test constitution template"
45
45
  replaces: "constitution-template"
46
46
 
47
- - type: "template"
48
- name: "agent-file-template"
49
- file: "templates/agent-file-template.md"
50
- description: "Self-test agent file template"
51
- replaces: "agent-file-template"
52
-
53
47
  - type: "command"
54
48
  name: "speckit.specify"
55
49
  file: "commands/speckit.specify.md"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "specify-cli"
3
- version = "0.12.12"
3
+ version = "0.12.14"
4
4
  description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -213,6 +213,52 @@ class CommandRegistrar:
213
213
  ".specify.specify/", ".specify/"
214
214
  )
215
215
 
216
+ @staticmethod
217
+ def rewrite_extension_paths(
218
+ text: str, extension_id: str, extension_dir: Path
219
+ ) -> str:
220
+ """Rewrite extension-relative paths to their installed locations.
221
+
222
+ Extension command bodies reference bundled files relative to the
223
+ extension root (e.g. ``agents/control/commander.md``). After install
224
+ those files live under ``.specify/extensions/<id>/``, so bare
225
+ references would resolve against the workspace root and never be
226
+ found (#2101).
227
+
228
+ Only directories that actually exist inside *extension_dir* are
229
+ rewritten, keeping the behaviour conservative and avoiding false
230
+ positives on prose. ``commands`` (slash-command sources), ``specs``
231
+ (user project artifacts) and dot-directories are never rewritten.
232
+ """
233
+ if not isinstance(text, str) or not text:
234
+ return text
235
+
236
+ skip = {"commands", ".git", "specs"}
237
+ try:
238
+ subdirs = [
239
+ entry.name
240
+ for entry in extension_dir.iterdir()
241
+ if entry.is_dir()
242
+ and entry.name not in skip
243
+ and not entry.name.startswith(".")
244
+ ]
245
+ except OSError:
246
+ return text
247
+
248
+ for subdir in subdirs:
249
+ # Only rewrite relative references (subdir/... or ./subdir/...);
250
+ # absolute paths like /subdir/... keep their meaning. Use a
251
+ # callable replacement: subdir/extension_id come from the
252
+ # filesystem and could contain backslashes or "\1"-like
253
+ # sequences, which would corrupt a string replacement template.
254
+ replacement = f".specify/extensions/{extension_id}/{subdir}/"
255
+ text = re.sub(
256
+ r'(^|[\s`"\'(])(?:\./)?' + re.escape(subdir) + "/",
257
+ lambda m: m.group(1) + replacement,
258
+ text,
259
+ )
260
+ return text
261
+
216
262
  def render_markdown_command(
217
263
  self, frontmatter: dict, body: str, source_id: str, context_note: str = None
218
264
  ) -> str:
@@ -639,6 +685,9 @@ class CommandRegistrar:
639
685
  frontmatter[key] = core_frontmatter[key]
640
686
  frontmatter.pop("strategy", None)
641
687
 
688
+ if extension_id:
689
+ body = self.rewrite_extension_paths(body, extension_id, source_root)
690
+
642
691
  frontmatter = self._adjust_script_paths(
643
692
  frontmatter, extension_id=extension_id
644
693
  )
@@ -220,16 +220,45 @@ def register(app: typer.Typer) -> None:
220
220
  console.print(
221
221
  f"[yellow]Warning:[/yellow] Current directory is not empty ({len(existing_items)} items)"
222
222
  )
223
- console.print(
224
- "[yellow]Template files will be merged with existing content and may overwrite existing files[/yellow]"
225
- )
226
223
  if force:
224
+ # Proceeding: the merge/overwrite warning is accurate here.
225
+ console.print(
226
+ "[yellow]Template files will be merged with existing content and may overwrite existing files[/yellow]"
227
+ )
227
228
  console.print(
228
229
  "[cyan]--force supplied: skipping confirmation and proceeding with merge[/cyan]"
229
230
  )
230
231
  else:
231
- response = typer.confirm("Do you want to continue?")
232
- if not response:
232
+ # Fold the merge risk into the confirmation prompt rather than
233
+ # printing it unconditionally first: on the EOF/no-input path
234
+ # below the command exits without changing anything, so a
235
+ # standalone "will be merged" line would mislead. Interactive
236
+ # users still see the risk as part of the question.
237
+ #
238
+ # Call typer.confirm normally so piped y/n is honored — e.g.
239
+ # `echo y | specify init --here` keeps reaching the
240
+ # non-destructive preserve-merge path.
241
+ try:
242
+ proceed = typer.confirm(
243
+ "Template files will be merged with existing content "
244
+ "and may overwrite existing files. Do you want to continue?"
245
+ )
246
+ except (typer.Abort, EOFError):
247
+ # typer.confirm raises Abort for BOTH an interactive Ctrl+C
248
+ # and an EOF on closed/empty stdin. Distinguish them: a real
249
+ # TTY cancellation is a normal exit (0, "cancelled"), while a
250
+ # missing-input EOF (non-interactive) becomes an actionable
251
+ # error pointing at --force.
252
+ if _stdin_is_interactive():
253
+ console.print("[yellow]Operation cancelled[/yellow]")
254
+ raise typer.Exit(0) from None
255
+ console.print(
256
+ "[red]Error:[/red] Current directory is not empty and no "
257
+ "confirmation input is available. Re-run with "
258
+ "[bold]--force[/bold] to merge into it."
259
+ )
260
+ raise typer.Exit(1) from None
261
+ if not proceed:
233
262
  console.print("[yellow]Operation cancelled[/yellow]")
234
263
  raise typer.Exit(0)
235
264
  else:
@@ -1078,6 +1078,11 @@ class ExtensionManager:
1078
1078
  frontmatter = registrar._adjust_script_paths(
1079
1079
  frontmatter, extension_id=manifest.id
1080
1080
  )
1081
+ # Mirror the register_commands() rewrite (#2101): resolve
1082
+ # extension-relative subdir references (agents/, knowledge-base/,
1083
+ # etc.) to their installed .specify/extensions/<id>/ location
1084
+ # before the generic placeholder/path resolution below.
1085
+ body = registrar.rewrite_extension_paths(body, manifest.id, extension_dir)
1081
1086
  body = registrar.resolve_skill_placeholders(
1082
1087
  selected_ai, frontmatter, body, self.project_root, extension_id=manifest.id
1083
1088
  )
@@ -190,7 +190,15 @@ def _parse_integration_options(integration: Any, raw_options: str) -> dict[str,
190
190
  """
191
191
  import shlex
192
192
  parsed: dict[str, Any] = {}
193
- tokens = shlex.split(raw_options)
193
+ try:
194
+ tokens = shlex.split(raw_options)
195
+ except ValueError as exc:
196
+ # An unbalanced quote (e.g. --integration-options='--commands-dir "foo')
197
+ # makes shlex raise "No closing quotation". Translate it into the same
198
+ # clean exit-1 UX as every other bad-input path below rather than
199
+ # letting a raw traceback escape.
200
+ console.print(f"[red]Error:[/red] Could not parse integration options: {exc}.")
201
+ raise typer.Exit(1)
194
202
  declared_options = list(integration.options())
195
203
  declared = {opt.name.lstrip("-"): opt for opt in declared_options}
196
204
  allowed = ", ".join(sorted(opt.name for opt in declared_options))
@@ -13,6 +13,7 @@ _KIRO_ARG_FALLBACK = "(the user will provide the argument in this conversation)"
13
13
 
14
14
  class KiroCliIntegration(MarkdownIntegration):
15
15
  key = "kiro-cli"
16
+ multi_install_safe = True
16
17
  config = {
17
18
  "name": "Kiro CLI",
18
19
  "folder": ".kiro/",
@@ -26,3 +27,10 @@ class KiroCliIntegration(MarkdownIntegration):
26
27
  "args": _KIRO_ARG_FALLBACK,
27
28
  "extension": ".md",
28
29
  }
30
+
31
+ # Kiro CLI keeps everything under a static, isolated agent root
32
+ # (``.kiro/`` with commands in ``.kiro/prompts``) that no other
33
+ # integration writes to, so it is safe to install alongside others
34
+ # (issue #3471). The registry's multi-install-safe contract tests
35
+ # enforce that isolation for every integration setting this flag.
36
+ multi_install_safe = True