specify-cli 0.11.9__tar.gz → 0.12.0__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 (451) hide show
  1. {specify_cli-0.11.9 → specify_cli-0.12.0}/.devcontainer/post-create.sh +1 -1
  2. specify_cli-0.12.0/.github/ISSUE_TEMPLATE/bundle_submission.yml +293 -0
  3. {specify_cli-0.11.9 → specify_cli-0.12.0}/AGENTS.md +8 -11
  4. {specify_cli-0.11.9 → specify_cli-0.12.0}/CHANGELOG.md +31 -0
  5. {specify_cli-0.11.9 → specify_cli-0.12.0}/PKG-INFO +7 -4
  6. {specify_cli-0.11.9 → specify_cli-0.12.0}/README.md +6 -3
  7. specify_cli-0.12.0/docs/community/bundles.md +53 -0
  8. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/community/overview.md +7 -1
  9. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/guides/evolving-specs.md +2 -0
  10. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/installation.md +8 -1
  11. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/quickstart.md +10 -2
  12. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/bundles.md +6 -0
  13. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/workflows.md +1 -0
  14. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/toc.yml +2 -0
  15. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/agent-context/README.md +8 -7
  16. specify_cli-0.12.0/extensions/agent-context/agent-context-defaults.json +42 -0
  17. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/agent-context/scripts/bash/update-agent-context.sh +108 -16
  18. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +90 -0
  19. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/catalog.community.json +5 -5
  20. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +3 -2
  21. {specify_cli-0.11.9 → specify_cli-0.12.0}/pyproject.toml +1 -1
  22. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/powershell/common.ps1 +7 -1
  23. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/powershell/create-new-feature.ps1 +12 -4
  24. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/powershell/setup-plan.ps1 +7 -0
  25. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/__init__.py +1 -77
  26. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/agents.py +0 -31
  27. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/catalogs.py +4 -1
  28. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/commands/init.py +0 -44
  29. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/extensions/_commands.py +27 -3
  30. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integration_scaffold.py +1 -7
  31. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/_helpers.py +6 -56
  32. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/agy/__init__.py +0 -1
  33. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/amp/__init__.py +0 -1
  34. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/auggie/__init__.py +0 -1
  35. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/base.py +16 -549
  36. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/bob/__init__.py +0 -1
  37. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/claude/__init__.py +0 -1
  38. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/cline/__init__.py +0 -1
  39. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/codebuddy/__init__.py +1 -2
  40. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/codex/__init__.py +0 -1
  41. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/copilot/__init__.py +0 -7
  42. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -1
  43. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/devin/__init__.py +0 -1
  44. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/firebender/__init__.py +2 -3
  45. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/forge/__init__.py +0 -5
  46. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/gemini/__init__.py +0 -1
  47. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/generic/__init__.py +0 -5
  48. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/goose/__init__.py +0 -1
  49. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/hermes/__init__.py +1 -9
  50. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/iflow/__init__.py +0 -1
  51. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/junie/__init__.py +0 -1
  52. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/kilocode/__init__.py +0 -1
  53. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/kimi/__init__.py +3 -121
  54. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -1
  55. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/lingma/__init__.py +0 -1
  56. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/omp/__init__.py +0 -1
  57. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/opencode/__init__.py +0 -1
  58. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/pi/__init__.py +1 -2
  59. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/qodercli/__init__.py +0 -1
  60. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/qwen/__init__.py +0 -1
  61. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/roo/__init__.py +0 -1
  62. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/rovodev/__init__.py +1 -3
  63. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/shai/__init__.py +0 -1
  64. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/tabnine/__init__.py +0 -1
  65. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/trae/__init__.py +0 -1
  66. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/vibe/__init__.py +0 -1
  67. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/windsurf/__init__.py +0 -1
  68. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/zcode/__init__.py +0 -1
  69. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/zed/__init__.py +0 -1
  70. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/presets/__init__.py +4 -1
  71. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/engine.py +40 -1
  72. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/expressions.py +60 -24
  73. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/gate/__init__.py +8 -1
  74. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/plan.md +2 -5
  75. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/extensions/git/test_git_extension.py +36 -0
  76. specify_cli-0.12.0/tests/extensions/test_agent_context_cli_free.py +57 -0
  77. specify_cli-0.12.0/tests/extensions/test_extension_agent_context.py +873 -0
  78. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/conftest.py +0 -1
  79. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_base.py +0 -1
  80. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_cli.py +5 -12
  81. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_extra_args.py +0 -5
  82. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_agy.py +0 -1
  83. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_amp.py +0 -1
  84. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_auggie.py +0 -1
  85. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_base_markdown.py +27 -74
  86. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_base_skills.py +30 -57
  87. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_base_toml.py +27 -73
  88. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_base_yaml.py +27 -73
  89. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_bob.py +0 -1
  90. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_catalog.py +16 -0
  91. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_claude.py +16 -48
  92. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_cline.py +0 -16
  93. specify_cli-0.12.0/tests/integrations/test_integration_codebuddy.py +21 -0
  94. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_codex.py +24 -50
  95. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_copilot.py +12 -50
  96. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_cursor_agent.py +0 -78
  97. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_devin.py +0 -1
  98. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_firebender.py +0 -1
  99. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_forge.py +8 -12
  100. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_gemini.py +0 -1
  101. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_generic.py +9 -57
  102. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_goose.py +0 -1
  103. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_hermes.py +3 -8
  104. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_iflow.py +0 -1
  105. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_junie.py +0 -1
  106. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_kilocode.py +0 -1
  107. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_kimi.py +0 -207
  108. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_kiro_cli.py +0 -1
  109. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_lingma.py +0 -1
  110. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_omp.py +0 -1
  111. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_opencode.py +0 -1
  112. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_pi.py +0 -1
  113. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_qodercli.py +0 -1
  114. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_qwen.py +0 -1
  115. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_roo.py +0 -1
  116. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_rovodev.py +2 -11
  117. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_shai.py +0 -1
  118. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_tabnine.py +0 -1
  119. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_trae.py +0 -1
  120. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_vibe.py +0 -1
  121. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_windsurf.py +0 -1
  122. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_zcode.py +0 -1
  123. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_zed.py +0 -1
  124. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_registry.py +0 -43
  125. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_extensions.py +99 -3
  126. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_presets.py +20 -0
  127. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_setup_plan_no_overwrite.py +22 -0
  128. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_setup_tasks.py +51 -0
  129. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_timestamp_branches.py +51 -0
  130. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_workflows.py +237 -0
  131. specify_cli-0.11.9/tests/extensions/test_extension_agent_context.py +0 -1235
  132. specify_cli-0.11.9/tests/integrations/test_integration_codebuddy.py +0 -11
  133. {specify_cli-0.11.9 → specify_cli-0.12.0}/.devcontainer/devcontainer.json +0 -0
  134. {specify_cli-0.11.9 → specify_cli-0.12.0}/.editorconfig +0 -0
  135. {specify_cli-0.11.9 → specify_cli-0.12.0}/.gitattributes +0 -0
  136. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/CODEOWNERS +0 -0
  137. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
  138. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  139. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  140. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  141. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  142. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  143. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  144. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/aw/actions-lock.json +0 -0
  145. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/dependabot.yml +0 -0
  146. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/skills/add-community-extension/SKILL.md +0 -0
  147. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/RELEASE-PROCESS.md +0 -0
  148. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/add-community-extension.lock.yml +0 -0
  149. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/add-community-extension.md +0 -0
  150. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/add-community-preset.lock.yml +0 -0
  151. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/add-community-preset.md +0 -0
  152. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/bug-assess.lock.yml +0 -0
  153. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/bug-assess.md +0 -0
  154. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/catalog-assign.yml +0 -0
  155. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/codeql.yml +0 -0
  156. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/docs.yml +0 -0
  157. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/lint.yml +0 -0
  158. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/publish-pypi.yml +0 -0
  159. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/release-trigger.yml +0 -0
  160. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/release.yml +0 -0
  161. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/stale.yml +0 -0
  162. {specify_cli-0.11.9 → specify_cli-0.12.0}/.github/workflows/test.yml +0 -0
  163. {specify_cli-0.11.9 → specify_cli-0.12.0}/.gitignore +0 -0
  164. {specify_cli-0.11.9 → specify_cli-0.12.0}/.markdownlint-cli2.jsonc +0 -0
  165. {specify_cli-0.11.9 → specify_cli-0.12.0}/.zenodo.json +0 -0
  166. {specify_cli-0.11.9 → specify_cli-0.12.0}/CITATION.cff +0 -0
  167. {specify_cli-0.11.9 → specify_cli-0.12.0}/CODE_OF_CONDUCT.md +0 -0
  168. {specify_cli-0.11.9 → specify_cli-0.12.0}/CONTRIBUTING.md +0 -0
  169. {specify_cli-0.11.9 → specify_cli-0.12.0}/DEVELOPMENT.md +0 -0
  170. {specify_cli-0.11.9 → specify_cli-0.12.0}/LICENSE +0 -0
  171. {specify_cli-0.11.9 → specify_cli-0.12.0}/SECURITY.md +0 -0
  172. {specify_cli-0.11.9 → specify_cli-0.12.0}/SUPPORT.md +0 -0
  173. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/.gitignore +0 -0
  174. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/README.md +0 -0
  175. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/community/extensions.md +0 -0
  176. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/community/friends.md +0 -0
  177. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/community/presets.md +0 -0
  178. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/community/walkthroughs.md +0 -0
  179. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/concepts/complex-features.md +0 -0
  180. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/concepts/sdd.md +0 -0
  181. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/concepts/spec-persistence.md +0 -0
  182. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/docfx.json +0 -0
  183. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/guides/monorepo.md +0 -0
  184. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/index.md +0 -0
  185. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/install/air-gapped.md +0 -0
  186. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/install/one-time.md +0 -0
  187. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/install/pipx.md +0 -0
  188. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/install/uv.md +0 -0
  189. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/local-development.md +0 -0
  190. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/authentication.md +0 -0
  191. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/core.md +0 -0
  192. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/extensions.md +0 -0
  193. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/integrations.md +0 -0
  194. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/overview.md +0 -0
  195. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/reference/presets.md +0 -0
  196. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/template/public/main.css +0 -0
  197. {specify_cli-0.11.9 → specify_cli-0.12.0}/docs/upgrade.md +0 -0
  198. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/business-analyst/README.md +0 -0
  199. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/business-analyst/bundle.yml +0 -0
  200. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/developer/README.md +0 -0
  201. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/developer/bundle.yml +0 -0
  202. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/product-manager/README.md +0 -0
  203. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/product-manager/bundle.yml +0 -0
  204. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/security-researcher/README.md +0 -0
  205. {specify_cli-0.11.9 → specify_cli-0.12.0}/examples/bundles/security-researcher/bundle.yml +0 -0
  206. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  207. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  208. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  209. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  210. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/README.md +0 -0
  211. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  212. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/agent-context/agent-context-config.yml +0 -0
  213. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  214. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/agent-context/extension.yml +0 -0
  215. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/bug/README.md +0 -0
  216. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  217. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  218. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/bug/commands/speckit.bug.test.md +0 -0
  219. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/bug/extension.yml +0 -0
  220. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/catalog.json +0 -0
  221. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/README.md +0 -0
  222. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/commands/speckit.git.commit.md +0 -0
  223. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/commands/speckit.git.feature.md +0 -0
  224. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/commands/speckit.git.initialize.md +0 -0
  225. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/commands/speckit.git.remote.md +0 -0
  226. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/commands/speckit.git.validate.md +0 -0
  227. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/config-template.yml +0 -0
  228. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/extension.yml +0 -0
  229. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/git-config.yml +0 -0
  230. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  231. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  232. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/bash/git-common.sh +0 -0
  233. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  234. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  235. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  236. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  237. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/selftest/commands/selftest.md +0 -0
  238. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/selftest/extension.yml +0 -0
  239. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/.gitignore +0 -0
  240. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/CHANGELOG.md +0 -0
  241. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/EXAMPLE-README.md +0 -0
  242. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/LICENSE +0 -0
  243. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/README.md +0 -0
  244. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/commands/example.md +0 -0
  245. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/config-template.yml +0 -0
  246. {specify_cli-0.11.9 → specify_cli-0.12.0}/extensions/template/extension.yml +0 -0
  247. {specify_cli-0.11.9 → specify_cli-0.12.0}/integrations/CONTRIBUTING.md +0 -0
  248. {specify_cli-0.11.9 → specify_cli-0.12.0}/integrations/README.md +0 -0
  249. {specify_cli-0.11.9 → specify_cli-0.12.0}/integrations/catalog.community.json +0 -0
  250. {specify_cli-0.11.9 → specify_cli-0.12.0}/integrations/catalog.json +0 -0
  251. {specify_cli-0.11.9 → specify_cli-0.12.0}/media/bootstrap-claude-code.gif +0 -0
  252. {specify_cli-0.11.9 → specify_cli-0.12.0}/media/logo_large.webp +0 -0
  253. {specify_cli-0.11.9 → specify_cli-0.12.0}/media/logo_small.webp +0 -0
  254. {specify_cli-0.11.9 → specify_cli-0.12.0}/media/spec-kit-video-header.jpg +0 -0
  255. {specify_cli-0.11.9 → specify_cli-0.12.0}/media/specify_cli.gif +0 -0
  256. {specify_cli-0.11.9 → specify_cli-0.12.0}/newsletters/2026-April.md +0 -0
  257. {specify_cli-0.11.9 → specify_cli-0.12.0}/newsletters/2026-February.md +0 -0
  258. {specify_cli-0.11.9 → specify_cli-0.12.0}/newsletters/2026-March.md +0 -0
  259. {specify_cli-0.11.9 → specify_cli-0.12.0}/newsletters/2026-May.md +0 -0
  260. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/ARCHITECTURE.md +0 -0
  261. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/PUBLISHING.md +0 -0
  262. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/README.md +0 -0
  263. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/catalog.community.json +0 -0
  264. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/catalog.json +0 -0
  265. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/README.md +0 -0
  266. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/commands/speckit.constitution.md +0 -0
  267. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/commands/speckit.implement.md +0 -0
  268. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/commands/speckit.plan.md +0 -0
  269. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/commands/speckit.specify.md +0 -0
  270. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/commands/speckit.tasks.md +0 -0
  271. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/lean/preset.yml +0 -0
  272. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/scaffold/README.md +0 -0
  273. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  274. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/scaffold/commands/speckit.specify.md +0 -0
  275. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/scaffold/preset.yml +0 -0
  276. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/scaffold/templates/myext-template.md +0 -0
  277. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/scaffold/templates/spec-template.md +0 -0
  278. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/commands/speckit.specify.md +0 -0
  279. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  280. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/preset.yml +0 -0
  281. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/templates/agent-file-template.md +0 -0
  282. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/templates/checklist-template.md +0 -0
  283. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/templates/constitution-template.md +0 -0
  284. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/templates/plan-template.md +0 -0
  285. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/templates/spec-template.md +0 -0
  286. {specify_cli-0.11.9 → specify_cli-0.12.0}/presets/self-test/templates/tasks-template.md +0 -0
  287. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/bash/check-prerequisites.sh +0 -0
  288. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/bash/common.sh +0 -0
  289. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/bash/create-new-feature.sh +0 -0
  290. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/bash/setup-plan.sh +0 -0
  291. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/bash/setup-tasks.sh +0 -0
  292. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/powershell/check-prerequisites.ps1 +0 -0
  293. {specify_cli-0.11.9 → specify_cli-0.12.0}/scripts/powershell/setup-tasks.ps1 +0 -0
  294. {specify_cli-0.11.9 → specify_cli-0.12.0}/spec-driven.md +0 -0
  295. {specify_cli-0.11.9 → specify_cli-0.12.0}/spec-kit.code-workspace +0 -0
  296. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_agent_config.py +0 -0
  297. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_assets.py +0 -0
  298. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_console.py +0 -0
  299. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_github_http.py +0 -0
  300. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_init_options.py +0 -0
  301. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_invocation_style.py +0 -0
  302. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_utils.py +0 -0
  303. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/_version.py +0 -0
  304. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/authentication/__init__.py +0 -0
  305. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/authentication/azure_devops.py +0 -0
  306. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/authentication/base.py +0 -0
  307. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/authentication/config.py +0 -0
  308. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/authentication/github.py +0 -0
  309. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/authentication/http.py +0 -0
  310. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/__init__.py +0 -0
  311. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
  312. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
  313. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/lib/__init__.py +0 -0
  314. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/lib/project.py +0 -0
  315. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/lib/versioning.py +0 -0
  316. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/lib/yamlio.py +0 -0
  317. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/models/__init__.py +0 -0
  318. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/models/catalog.py +0 -0
  319. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/models/manifest.py +0 -0
  320. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/models/records.py +0 -0
  321. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/__init__.py +0 -0
  322. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/adapters.py +0 -0
  323. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
  324. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/conflict.py +0 -0
  325. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/installer.py +0 -0
  326. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/packager.py +0 -0
  327. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/primitives.py +0 -0
  328. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/references.py +0 -0
  329. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/resolver.py +0 -0
  330. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/bundler/services/validator.py +0 -0
  331. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/commands/__init__.py +0 -0
  332. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/commands/bundle/__init__.py +0 -0
  333. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/extensions/__init__.py +0 -0
  334. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integration_runtime.py +0 -0
  335. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integration_state.py +0 -0
  336. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integration_status.py +0 -0
  337. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/__init__.py +0 -0
  338. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/_commands.py +0 -0
  339. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/_install_commands.py +0 -0
  340. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/_migrate_commands.py +0 -0
  341. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/_query_commands.py +0 -0
  342. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
  343. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/catalog.py +0 -0
  344. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/integrations/manifest.py +0 -0
  345. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/presets/_commands.py +0 -0
  346. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/shared_infra.py +0 -0
  347. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/__init__.py +0 -0
  348. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/base.py +0 -0
  349. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/catalog.py +0 -0
  350. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/__init__.py +0 -0
  351. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
  352. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
  353. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
  354. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
  355. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
  356. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
  357. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
  358. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
  359. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
  360. {specify_cli-0.11.9 → specify_cli-0.12.0}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
  361. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/checklist-template.md +0 -0
  362. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/analyze.md +0 -0
  363. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/checklist.md +0 -0
  364. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/clarify.md +0 -0
  365. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/constitution.md +0 -0
  366. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/converge.md +0 -0
  367. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/implement.md +0 -0
  368. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/specify.md +0 -0
  369. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/tasks.md +0 -0
  370. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/commands/taskstoissues.md +0 -0
  371. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/constitution-template.md +0 -0
  372. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/plan-template.md +0 -0
  373. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/spec-template.md +0 -0
  374. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/tasks-template.md +0 -0
  375. {specify_cli-0.11.9 → specify_cli-0.12.0}/templates/vscode-settings.json +0 -0
  376. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/__init__.py +0 -0
  377. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/auth_helpers.py +0 -0
  378. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/bundler_helpers.py +0 -0
  379. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/conftest.py +0 -0
  380. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/contract/test_bundle_cli.py +0 -0
  381. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/contract/test_catalog_schema.py +0 -0
  382. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/contract/test_manifest_schema.py +0 -0
  383. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/extensions/__init__.py +0 -0
  384. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/extensions/bug/__init__.py +0 -0
  385. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/extensions/bug/test_bug_extension.py +0 -0
  386. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/extensions/git/__init__.py +0 -0
  387. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
  388. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/hooks/TESTING.md +0 -0
  389. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/hooks/plan.md +0 -0
  390. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/hooks/spec.md +0 -0
  391. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/hooks/tasks.md +0 -0
  392. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/http_helpers.py +0 -0
  393. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integration/test_bundler_catalog_stack.py +0 -0
  394. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integration/test_bundler_init_install.py +0 -0
  395. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integration/test_bundler_install_flow.py +0 -0
  396. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integration/test_bundler_local_install.py +0 -0
  397. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integration/test_bundler_offline.py +0 -0
  398. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integration/test_bundler_security_paths.py +0 -0
  399. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/__init__.py +0 -0
  400. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_scaffold.py +0 -0
  401. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_state.py +0 -0
  402. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_integration_subcommand.py +0 -0
  403. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/integrations/test_manifest.py +0 -0
  404. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/self_upgrade_helpers.py +0 -0
  405. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_agent_config_consistency.py +0 -0
  406. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_authentication.py +0 -0
  407. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_branch_numbering.py +0 -0
  408. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_check_prerequisites_paths_only.py +0 -0
  409. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_check_tool.py +0 -0
  410. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_cli_version.py +0 -0
  411. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_commands_package.py +0 -0
  412. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_console_imports.py +0 -0
  413. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_extension_registration.py +0 -0
  414. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_extension_skills.py +0 -0
  415. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_extension_update_hardening.py +0 -0
  416. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_github_http.py +0 -0
  417. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_github_workflows.py +0 -0
  418. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_init_dir.py +0 -0
  419. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_live_transient_windows.py +0 -0
  420. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_merge.py +0 -0
  421. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_ps1_encoding.py +0 -0
  422. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_registrar_path_traversal.py +0 -0
  423. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_self_upgrade_detection.py +0 -0
  424. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_self_upgrade_execution.py +0 -0
  425. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_self_upgrade_guidance.py +0 -0
  426. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_self_upgrade_verification.py +0 -0
  427. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_setup_plan_feature_json.py +0 -0
  428. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_shared_infra_integrity.py +0 -0
  429. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_upgrade.py +0 -0
  430. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_utils.py +0 -0
  431. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_utils_assets_imports.py +0 -0
  432. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_version_imports.py +0 -0
  433. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/test_workflow_run_without_project.py +0 -0
  434. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_adapters.py +0 -0
  435. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_catalog_config.py +0 -0
  436. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_conflict.py +0 -0
  437. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_packager.py +0 -0
  438. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_primitives.py +0 -0
  439. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_records.py +0 -0
  440. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_references.py +0 -0
  441. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_resolver.py +0 -0
  442. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_validator.py +0 -0
  443. {specify_cli-0.11.9 → specify_cli-0.12.0}/tests/unit/test_bundler_versioning.py +0 -0
  444. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/ARCHITECTURE.md +0 -0
  445. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/PUBLISHING.md +0 -0
  446. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/README.md +0 -0
  447. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/catalog.community.json +0 -0
  448. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/catalog.json +0 -0
  449. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/speckit/workflow.yml +0 -0
  450. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/step-catalog.community.json +0 -0
  451. {specify_cli-0.11.9 → specify_cli-0.12.0}/workflows/step-catalog.json +0 -0
@@ -56,7 +56,7 @@ run_command "npm install -g @jetbrains/junie-cli@latest"
56
56
  echo "✅ Done"
57
57
 
58
58
  echo -e "\n🤖 Installing Pi Coding Agent..."
59
- run_command "npm install -g @mariozechner/pi-coding-agent@latest"
59
+ run_command "npm install -g @earendil-works/pi-coding-agent@latest"
60
60
  echo "✅ Done"
61
61
 
62
62
  echo -e "\n🤖 Installing Kiro CLI..."
@@ -0,0 +1,293 @@
1
+ name: Bundle Submission
2
+ description: Submit your bundle metadata for community catalog validation
3
+ title: "[Bundle]: Add "
4
+ labels: ["enhancement", "needs-triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for contributing a bundle! This template captures metadata for maintainers to validate formatting, links, component resolution, and installation evidence. Maintainers do not audit, endorse, or support bundle code or installed components.
10
+
11
+ **Before submitting:**
12
+ - Review the [Bundles reference](https://github.com/github/spec-kit/blob/main/docs/reference/bundles.md)
13
+ - Ensure your bundle has a valid `bundle.yml` manifest
14
+ - Create a GitHub release with a versioned bundle artifact
15
+ - Test installation from a downloaded artifact: `specify bundle install ./your-bundle-1.0.0.zip`
16
+ - If you host a bundle catalog, test catalog installation with `specify bundle catalog add <catalog-url> --id <catalog-id> --policy install-allowed` and `specify bundle install <bundle-id>`
17
+ - If your bundle depends on components from non-default catalogs, document those catalog URLs and test installation from a clean project
18
+
19
+ - type: input
20
+ id: bundle-id
21
+ attributes:
22
+ label: Bundle ID
23
+ description: Unique bundle identifier; must start and end with a lowercase letter or digit and may contain lowercase letters, digits, dots, underscores, and hyphens between
24
+ placeholder: "e.g., security-governance-stack"
25
+ validations:
26
+ required: true
27
+
28
+ - type: input
29
+ id: bundle-name
30
+ attributes:
31
+ label: Bundle Name
32
+ description: Human-readable bundle name
33
+ placeholder: "e.g., Security Governance Stack"
34
+ validations:
35
+ required: true
36
+
37
+ - type: input
38
+ id: version
39
+ attributes:
40
+ label: Version
41
+ description: Semantic version number
42
+ placeholder: "e.g., 1.0.0"
43
+ validations:
44
+ required: true
45
+
46
+ - type: input
47
+ id: role
48
+ attributes:
49
+ label: Role or Team
50
+ description: Primary role, team, or persona this bundle provisions
51
+ placeholder: "e.g., security-engineer, product-manager, platform-team"
52
+ validations:
53
+ required: true
54
+
55
+ - type: textarea
56
+ id: description
57
+ attributes:
58
+ label: Description
59
+ description: Brief description of the stack this bundle installs
60
+ placeholder: Installs a security governance stack with compliance presets, review commands, and evidence workflows
61
+ validations:
62
+ required: true
63
+
64
+ - type: input
65
+ id: author
66
+ attributes:
67
+ label: Author
68
+ description: Your name or organization
69
+ placeholder: "e.g., Jane Doe or Acme Corp"
70
+ validations:
71
+ required: true
72
+
73
+ - type: input
74
+ id: repository
75
+ attributes:
76
+ label: Repository URL
77
+ description: GitHub repository URL for your bundle source
78
+ placeholder: "https://github.com/your-org/spec-kit-bundle-your-bundle"
79
+ validations:
80
+ required: true
81
+
82
+ - type: input
83
+ id: download-url
84
+ attributes:
85
+ label: Download URL
86
+ description: URL to the versioned bundle artifact generated by `specify bundle build`
87
+ placeholder: "https://github.com/your-org/spec-kit-bundle-your-bundle/releases/download/v1.0.0/your-bundle-1.0.0.zip"
88
+ validations:
89
+ required: true
90
+
91
+ - type: input
92
+ id: documentation
93
+ attributes:
94
+ label: Documentation URL
95
+ description: Link to documentation that explains what the bundle installs and how to use it
96
+ placeholder: "https://github.com/your-org/spec-kit-bundle-your-bundle/blob/main/README.md"
97
+ validations:
98
+ required: true
99
+
100
+ - type: input
101
+ id: license
102
+ attributes:
103
+ label: License
104
+ description: Open source license type
105
+ placeholder: "e.g., MIT, Apache-2.0"
106
+ validations:
107
+ required: true
108
+
109
+ - type: input
110
+ id: speckit-version
111
+ attributes:
112
+ label: Required Spec Kit Version
113
+ description: Minimum Spec Kit version required by the bundle
114
+ placeholder: "e.g., >=0.9.0"
115
+ validations:
116
+ required: true
117
+
118
+ - type: input
119
+ id: integration
120
+ attributes:
121
+ label: Integration Target (optional)
122
+ description: Integration ID if the bundle pins one; leave empty if integration-agnostic
123
+ placeholder: "e.g., claude, copilot, gemini"
124
+
125
+ - type: textarea
126
+ id: components-provided
127
+ attributes:
128
+ label: Components Provided
129
+ description: List the extensions, presets, workflows, and steps this bundle installs
130
+ placeholder: |
131
+ - extensions: sicario-guard@0.5.1
132
+ - presets: sicario-core@0.5.1, sicario-ai-governance@0.5.1
133
+ - workflows: evidence-review@1.0.0
134
+ - steps: threat-model
135
+ validations:
136
+ required: true
137
+
138
+ - type: textarea
139
+ id: required-catalogs
140
+ attributes:
141
+ label: Required Component Catalogs
142
+ description: List any non-default catalogs users must add before this bundle can resolve its components; enter "None" if every component resolves from built-in or bundled catalogs
143
+ placeholder: |
144
+ - Presets: https://github.com/your-org/your-bundle/releases/download/v1.0.0/presets.json
145
+ - Extensions: https://github.com/your-org/your-bundle/releases/download/v1.0.0/extensions.json
146
+ validations:
147
+ required: true
148
+
149
+ - type: textarea
150
+ id: tags
151
+ attributes:
152
+ label: Tags
153
+ description: 2-5 relevant tags (lowercase, separated by commas)
154
+ placeholder: "security, governance, compliance"
155
+ validations:
156
+ required: true
157
+
158
+ - type: textarea
159
+ id: features
160
+ attributes:
161
+ label: Key Features
162
+ description: List the main capabilities this bundle provides
163
+ placeholder: |
164
+ - Installs evidence-first security governance templates
165
+ - Adds automated bundle verification commands
166
+ - Pins all components to release-tested versions
167
+ validations:
168
+ required: true
169
+
170
+ - type: checkboxes
171
+ id: testing
172
+ attributes:
173
+ label: Testing Checklist
174
+ description: Confirm that your bundle has been tested
175
+ options:
176
+ - label: Validation succeeds with `specify bundle validate --path <bundle-directory>`
177
+ required: true
178
+ - label: Build succeeds with `specify bundle build --path <bundle-directory>` and produces the submitted artifact
179
+ required: true
180
+ - label: Bundle installs successfully from the built artifact
181
+ required: true
182
+ - label: The submitted distribution path was tested end to end, including bundle-ID installation from an install-allowed catalog when a catalog entry is proposed
183
+ required: true
184
+ - label: Installation was tested in a clean Spec Kit project
185
+ required: true
186
+ - label: Required component catalogs are documented and were included in testing, or no extra catalogs are required
187
+ required: true
188
+ - label: Documentation is complete and accurate
189
+ required: true
190
+
191
+ - type: checkboxes
192
+ id: requirements
193
+ attributes:
194
+ label: Submission Requirements
195
+ description: Verify your bundle meets all requirements
196
+ options:
197
+ - label: Valid `bundle.yml` manifest included
198
+ required: true
199
+ - label: README.md explains the bundle's intended role, installed components, and installation steps
200
+ required: true
201
+ - label: LICENSE file included
202
+ required: true
203
+ - label: GitHub release created with a version tag
204
+ required: true
205
+ - label: Bundle ID matches the manifest and follows naming conventions
206
+ required: true
207
+ - label: Every extension, preset, workflow, and step reference is pinned where the manifest requires a version
208
+ required: true
209
+
210
+ - type: textarea
211
+ id: testing-details
212
+ attributes:
213
+ label: Testing Details
214
+ description: Describe how you tested your bundle
215
+ placeholder: |
216
+ **Tested on:**
217
+ - macOS 15 with Spec Kit v0.9.0
218
+ - Ubuntu 24.04 with Spec Kit v0.9.0
219
+
220
+ **Test project:** [Link or description]
221
+
222
+ **Test scenarios:**
223
+ 1. Added required catalogs
224
+ 2. Validated bundle manifest
225
+ 3. Built release artifact
226
+ 4. Installed bundle in a clean project
227
+ 5. Ran the installed commands or workflows
228
+ validations:
229
+ required: true
230
+
231
+ - type: textarea
232
+ id: example-usage
233
+ attributes:
234
+ label: Example Usage
235
+ description: Provide a simple example of installing and using your bundle
236
+ render: markdown
237
+ placeholder: |
238
+ ```bash
239
+ # Add any required component catalogs first
240
+ specify preset catalog add https://github.com/your-org/your-bundle/releases/download/v1.0.0/presets.json --name your-bundle --install-allowed
241
+ specify extension catalog add https://github.com/your-org/your-bundle/releases/download/v1.0.0/extensions.json --name your-bundle --install-allowed
242
+
243
+ # Install the downloaded bundle artifact
244
+ curl -L -o your-bundle-1.0.0.zip https://github.com/your-org/your-bundle/releases/download/v1.0.0/your-bundle-1.0.0.zip
245
+ specify bundle install ./your-bundle-1.0.0.zip
246
+
247
+ # Or test through an install-allowed bundle catalog
248
+ specify bundle catalog add https://github.com/your-org/your-bundle/releases/download/v1.0.0/bundles.json --id your-bundle-catalog --policy install-allowed
249
+ specify bundle install your-bundle
250
+ ```
251
+ validations:
252
+ required: true
253
+
254
+ - type: textarea
255
+ id: catalog-entry
256
+ attributes:
257
+ label: Proposed Catalog Entry
258
+ description: Provide the JSON entry that would appear under the top-level `bundles` object in a bundle catalog (helps reviewers)
259
+ render: json
260
+ placeholder: |
261
+ {
262
+ "your-bundle": {
263
+ "name": "Your Bundle",
264
+ "id": "your-bundle",
265
+ "version": "1.0.0",
266
+ "role": "security-engineer",
267
+ "description": "Brief description of the stack",
268
+ "author": "Your Name",
269
+ "license": "MIT",
270
+ "download_url": "https://github.com/your-org/your-bundle/releases/download/v1.0.0/your-bundle-1.0.0.zip",
271
+ "repository": "https://github.com/your-org/your-bundle",
272
+ "requires": {
273
+ "speckit_version": ">=0.9.0"
274
+ },
275
+ "provides": {
276
+ "extensions": 1,
277
+ "presets": 2,
278
+ "steps": 0,
279
+ "workflows": 1
280
+ },
281
+ "tags": ["security", "governance"],
282
+ "verified": false
283
+ }
284
+ }
285
+ validations:
286
+ required: true
287
+
288
+ - type: textarea
289
+ id: additional-context
290
+ attributes:
291
+ label: Additional Context
292
+ description: Any other information that would help reviewers
293
+ placeholder: Screenshots, demo videos, links to related projects, dependency-resolution notes, etc.
@@ -75,7 +75,6 @@ class WindsurfIntegration(MarkdownIntegration):
75
75
  "args": "$ARGUMENTS",
76
76
  "extension": ".md",
77
77
  }
78
- context_file = ".windsurf/rules/specify-rules.md"
79
78
  ```
80
79
 
81
80
  **TOML agent (Gemini):**
@@ -101,7 +100,6 @@ class GeminiIntegration(TomlIntegration):
101
100
  "args": "{{args}}",
102
101
  "extension": ".toml",
103
102
  }
104
- context_file = "GEMINI.md"
105
103
  ```
106
104
 
107
105
  **Skills agent (Codex):**
@@ -129,7 +127,6 @@ class CodexIntegration(SkillsIntegration):
129
127
  "args": "$ARGUMENTS",
130
128
  "extension": "/SKILL.md",
131
129
  }
132
- context_file = "AGENTS.md"
133
130
 
134
131
  @classmethod
135
132
  def options(cls) -> list[IntegrationOption]:
@@ -150,7 +147,6 @@ class CodexIntegration(SkillsIntegration):
150
147
  | `key` | Class attribute | Unique identifier; for CLI-based integrations (`requires_cli: True`), must match the CLI executable name |
151
148
  | `config` | Class attribute (dict) | Agent metadata: `name`, `folder`, `commands_subdir`, `install_url`, `requires_cli` |
152
149
  | `registrar_config` | Class attribute (dict) | Command output config: `dir`, `format`, `args` placeholder, file `extension` |
153
- | `context_file` | Class attribute (str or None) | Path to agent context/instructions file (e.g., `"CLAUDE.md"`, `".github/copilot-instructions.md"`) |
154
150
 
155
151
  **Key design rule:** For CLI-based integrations (`requires_cli: True`), `key` must be the actual executable name (e.g., `"cursor-agent"` not `"cursor"`). This ensures `shutil.which(key)` works for CLI-tool checks without special-case mappings. IDE-based integrations (`requires_cli: False`) should use their canonical identifier (e.g., `"windsurf"`, `"copilot"`).
156
152
 
@@ -175,9 +171,11 @@ def _register_builtins() -> None:
175
171
 
176
172
  ### 4. Context file behavior
177
173
 
178
- Set `context_file` on the integration class. The base integration setup creates or updates the managed Spec Kit section in that file, and uninstall removes the managed section when appropriate.
174
+ The Specify CLI carries **no agent-context state whatsoever**. Integration classes do **not** declare a `context_file`, and the CLI never creates, updates, removes, resolves, or migrates a context/instruction file (`CLAUDE.md`, `AGENTS.md`, `.github/copilot-instructions.md`, …). New integrations add nothing for context handling.
179
175
 
180
- The managed section is owned by the bundled `agent-context` extension (`extensions/agent-context/`). All configuration flows through the extension's own config file at `.specify/extensions/agent-context/agent-context-config.yml`:
176
+ Managing the "Spec Kit" section in the context file is fully owned by the bundled `agent-context` extension (`extensions/agent-context/`), which is a **full opt-in**: `specify init` does not install it. A user adds/enables it through the standard extension verbs, after which the extension's own bundled scripts maintain the context section. When the extension is absent or disabled, nothing in Spec Kit touches the context file.
177
+
178
+ The extension reads its own config file at `.specify/extensions/agent-context/agent-context-config.yml`:
181
179
 
182
180
  ```yaml
183
181
  # Path to the coding agent context file managed by this extension
@@ -189,10 +187,10 @@ context_markers:
189
187
  end: "<!-- SPECKIT END -->"
190
188
  ```
191
189
 
192
- - `context_file` is written automatically from the integration's class attribute when `specify init` or `specify integration use` is run.
193
- - `context_markers.{start,end}` defaults to `IntegrationBase.CONTEXT_MARKER_START` / `CONTEXT_MARKER_END`. Users who want custom markers edit `agent-context-config.yml` directly both the Python layer (`upsert_context_section()` / `remove_context_section()`) and the bundled scripts (`extensions/agent-context/scripts/bash/update-agent-context.sh` and `.ps1`) read from this single source of truth.
190
+ - The Specify CLI does **not** write this config. When `context_file` is empty, the extension's bundled scripts self-seed it by looking up the active integration's key in the extension's own `agent-context-defaults.json` map (`extensions/agent-context/scripts/bash/update-agent-context.sh` and `.ps1`). The CLI registry is never consulted — all agent→context-file knowledge lives inside the extension.
191
+ - `context_markers.{start,end}` are read solely by the extension's scripts; they default to the Spec Kit markers shown above and can be customized by editing `agent-context-config.yml` directly.
194
192
 
195
- Users can opt out entirely with `specify extension disable agent-context`; while disabled, Spec Kit skips context-file creation, updates, and removal (the gates are inside `upsert_context_section()` and `remove_context_section()`).
193
+ Existing projects created by older Spec Kit versions keep working: any previously written managed section or extension config is left intact and is only ever updated by the extension when run.
196
194
 
197
195
  Only add custom setup logic when the agent needs non-standard behavior. Integrations no longer require per-agent thin wrapper scripts or shared context-update dispatcher scripts — the `agent-context` extension is fully generic.
198
196
 
@@ -401,7 +399,6 @@ Implementation: Extends `YamlIntegration` (parallel to `TomlIntegration`):
401
399
  2. Extracts title and description from frontmatter
402
400
  3. Renders output as Goose recipe YAML (version, title, description, author, extensions, activities, prompt)
403
401
  4. Uses `yaml.safe_dump()` for header fields to ensure proper escaping
404
- 5. Sets `context_file = "AGENTS.md"` so the base setup manages the Spec Kit context section there
405
402
 
406
403
  ## Branch Naming Convention
407
404
 
@@ -466,7 +463,7 @@ Disclosure is **continuous**, not a one-time event. A single AI-disclosure parag
466
463
  ## Common Pitfalls
467
464
 
468
465
  1. **Using shorthand keys for CLI-based integrations**: For CLI-based integrations (`requires_cli: True`), the `key` must match the executable name (e.g., `"cursor-agent"` not `"cursor"`). `shutil.which(key)` is used for CLI tool checks — mismatches require special-case mappings. IDE-based integrations (`requires_cli: False`) are not subject to this constraint.
469
- 2. **Forgetting context configuration**: The bundled `agent-context` extension reads from `.specify/extensions/agent-context/agent-context-config.yml`. New integrations only need to set `context_file` on the class markers and dispatcher scripts are managed centrally.
466
+ 2. **Reintroducing context handling into the CLI**: The opt-in `agent-context` extension owns everything about context files — including the per-agent default mapping in `agent-context-defaults.json`. Integration classes must **not** declare a `context_file`, and no CLI code should read, write, resolve, or migrate context files. All context-file logic lives in `.specify/extensions/agent-context/` and its bundled scripts.
470
467
  3. **Incorrect `requires_cli` value**: Set to `True` only for agents that have a CLI tool; set to `False` for IDE-based agents.
471
468
  4. **Wrong argument format**: Use `$ARGUMENTS` for Markdown agents, `{{args}}` for TOML agents.
472
469
  5. **Skipping registration**: The import and `_register()` call in `_register_builtins()` must both be added.
@@ -2,6 +2,37 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [0.12.0] - 2026-06-29
6
+
7
+ ### Changed
8
+
9
+ - feat: make agent-context extension a full opt-in (#3097)
10
+ - docs(workflows): add the built-in 'init' step type to the Step Types table (#3234)
11
+ - fix(workflows): gate validate() must not crash on non-string options (#3233)
12
+ - fix(workflows): make pipe-filter detection quote-aware in expressions (#3232)
13
+ - fix(workflows): reject a fan-in wait_for that names an unknown step at validation (#3225)
14
+ - fix(scripts): warn when spec template is missing in create-new-feature.ps1 (parity with bash) (#3230)
15
+ - fix(scripts): count subdirectory-only dirs as non-empty in PowerShell (parity with bash) (#3137)
16
+ - fix(scripts): drop HAS_GIT from PowerShell git-extension output (parity with bash) (#3195)
17
+ - Update Product Spec Extension to v1.0.1 (#3226)
18
+ - chore: release 0.11.10, begin 0.11.11.dev0 development (#3240)
19
+
20
+ ## [0.11.10] - 2026-06-29
21
+
22
+ ### Changed
23
+
24
+ - fix(extensions): apply GHES auth and resolve release assets for `extension add --from` (#3217)
25
+ - fix(pi): repoint install_url to @earendil-works/pi-coding-agent (#3169) (#3214)
26
+ - fix(catalogs): reject host-less catalog URLs in base and preset validators (#3210)
27
+ - fix: update CodeBuddy install docs URL (#3187)
28
+ - fix(workflows): reject infinite number-input default instead of raising OverflowError (#3199)
29
+ - fix(scripts): emit 'Copied plan template' status in setup-plan.ps1 (parity with bash) (#3198)
30
+ - fix(workflows): make expression operator/literal parsing quote-aware (#3197)
31
+ - fix(scripts): honor explicit -Number 0 in PowerShell create-new-feature (parity with bash) (#3196)
32
+ - Add community bundle submission path (#3162)
33
+ - Docs: Document /speckit.converge command (#3181)
34
+ - chore: release 0.11.9, begin 0.11.10.dev0 development (#3189)
35
+
5
36
  ## [0.11.9] - 2026-06-26
6
37
 
7
38
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specify-cli
3
- Version: 0.11.9
3
+ Version: 0.12.0
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
@@ -154,13 +154,14 @@ Explore community-contributed resources on the [Spec Kit docs site](https://gith
154
154
 
155
155
  - [Extensions](https://github.github.io/spec-kit/community/extensions.html) — commands, hooks, and capabilities
156
156
  - [Presets](https://github.github.io/spec-kit/community/presets.html) — template and terminology overrides
157
+ - [Bundles](https://github.github.io/spec-kit/community/bundles.html) — role and team stacks composed from existing components
157
158
  - [Walkthroughs](https://github.github.io/spec-kit/community/walkthroughs.html) — end-to-end SDD scenarios
158
159
  - [Friends](https://github.github.io/spec-kit/community/friends.html) — projects that extend or build on Spec Kit
159
160
 
160
161
  > [!NOTE]
161
162
  > Community contributions are independently created and maintained by their respective authors. Review source code before installation and use at your own discretion.
162
163
 
163
- Want to contribute? See the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md) or the [Presets Publishing Guide](presets/PUBLISHING.md).
164
+ Want to contribute? See the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md), the [Presets Publishing Guide](presets/PUBLISHING.md), or the [Community Bundles guide](docs/community/bundles.md).
164
165
 
165
166
  ## 🤖 Supported AI Coding Agent Integrations
166
167
 
@@ -282,8 +283,10 @@ built-in). Each source carries an install policy: `install-allowed` sources can
282
283
  be installed from, while `discovery-only` sources are visible in `search`/`info`
283
284
  but refuse installation. Manage the stack with `specify bundle catalog list|add|remove`.
284
285
 
285
- Authors validate and package bundles locally there is no first-class publish;
286
- distribution is hosting the built artifact and adding a catalog entry:
286
+ Authors validate and package bundles locally. Distribution is hosting the built
287
+ artifact and adding a catalog source; community bundle submissions use the
288
+ [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml)
289
+ issue template so required component catalogs and install evidence can be reviewed:
287
290
 
288
291
  ```bash
289
292
  specify bundle validate --path ./my-bundle # structural + reference checks
@@ -134,13 +134,14 @@ Explore community-contributed resources on the [Spec Kit docs site](https://gith
134
134
 
135
135
  - [Extensions](https://github.github.io/spec-kit/community/extensions.html) — commands, hooks, and capabilities
136
136
  - [Presets](https://github.github.io/spec-kit/community/presets.html) — template and terminology overrides
137
+ - [Bundles](https://github.github.io/spec-kit/community/bundles.html) — role and team stacks composed from existing components
137
138
  - [Walkthroughs](https://github.github.io/spec-kit/community/walkthroughs.html) — end-to-end SDD scenarios
138
139
  - [Friends](https://github.github.io/spec-kit/community/friends.html) — projects that extend or build on Spec Kit
139
140
 
140
141
  > [!NOTE]
141
142
  > Community contributions are independently created and maintained by their respective authors. Review source code before installation and use at your own discretion.
142
143
 
143
- Want to contribute? See the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md) or the [Presets Publishing Guide](presets/PUBLISHING.md).
144
+ Want to contribute? See the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md), the [Presets Publishing Guide](presets/PUBLISHING.md), or the [Community Bundles guide](docs/community/bundles.md).
144
145
 
145
146
  ## 🤖 Supported AI Coding Agent Integrations
146
147
 
@@ -262,8 +263,10 @@ built-in). Each source carries an install policy: `install-allowed` sources can
262
263
  be installed from, while `discovery-only` sources are visible in `search`/`info`
263
264
  but refuse installation. Manage the stack with `specify bundle catalog list|add|remove`.
264
265
 
265
- Authors validate and package bundles locally there is no first-class publish;
266
- distribution is hosting the built artifact and adding a catalog entry:
266
+ Authors validate and package bundles locally. Distribution is hosting the built
267
+ artifact and adding a catalog source; community bundle submissions use the
268
+ [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml)
269
+ issue template so required component catalogs and install evidence can be reviewed:
267
270
 
268
271
  ```bash
269
272
  specify bundle validate --path ./my-bundle # structural + reference checks
@@ -0,0 +1,53 @@
1
+ # Community Bundles
2
+
3
+ > [!NOTE]
4
+ > Community bundles are independently created and maintained by their respective authors. Maintainers only verify that submission metadata is complete and correctly formatted — they do **not review, audit, endorse, or support the bundle code or the components it installs**. Review bundle manifests, component catalogs, and source repositories before installation and use at your own discretion.
5
+
6
+ Bundles compose existing Spec Kit components — extensions, presets, workflows, and steps — into a single role or team stack. They are useful when a user should be able to install a tested set of components together instead of following several separate install commands.
7
+
8
+ Accepted community bundle entries will be listed here once a community bundle catalog is available. To submit a bundle for review, file a [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml) issue.
9
+
10
+ ## What to Submit
11
+
12
+ A bundle submission should include:
13
+
14
+ - A public repository with a valid `bundle.yml` manifest.
15
+ - A versioned GitHub release with a bundle artifact created by `specify bundle build`.
16
+ - Documentation that explains the intended role, installed components, required catalogs, and expected workflow.
17
+ - A proposed catalog entry with bundle metadata and component counts.
18
+ - Test evidence from a clean Spec Kit project.
19
+
20
+ ## Component Resolution
21
+
22
+ A bundle catalog entry describes where to download the bundle artifact, but the bundle's component references still need to resolve when a user installs it. References can resolve from bundled components, already installed components, or active extension, preset, workflow, and step catalogs.
23
+
24
+ If your bundle depends on components that are not available from the default Spec Kit catalogs, include the required catalog URLs in the submission and in your README. Test the full install path from a clean project with those catalogs added before submitting.
25
+
26
+ For example:
27
+
28
+ ```bash
29
+ specify preset catalog add https://example.com/presets.json --name example-bundle --install-allowed
30
+ specify extension catalog add https://example.com/extensions.json --name example-bundle --install-allowed
31
+ curl -L -o example-bundle-1.0.0.zip https://example.com/example-bundle-1.0.0.zip
32
+ specify bundle install ./example-bundle-1.0.0.zip
33
+
34
+ # Or install by id from an install-allowed bundle catalog.
35
+ specify bundle catalog add https://example.com/bundles.json --id example-bundle-catalog --policy install-allowed
36
+ specify bundle install example-bundle
37
+ ```
38
+
39
+ ## Review Scope
40
+
41
+ Maintainers check that:
42
+
43
+ - The submission fields are complete and correctly formatted.
44
+ - The release artifact and documentation URLs are reachable.
45
+ - The repository contains a `bundle.yml` manifest.
46
+ - The submission clearly identifies any required component catalogs.
47
+ - The proposed catalog entry uses the expected bundle catalog entry shape.
48
+
49
+ Maintainers do not audit the behavior of installed extensions, presets, workflows, steps, or scripts. Users should review those components before installing a community bundle.
50
+
51
+ ## Updating a Bundle
52
+
53
+ To update a submitted bundle, file another [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml) issue with the new version, download URL, changed component list, and updated test evidence. Mention that the issue updates an existing bundle entry.
@@ -1,6 +1,6 @@
1
1
  # Community
2
2
 
3
- The Spec Kit community builds extensions, presets, walkthroughs, and companion projects that expand what you can do with Spec-Driven Development. All community contributions are independently created and maintained by their respective authors.
3
+ The Spec Kit community builds extensions, presets, bundles, walkthroughs, and companion projects that expand what you can do with Spec-Driven Development. All community contributions are independently created and maintained by their respective authors.
4
4
 
5
5
  ## Extensions
6
6
 
@@ -14,6 +14,12 @@ Presets customize how Spec Kit behaves — overriding templates, commands, and t
14
14
 
15
15
  [Browse community presets →](presets.md)
16
16
 
17
+ ## Bundles
18
+
19
+ Bundles compose extensions, presets, workflows, and steps into role or team stacks that can be installed together.
20
+
21
+ [Browse community bundles →](bundles.md)
22
+
17
23
  ## Walkthroughs
18
24
 
19
25
  Step-by-step guides that show Spec-Driven Development in action across different scenarios, languages, and frameworks.
@@ -26,6 +26,7 @@ through the standard flow:
26
26
  2. Run `/speckit.plan` to define the implementation approach.
27
27
  3. Run `/speckit.tasks` to derive the work breakdown.
28
28
  4. Run `/speckit.implement` and review the resulting code and artifact diffs.
29
+ 5. Run `/speckit.converge` to verify completeness and generate tasks for remaining gaps. If tasks are appended, repeat `/speckit.implement` and `/speckit.converge` until the feature is fully complete.
29
30
 
30
31
  The previous feature directory remains intact for audit, comparison, or
31
32
  explaining how the project reached its current state. Use clear feature names or
@@ -50,6 +51,7 @@ spec:
50
51
  5. Run `/speckit.analyze` before implementation resumes to catch gaps between
51
52
  the spec, plan, and tasks.
52
53
  6. Run `/speckit.implement`, then review the code and artifact diffs together.
54
+ 7. Run `/speckit.converge` to assess completion and append any remaining work to `tasks.md`. If tasks are appended, repeat `/speckit.implement` and `/speckit.converge` until the feature is fully complete.
53
55
 
54
56
  Preserve important implementation rationale before replacing derived artifacts.
55
57
  If a plan or task list contains decisions that still matter, carry them forward
@@ -94,8 +94,15 @@ This helps verify you are running the official Spec Kit build from GitHub, not a
94
94
  After initialization, you should see the following commands available in your coding agent:
95
95
 
96
96
  - `/speckit.specify` - Create specifications
97
- - `/speckit.plan` - Generate implementation plans
97
+ - `/speckit.plan` - Generate implementation plans
98
98
  - `/speckit.tasks` - Break down into actionable tasks
99
+ - `/speckit.implement` - Execute implementation tasks
100
+ - `/speckit.analyze` - Validate cross-artifact consistency
101
+ - `/speckit.clarify` - Identify and resolve ambiguities
102
+ - `/speckit.checklist` - Generate quality checklists
103
+ - `/speckit.constitution` - Create or update project principles
104
+ - `/speckit.converge` - Assess codebase against artifacts and append remaining tasks
105
+ - `/speckit.taskstoissues` - Convert tasks to issues
99
106
 
100
107
  Scripts are installed into a variant subdirectory matching the chosen script type:
101
108
 
@@ -13,10 +13,10 @@ This guide will help you get started with Spec-Driven Development using Spec Kit
13
13
  After installing Spec Kit and defining your project constitution, quick experiments can use the lean feature path: `/speckit.specify` -> `/speckit.plan` -> `/speckit.tasks` -> `/speckit.implement`. For production features or any work with meaningful ambiguity, treat `/speckit.clarify`, `/speckit.checklist`, and `/speckit.analyze` as regular quality gates:
14
14
 
15
15
  ```text
16
- /speckit.constitution -> /speckit.specify -> /speckit.clarify -> /speckit.plan -> /speckit.checklist -> /speckit.tasks -> /speckit.analyze -> /speckit.implement
16
+ /speckit.constitution -> /speckit.specify -> /speckit.clarify -> /speckit.plan -> /speckit.checklist -> /speckit.tasks -> /speckit.analyze -> /speckit.implement -> /speckit.converge
17
17
  ```
18
18
 
19
- Use `/speckit.clarify` to reduce requirement ambiguity before planning, `/speckit.checklist` (after `/speckit.plan`) to generate quality checklists that validate requirements completeness, clarity, and consistency, and `/speckit.analyze` to check spec/plan/task consistency before implementation starts. You can repeat `/speckit.analyze` after implementation as an extra review, but keep the first analysis before `/speckit.implement` so gaps are caught while the plan and tasks can still be adjusted.
19
+ Use `/speckit.clarify` to reduce requirement ambiguity before planning, `/speckit.checklist` (after `/speckit.plan`) to generate quality checklists that validate requirements completeness, clarity, and consistency, and `/speckit.analyze` to check spec/plan/task consistency before implementation starts. You can repeat `/speckit.analyze` after implementation as an extra review, but keep the first analysis before `/speckit.implement` so gaps are caught while the plan and tasks can still be adjusted. Finally, run `/speckit.converge` after implementation to verify all planned work is complete and generate tasks for any remaining gaps. If `/speckit.converge` appends new tasks, run `/speckit.implement` again (and converge again) until it reports that the feature has converged.
20
20
 
21
21
  ### Step 1: Install Specify
22
22
 
@@ -188,6 +188,14 @@ Finally, implement the solution:
188
188
  /speckit.implement
189
189
  ```
190
190
 
191
+ ### Step 8: Converge
192
+
193
+ Run the `/speckit.converge` command after implementation to assess the current codebase against the feature's artifacts and append any remaining unbuilt work as new tasks to `tasks.md`. If the command appends new tasks, run `/speckit.implement` again to complete them, and repeat the converge step until the feature is fully complete.
194
+
195
+ ```bash
196
+ /speckit.converge
197
+ ```
198
+
191
199
  > [!TIP]
192
200
  > **Phased Implementation**: For large projects like Taskify, consider implementing in phases (e.g., Phase 1: Basic project/task structure, Phase 2: Kanban functionality, Phase 3: Comments and assignments). This prevents context saturation and allows for validation at each stage.
193
201
 
@@ -119,6 +119,12 @@ specify bundle build
119
119
 
120
120
  Produces a single versioned, distributable `.zip` artifact from a bundle directory. The artifact embeds the manifest and can be installed directly with `specify bundle install <artifact.zip>`.
121
121
 
122
+ ## Publish a Bundle
123
+
124
+ Bundle authors validate and package bundles locally, then host the generated artifact and catalog metadata where users can access it. A bundle catalog entry points at the bundle artifact, but the components declared inside `bundle.yml` still resolve through bundled components, installed components, or active extension, preset, workflow, and step catalogs.
125
+
126
+ If your bundle references components from non-default catalogs, document those catalog URLs and test the install path from a clean project with those catalogs added. Community bundle submissions should include that dependency-resolution evidence in the [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml) issue.
127
+
122
128
  ## Manage Catalog Sources
123
129
 
124
130
  Bundles are discovered through a priority-ordered stack of catalog sources (project, user, and built-in scopes).