specify-cli 0.11.5__tar.gz → 0.11.6__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 (438) hide show
  1. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
  2. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/bug_report.yml +29 -12
  3. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/feature_request.yml +29 -12
  4. {specify_cli-0.11.5 → specify_cli-0.11.6}/CHANGELOG.md +15 -0
  5. {specify_cli-0.11.5 → specify_cli-0.11.6}/CONTRIBUTING.md +1 -1
  6. {specify_cli-0.11.5 → specify_cli-0.11.6}/PKG-INFO +1 -1
  7. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/extensions.md +4 -2
  8. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/integrations.md +2 -0
  9. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/catalog.community.json +90 -15
  10. {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/catalog.json +10 -1
  11. {specify_cli-0.11.5 → specify_cli-0.11.6}/pyproject.toml +1 -1
  12. {specify_cli-0.11.5 → specify_cli-0.11.6}/spec-driven.md +6 -0
  13. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/__init__.py +2 -0
  14. specify_cli-0.11.6/src/specify_cli/integrations/firebender/__init__.py +33 -0
  15. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/manifest.py +24 -0
  16. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/shared_infra.py +73 -2
  17. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_cli.py +200 -0
  18. specify_cli-0.11.6/tests/integrations/test_integration_firebender.py +45 -0
  19. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_manifest.py +28 -0
  20. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_registry.py +1 -1
  21. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_agent_config_consistency.py +144 -1
  22. {specify_cli-0.11.5 → specify_cli-0.11.6}/.devcontainer/devcontainer.json +0 -0
  23. {specify_cli-0.11.5 → specify_cli-0.11.6}/.devcontainer/post-create.sh +0 -0
  24. {specify_cli-0.11.5 → specify_cli-0.11.6}/.editorconfig +0 -0
  25. {specify_cli-0.11.5 → specify_cli-0.11.6}/.gitattributes +0 -0
  26. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/CODEOWNERS +0 -0
  27. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  28. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  29. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  30. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  31. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/aw/actions-lock.json +0 -0
  32. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/dependabot.yml +0 -0
  33. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/skills/add-community-extension/SKILL.md +0 -0
  34. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/RELEASE-PROCESS.md +0 -0
  35. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-extension.lock.yml +0 -0
  36. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-extension.md +0 -0
  37. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-preset.lock.yml +0 -0
  38. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-preset.md +0 -0
  39. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/bug-assess.lock.yml +0 -0
  40. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/bug-assess.md +0 -0
  41. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/catalog-assign.yml +0 -0
  42. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/codeql.yml +0 -0
  43. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/docs.yml +0 -0
  44. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/lint.yml +0 -0
  45. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/publish-pypi.yml +0 -0
  46. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/release-trigger.yml +0 -0
  47. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/release.yml +0 -0
  48. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/stale.yml +0 -0
  49. {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/test.yml +0 -0
  50. {specify_cli-0.11.5 → specify_cli-0.11.6}/.gitignore +0 -0
  51. {specify_cli-0.11.5 → specify_cli-0.11.6}/.markdownlint-cli2.jsonc +0 -0
  52. {specify_cli-0.11.5 → specify_cli-0.11.6}/.zenodo.json +0 -0
  53. {specify_cli-0.11.5 → specify_cli-0.11.6}/AGENTS.md +0 -0
  54. {specify_cli-0.11.5 → specify_cli-0.11.6}/CITATION.cff +0 -0
  55. {specify_cli-0.11.5 → specify_cli-0.11.6}/CODE_OF_CONDUCT.md +0 -0
  56. {specify_cli-0.11.5 → specify_cli-0.11.6}/DEVELOPMENT.md +0 -0
  57. {specify_cli-0.11.5 → specify_cli-0.11.6}/LICENSE +0 -0
  58. {specify_cli-0.11.5 → specify_cli-0.11.6}/README.md +0 -0
  59. {specify_cli-0.11.5 → specify_cli-0.11.6}/SECURITY.md +0 -0
  60. {specify_cli-0.11.5 → specify_cli-0.11.6}/SUPPORT.md +0 -0
  61. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/.gitignore +0 -0
  62. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/README.md +0 -0
  63. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/friends.md +0 -0
  64. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/overview.md +0 -0
  65. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/presets.md +0 -0
  66. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/walkthroughs.md +0 -0
  67. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/concepts/complex-features.md +0 -0
  68. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/concepts/sdd.md +0 -0
  69. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/concepts/spec-persistence.md +0 -0
  70. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/docfx.json +0 -0
  71. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/guides/evolving-specs.md +0 -0
  72. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/index.md +0 -0
  73. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/air-gapped.md +0 -0
  74. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/one-time.md +0 -0
  75. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/pipx.md +0 -0
  76. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/uv.md +0 -0
  77. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/installation.md +0 -0
  78. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/local-development.md +0 -0
  79. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/quickstart.md +0 -0
  80. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/authentication.md +0 -0
  81. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/bundles.md +0 -0
  82. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/core.md +0 -0
  83. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/extensions.md +0 -0
  84. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/overview.md +0 -0
  85. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/presets.md +0 -0
  86. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/workflows.md +0 -0
  87. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/template/public/main.css +0 -0
  88. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/toc.yml +0 -0
  89. {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/upgrade.md +0 -0
  90. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/business-analyst/README.md +0 -0
  91. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/business-analyst/bundle.yml +0 -0
  92. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/developer/README.md +0 -0
  93. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/developer/bundle.yml +0 -0
  94. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/product-manager/README.md +0 -0
  95. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/product-manager/bundle.yml +0 -0
  96. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/security-researcher/README.md +0 -0
  97. {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/security-researcher/bundle.yml +0 -0
  98. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  99. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  100. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  101. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  102. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/README.md +0 -0
  103. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  104. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/README.md +0 -0
  105. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/agent-context-config.yml +0 -0
  106. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  107. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/extension.yml +0 -0
  108. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  109. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  110. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/README.md +0 -0
  111. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  112. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  113. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/commands/speckit.bug.test.md +0 -0
  114. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/extension.yml +0 -0
  115. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/catalog.json +0 -0
  116. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/README.md +0 -0
  117. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.commit.md +0 -0
  118. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.feature.md +0 -0
  119. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.initialize.md +0 -0
  120. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.remote.md +0 -0
  121. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.validate.md +0 -0
  122. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/config-template.yml +0 -0
  123. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/extension.yml +0 -0
  124. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/git-config.yml +0 -0
  125. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  126. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  127. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/git-common.sh +0 -0
  128. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  129. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  130. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
  131. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  132. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  133. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/selftest/commands/selftest.md +0 -0
  134. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/selftest/extension.yml +0 -0
  135. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/.gitignore +0 -0
  136. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/CHANGELOG.md +0 -0
  137. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/EXAMPLE-README.md +0 -0
  138. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/LICENSE +0 -0
  139. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/README.md +0 -0
  140. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/commands/example.md +0 -0
  141. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/config-template.yml +0 -0
  142. {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/extension.yml +0 -0
  143. {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/CONTRIBUTING.md +0 -0
  144. {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/README.md +0 -0
  145. {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/catalog.community.json +0 -0
  146. {specify_cli-0.11.5 → specify_cli-0.11.6}/media/bootstrap-claude-code.gif +0 -0
  147. {specify_cli-0.11.5 → specify_cli-0.11.6}/media/logo_large.webp +0 -0
  148. {specify_cli-0.11.5 → specify_cli-0.11.6}/media/logo_small.webp +0 -0
  149. {specify_cli-0.11.5 → specify_cli-0.11.6}/media/spec-kit-video-header.jpg +0 -0
  150. {specify_cli-0.11.5 → specify_cli-0.11.6}/media/specify_cli.gif +0 -0
  151. {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-April.md +0 -0
  152. {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-February.md +0 -0
  153. {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-March.md +0 -0
  154. {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-May.md +0 -0
  155. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/ARCHITECTURE.md +0 -0
  156. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/PUBLISHING.md +0 -0
  157. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/README.md +0 -0
  158. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/catalog.community.json +0 -0
  159. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/catalog.json +0 -0
  160. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/README.md +0 -0
  161. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.constitution.md +0 -0
  162. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.implement.md +0 -0
  163. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.plan.md +0 -0
  164. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.specify.md +0 -0
  165. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.tasks.md +0 -0
  166. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/preset.yml +0 -0
  167. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/README.md +0 -0
  168. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  169. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/commands/speckit.specify.md +0 -0
  170. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/preset.yml +0 -0
  171. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/templates/myext-template.md +0 -0
  172. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/templates/spec-template.md +0 -0
  173. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/commands/speckit.specify.md +0 -0
  174. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  175. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/preset.yml +0 -0
  176. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/agent-file-template.md +0 -0
  177. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/checklist-template.md +0 -0
  178. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/constitution-template.md +0 -0
  179. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/plan-template.md +0 -0
  180. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/spec-template.md +0 -0
  181. {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/tasks-template.md +0 -0
  182. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/check-prerequisites.sh +0 -0
  183. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/common.sh +0 -0
  184. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/create-new-feature.sh +0 -0
  185. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/setup-plan.sh +0 -0
  186. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/setup-tasks.sh +0 -0
  187. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/check-prerequisites.ps1 +0 -0
  188. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/common.ps1 +0 -0
  189. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/create-new-feature.ps1 +0 -0
  190. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/setup-plan.ps1 +0 -0
  191. {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/setup-tasks.ps1 +0 -0
  192. {specify_cli-0.11.5 → specify_cli-0.11.6}/spec-kit.code-workspace +0 -0
  193. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/__init__.py +0 -0
  194. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_agent_config.py +0 -0
  195. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_assets.py +0 -0
  196. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_console.py +0 -0
  197. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_github_http.py +0 -0
  198. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_init_options.py +0 -0
  199. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_invocation_style.py +0 -0
  200. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_utils.py +0 -0
  201. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_version.py +0 -0
  202. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/agents.py +0 -0
  203. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/__init__.py +0 -0
  204. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/azure_devops.py +0 -0
  205. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/base.py +0 -0
  206. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/config.py +0 -0
  207. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/github.py +0 -0
  208. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/http.py +0 -0
  209. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/__init__.py +0 -0
  210. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
  211. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
  212. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/__init__.py +0 -0
  213. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/project.py +0 -0
  214. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/versioning.py +0 -0
  215. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/yamlio.py +0 -0
  216. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/__init__.py +0 -0
  217. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/catalog.py +0 -0
  218. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/manifest.py +0 -0
  219. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/records.py +0 -0
  220. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/__init__.py +0 -0
  221. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/adapters.py +0 -0
  222. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
  223. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/conflict.py +0 -0
  224. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/installer.py +0 -0
  225. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/packager.py +0 -0
  226. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/primitives.py +0 -0
  227. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/references.py +0 -0
  228. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/resolver.py +0 -0
  229. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/validator.py +0 -0
  230. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/catalogs.py +0 -0
  231. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/commands/__init__.py +0 -0
  232. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/commands/bundle/__init__.py +0 -0
  233. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/commands/init.py +0 -0
  234. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/extensions/__init__.py +0 -0
  235. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/extensions/_commands.py +0 -0
  236. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_runtime.py +0 -0
  237. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_scaffold.py +0 -0
  238. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_state.py +0 -0
  239. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_status.py +0 -0
  240. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_commands.py +0 -0
  241. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_helpers.py +0 -0
  242. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_install_commands.py +0 -0
  243. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_migrate_commands.py +0 -0
  244. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_query_commands.py +0 -0
  245. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
  246. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/agy/__init__.py +0 -0
  247. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/amp/__init__.py +0 -0
  248. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  249. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/base.py +0 -0
  250. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/bob/__init__.py +0 -0
  251. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/catalog.py +0 -0
  252. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/claude/__init__.py +0 -0
  253. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/cline/__init__.py +0 -0
  254. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  255. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/codex/__init__.py +0 -0
  256. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/copilot/__init__.py +0 -0
  257. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  258. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/devin/__init__.py +0 -0
  259. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/forge/__init__.py +0 -0
  260. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  261. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/generic/__init__.py +0 -0
  262. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/goose/__init__.py +0 -0
  263. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/hermes/__init__.py +0 -0
  264. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/iflow/__init__.py +0 -0
  265. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/junie/__init__.py +0 -0
  266. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  267. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/kimi/__init__.py +0 -0
  268. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
  269. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  270. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  271. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/pi/__init__.py +0 -0
  272. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  273. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  274. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/roo/__init__.py +0 -0
  275. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  276. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/shai/__init__.py +0 -0
  277. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  278. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/trae/__init__.py +0 -0
  279. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  280. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/windsurf/__init__.py +0 -0
  281. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/zcode/__init__.py +0 -0
  282. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/zed/__init__.py +0 -0
  283. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/presets/__init__.py +0 -0
  284. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/presets/_commands.py +0 -0
  285. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/__init__.py +0 -0
  286. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/base.py +0 -0
  287. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/catalog.py +0 -0
  288. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/engine.py +0 -0
  289. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/expressions.py +0 -0
  290. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/__init__.py +0 -0
  291. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
  292. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
  293. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
  294. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
  295. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
  296. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
  297. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
  298. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
  299. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
  300. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
  301. {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
  302. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/checklist-template.md +0 -0
  303. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/analyze.md +0 -0
  304. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/checklist.md +0 -0
  305. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/clarify.md +0 -0
  306. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/constitution.md +0 -0
  307. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/converge.md +0 -0
  308. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/implement.md +0 -0
  309. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/plan.md +0 -0
  310. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/specify.md +0 -0
  311. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/tasks.md +0 -0
  312. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/taskstoissues.md +0 -0
  313. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/constitution-template.md +0 -0
  314. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/plan-template.md +0 -0
  315. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/spec-template.md +0 -0
  316. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/tasks-template.md +0 -0
  317. {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/vscode-settings.json +0 -0
  318. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/__init__.py +0 -0
  319. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/auth_helpers.py +0 -0
  320. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/bundler_helpers.py +0 -0
  321. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/conftest.py +0 -0
  322. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/contract/test_bundle_cli.py +0 -0
  323. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/contract/test_catalog_schema.py +0 -0
  324. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/contract/test_manifest_schema.py +0 -0
  325. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/__init__.py +0 -0
  326. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/bug/__init__.py +0 -0
  327. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/bug/test_bug_extension.py +0 -0
  328. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/git/__init__.py +0 -0
  329. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/git/test_git_extension.py +0 -0
  330. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/test_extension_agent_context.py +0 -0
  331. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/TESTING.md +0 -0
  332. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/plan.md +0 -0
  333. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/spec.md +0 -0
  334. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/tasks.md +0 -0
  335. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/http_helpers.py +0 -0
  336. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_catalog_stack.py +0 -0
  337. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_init_install.py +0 -0
  338. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_install_flow.py +0 -0
  339. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_local_install.py +0 -0
  340. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_offline.py +0 -0
  341. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_security_paths.py +0 -0
  342. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/__init__.py +0 -0
  343. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/conftest.py +0 -0
  344. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_base.py +0 -0
  345. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_extra_args.py +0 -0
  346. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_agy.py +0 -0
  347. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_amp.py +0 -0
  348. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_auggie.py +0 -0
  349. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_markdown.py +0 -0
  350. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_skills.py +0 -0
  351. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_toml.py +0 -0
  352. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_yaml.py +0 -0
  353. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_bob.py +0 -0
  354. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_catalog.py +0 -0
  355. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_claude.py +0 -0
  356. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_cline.py +0 -0
  357. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_codebuddy.py +0 -0
  358. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_codex.py +0 -0
  359. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_copilot.py +0 -0
  360. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_cursor_agent.py +0 -0
  361. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_devin.py +0 -0
  362. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_forge.py +0 -0
  363. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_gemini.py +0 -0
  364. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_generic.py +0 -0
  365. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_goose.py +0 -0
  366. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_hermes.py +0 -0
  367. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_iflow.py +0 -0
  368. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_junie.py +0 -0
  369. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_kilocode.py +0 -0
  370. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_kimi.py +0 -0
  371. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_kiro_cli.py +0 -0
  372. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_lingma.py +0 -0
  373. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_opencode.py +0 -0
  374. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_pi.py +0 -0
  375. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_qodercli.py +0 -0
  376. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_qwen.py +0 -0
  377. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_roo.py +0 -0
  378. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_rovodev.py +0 -0
  379. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_scaffold.py +0 -0
  380. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_shai.py +0 -0
  381. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_state.py +0 -0
  382. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_subcommand.py +0 -0
  383. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_tabnine.py +0 -0
  384. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_trae.py +0 -0
  385. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_vibe.py +0 -0
  386. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_windsurf.py +0 -0
  387. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_zcode.py +0 -0
  388. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_zed.py +0 -0
  389. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/self_upgrade_helpers.py +0 -0
  390. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_authentication.py +0 -0
  391. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_branch_numbering.py +0 -0
  392. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_check_prerequisites_paths_only.py +0 -0
  393. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_check_tool.py +0 -0
  394. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_cli_version.py +0 -0
  395. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_commands_package.py +0 -0
  396. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_console_imports.py +0 -0
  397. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extension_registration.py +0 -0
  398. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extension_skills.py +0 -0
  399. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extension_update_hardening.py +0 -0
  400. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extensions.py +0 -0
  401. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_github_http.py +0 -0
  402. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_init_dir.py +0 -0
  403. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_live_transient_windows.py +0 -0
  404. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_merge.py +0 -0
  405. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_presets.py +0 -0
  406. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_ps1_encoding.py +0 -0
  407. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_registrar_path_traversal.py +0 -0
  408. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_detection.py +0 -0
  409. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_execution.py +0 -0
  410. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_guidance.py +0 -0
  411. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_verification.py +0 -0
  412. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_setup_plan_feature_json.py +0 -0
  413. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_setup_plan_no_overwrite.py +0 -0
  414. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_setup_tasks.py +0 -0
  415. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_timestamp_branches.py +0 -0
  416. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_upgrade.py +0 -0
  417. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_utils_assets_imports.py +0 -0
  418. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_version_imports.py +0 -0
  419. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_workflow_run_without_project.py +0 -0
  420. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_workflows.py +0 -0
  421. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_adapters.py +0 -0
  422. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_catalog_config.py +0 -0
  423. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_conflict.py +0 -0
  424. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_packager.py +0 -0
  425. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_primitives.py +0 -0
  426. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_records.py +0 -0
  427. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_references.py +0 -0
  428. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_resolver.py +0 -0
  429. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_validator.py +0 -0
  430. {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_versioning.py +0 -0
  431. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/ARCHITECTURE.md +0 -0
  432. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/PUBLISHING.md +0 -0
  433. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/README.md +0 -0
  434. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/catalog.community.json +0 -0
  435. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/catalog.json +0 -0
  436. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/speckit/workflow.yml +0 -0
  437. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/step-catalog.community.json +0 -0
  438. {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/step-catalog.json +0 -0
@@ -8,7 +8,7 @@ body:
8
8
  value: |
9
9
  Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
10
10
 
11
- **Currently supported agents**: Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, opencode, Codex CLI, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy, Qoder CLI, Kiro CLI, Amp, SHAI, Tabnine CLI, Antigravity, IBM Bob, Mistral Vibe, Kimi Code, Trae, Pi Coding Agent, iFlow CLI, Devin for Terminal
11
+ **Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob, iFlow CLI, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, Windsurf, ZCode, Zed
12
12
 
13
13
  - type: input
14
14
  id: agent-name
@@ -62,24 +62,41 @@ body:
62
62
  label: AI Agent
63
63
  description: Which AI agent are you using?
64
64
  options:
65
+ - Amp
66
+ - Antigravity
67
+ - Auggie CLI
65
68
  - Claude Code
69
+ - Cline
70
+ - CodeBuddy
71
+ - Codex CLI
72
+ - Cursor
73
+ - Devin for Terminal
74
+ - Firebender
75
+ - Forge
66
76
  - Gemini CLI
67
77
  - GitHub Copilot
68
- - Cursor
69
- - Qwen Code
70
- - opencode
71
- - Codex CLI
72
- - Windsurf
78
+ - Goose
79
+ - Hermes Agent
80
+ - IBM Bob
81
+ - iFlow CLI
82
+ - Junie
73
83
  - Kilo Code
74
- - Auggie CLI
75
- - Roo Code
76
- - CodeBuddy
77
- - Qoder CLI
84
+ - Kimi Code
78
85
  - Kiro CLI
79
- - Amp
86
+ - Lingma
87
+ - Mistral Vibe
88
+ - opencode
89
+ - Pi Coding Agent
90
+ - Qoder CLI
91
+ - Qwen Code
92
+ - Roo Code
93
+ - RovoDev ACLI
80
94
  - SHAI
81
- - IBM Bob
82
- - Antigravity
95
+ - Tabnine CLI
96
+ - Trae
97
+ - Windsurf
98
+ - ZCode
99
+ - Zed
83
100
  - Not applicable
84
101
  validations:
85
102
  required: true
@@ -56,24 +56,41 @@ body:
56
56
  description: Does this feature relate to a specific AI agent?
57
57
  options:
58
58
  - All agents
59
+ - Amp
60
+ - Antigravity
61
+ - Auggie CLI
59
62
  - Claude Code
63
+ - Cline
64
+ - CodeBuddy
65
+ - Codex CLI
66
+ - Cursor
67
+ - Devin for Terminal
68
+ - Firebender
69
+ - Forge
60
70
  - Gemini CLI
61
71
  - GitHub Copilot
62
- - Cursor
63
- - Qwen Code
64
- - opencode
65
- - Codex CLI
66
- - Windsurf
72
+ - Goose
73
+ - Hermes Agent
74
+ - IBM Bob
75
+ - iFlow CLI
76
+ - Junie
67
77
  - Kilo Code
68
- - Auggie CLI
69
- - Roo Code
70
- - CodeBuddy
71
- - Qoder CLI
78
+ - Kimi Code
72
79
  - Kiro CLI
73
- - Amp
80
+ - Lingma
81
+ - Mistral Vibe
82
+ - opencode
83
+ - Pi Coding Agent
84
+ - Qoder CLI
85
+ - Qwen Code
86
+ - Roo Code
87
+ - RovoDev ACLI
74
88
  - SHAI
75
- - IBM Bob
76
- - Antigravity
89
+ - Tabnine CLI
90
+ - Trae
91
+ - Windsurf
92
+ - ZCode
93
+ - Zed
77
94
  - Not applicable
78
95
 
79
96
  - type: textarea
@@ -2,6 +2,21 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [0.11.6] - 2026-06-23
6
+
7
+ ### Changed
8
+
9
+ - [extension] Update Spec Kit Preview extension to v1.1.0 and sync Firebender agent lists (#3116)
10
+ - Add Spec Kit Discovery Extension to community catalog (#3119)
11
+ - Update Architecture Workflow extension to v1.2.1 (#3118)
12
+ - docs: clarify project-defined constitution articles (#2994)
13
+ - Add Intake extension to community catalog (#3117)
14
+ - feat: add Firebender integration (Android Studio / IntelliJ) (#3077)
15
+ - Update DocGuard — CDD Enforcement extension to v0.28.0 (#3115)
16
+ - chore: sync issue template agent lists (#3052)
17
+ - fix(shared-infra): remove stale managed scripts the core no longer ships (#3076) (#3098)
18
+ - chore: release 0.11.5, begin 0.11.6.dev0 development (#3105)
19
+
5
20
  ## [0.11.5] - 2026-06-22
6
21
 
7
22
  ### Changed
@@ -167,7 +167,7 @@ the command templates in templates/commands/ to understand what each command
167
167
  invokes. Use these mapping rules:
168
168
 
169
169
  - templates/commands/X.md → the command it defines
170
- - scripts/bash/Y.sh or scripts/powershell/Y.ps1 → every command that invokes that script (grep templates/commands/ for the script name). Also check transitive dependencies: if the changed script is sourced by other scripts (e.g., common.sh is sourced by create-new-feature.sh, check-prerequisites.sh, setup-plan.sh, update-agent-context.sh), then every command invoking those downstream scripts is also affected
170
+ - scripts/bash/Y.sh or scripts/powershell/Y.ps1 → every command that invokes that script (grep templates/commands/ for the script name). Also check transitive dependencies: if the changed script is sourced by other scripts (e.g., common.sh is sourced by create-new-feature.sh, check-prerequisites.sh, setup-plan.sh), then every command invoking those downstream scripts is also affected
171
171
  - templates/Z-template.md → every command that consumes that template during execution
172
172
  - src/specify_cli/*.py → CLI commands (`specify init`, `specify check`, `specify extension *`, `specify preset *`); test the affected CLI command and, for init/scaffolding changes, at minimum test /speckit.specify
173
173
  - extensions/X/commands/* → the extension command it defines
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specify-cli
3
- Version: 0.11.5
3
+ Version: 0.11.6
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
@@ -31,7 +31,7 @@ The following community-contributed extensions are available in [`catalog.commun
31
31
  | API Evolve | Managed API contract evolution — breaking-change detection, semver enforcement, deprecation orchestration, and lifecycle gates across REST, GraphQL, and gRPC | `process` | Read+Write | [spec-kit-api-evolve](https://github.com/Quratulain-bilal/spec-kit-api-evolve) |
32
32
  | Architect Impact Previewer | Predicts architectural impact, complexity, and risks of proposed changes before implementation. | `visibility` | Read-only | [spec-kit-architect-preview](https://github.com/UmmeHabiba1312/spec-kit-architect-preview) |
33
33
  | Architecture Guard | Framework-agnostic architecture review extension for validating implementation against governance and architecture constitutions, detecting architectural drift, and generating non-blocking refactor tasks | `process` | Read+Write | [spec-kit-architecture-guard](https://github.com/DyanGalih/spec-kit-architecture-guard) |
34
- | Architecture Workflow | Generate or reverse project-level 4+1 architecture view artifacts and synthesis | `docs` | Read+Write | [spec-kit-arch](https://github.com/bigsmartben/spec-kit-arch) |
34
+ | Architecture Workflow | Generate or reverse project-level 4+1 architecture views as separate commands | `docs` | Read+Write | [spec-kit-arch](https://github.com/bigsmartben/spec-kit-arch) |
35
35
  | Archive Extension | Archive merged features into main project memory. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
36
36
  | Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | `integration` | Read+Write | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
37
37
  | Blueprint | Stay code-literate in AI-driven development: review a complete code blueprint for every task from spec artifacts before /speckit.implement runs | `docs` | Read+Write | [spec-kit-blueprint](https://github.com/chordpli/spec-kit-blueprint) |
@@ -57,7 +57,7 @@ The following community-contributed extensions are available in [`catalog.commun
57
57
  | GitHub Issues Integration 1 | Generate spec artifacts from GitHub Issues - import issues, sync updates, and maintain bidirectional traceability | `integration` | Read+Write | [spec-kit-github-issues](https://github.com/Fatima367/spec-kit-github-issues) |
58
58
  | GitHub Issues Integration 2 | Creates and syncs local specs from an existing GitHub issue | `integration` | Read+Write | [spec-kit-issue](https://github.com/aaronrsun/spec-kit-issue) |
59
59
  | Improve Extension | Audits any codebase as a senior advisor and writes prioritized, self-contained spec prompts under specs/ that the spec-kit lifecycle can process | `process` | Read+Write | [spec-kit-improve](https://github.com/d0whc3r/spec-kit-improve) |
60
- | Interactive HTML Preview | Generate self-contained interactive HTML prototypes from Spec Kit artifacts | `docs` | Read+Write | [spec-kit-preview](https://github.com/bigsmartben/spec-kit-preview) |
60
+ | Intake | Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts | `docs` | Read+Write | [spec-kit-intake](https://github.com/bigsmartben/spec-kit-intake) |
61
61
  | Intelligent Agent Orchestrator | Cross-catalog agent discovery and intelligent prompt-to-command routing | `process` | Read+Write | [spec-kit-orchestrator](https://github.com/pragya247/spec-kit-orchestrator) |
62
62
  | Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building | `docs` | Read+Write | [spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate) |
63
63
  | Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | `integration` | Read+Write | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
@@ -110,6 +110,8 @@ The following community-contributed extensions are available in [`catalog.commun
110
110
  | Spec Changelog | Auto-generate changelogs and release notes from spec git history and requirement diffs | `docs` | Read-only | [spec-kit-changelog](https://github.com/Quratulain-bilal/spec-kit-changelog) |
111
111
  | Spec Critique Extension | Dual-lens critical review of spec and plan from product strategy and engineering risk perspectives | `docs` | Read-only | [spec-kit-critique](https://github.com/arunt14/spec-kit-critique) |
112
112
  | 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-) |
113
+ | 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) |
114
+ | 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) |
113
115
  | 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) |
114
116
  | 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) |
115
117
  | Spec Orchestrator | Cross-feature orchestration — track state, select tasks, and detect conflicts across parallel specs | `process` | Read-only | [spec-kit-orchestrator](https://github.com/Quratulain-bilal/spec-kit-orchestrator) |
@@ -15,6 +15,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
15
15
  | [Codex CLI](https://github.com/openai/codex) | `codex` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `$speckit-<command>` |
16
16
  | [Cursor](https://cursor.sh/) | `cursor-agent` | |
17
17
  | [Devin for Terminal](https://cli.devin.ai/docs) | `devin` | Skills-based integration; installs skills into `.devin/skills/` and invokes them as `/speckit-<command>` |
18
+ | [Firebender](https://firebender.com/) | `firebender` | IDE-based agent for Android Studio / IntelliJ |
18
19
  | [Forge](https://forgecode.dev/) | `forge` | |
19
20
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | |
20
21
  | [GitHub Copilot](https://code.visualstudio.com/) | `copilot` | |
@@ -185,6 +186,7 @@ The currently declared multi-install safe integrations are:
185
186
  | `codebuddy` | `.codebuddy/commands`, `CODEBUDDY.md` |
186
187
  | `codex` | `.agents/skills`, `AGENTS.md` |
187
188
  | `cursor-agent` | `.cursor/skills`, `.cursor/rules/specify-rules.mdc` |
189
+ | `firebender` | `.firebender/commands`, `.firebender/rules/specify-rules.mdc` |
188
190
  | `gemini` | `.gemini/commands`, `GEMINI.md` |
189
191
  | `iflow` | `.iflow/commands`, `IFLOW.md` |
190
192
  | `junie` | `.junie/commands`, `.junie/AGENTS.md` |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": "1.0",
3
- "updated_at": "2026-06-22T00:00:00Z",
3
+ "updated_at": "2026-06-23T00:00:00Z",
4
4
  "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
5
5
  "extensions": {
6
6
  "aide": {
@@ -187,10 +187,10 @@
187
187
  "arch": {
188
188
  "name": "Architecture Workflow",
189
189
  "id": "arch",
190
- "description": "Generate or reverse project-level 4+1 architecture view artifacts and synthesis",
190
+ "description": "Generate or reverse project-level 4+1 architecture views as separate commands",
191
191
  "author": "bigsmartben",
192
- "version": "1.1.0",
193
- "download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.1.0.zip",
192
+ "version": "1.2.1",
193
+ "download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.2.1.zip",
194
194
  "repository": "https://github.com/bigsmartben/spec-kit-arch",
195
195
  "homepage": "https://github.com/bigsmartben/spec-kit-arch",
196
196
  "documentation": "https://github.com/bigsmartben/spec-kit-arch/blob/main/README.md",
@@ -202,7 +202,7 @@
202
202
  "speckit_version": ">=0.8.10.dev0"
203
203
  },
204
204
  "provides": {
205
- "commands": 2,
205
+ "commands": 10,
206
206
  "hooks": 0
207
207
  },
208
208
  "tags": [
@@ -215,7 +215,7 @@
215
215
  "downloads": 0,
216
216
  "stars": 0,
217
217
  "created_at": "2026-05-14T00:00:00Z",
218
- "updated_at": "2026-05-15T00:00:00Z"
218
+ "updated_at": "2026-06-23T00:00:00Z"
219
219
  },
220
220
  "architect-preview": {
221
221
  "name": "Architect Impact Previewer",
@@ -1001,13 +1001,47 @@
1001
1001
  "created_at": "2026-04-08T00:00:00Z",
1002
1002
  "updated_at": "2026-04-08T00:00:00Z"
1003
1003
  },
1004
+ "discovery": {
1005
+ "name": "Spec Kit Discovery Extension",
1006
+ "id": "discovery",
1007
+ "description": "Run technical discovery commands for feasibility, technology selection, scenario-specific technical decisions, legacy codebase assessment, implementation understanding, and proof-of-concept validation.",
1008
+ "author": "bigsmartben",
1009
+ "version": "0.2.0",
1010
+ "download_url": "https://github.com/bigsmartben/spec-kit-discovery/archive/refs/tags/v0.2.0.zip",
1011
+ "repository": "https://github.com/bigsmartben/spec-kit-discovery",
1012
+ "homepage": "https://github.com/bigsmartben/spec-kit-discovery",
1013
+ "documentation": "https://github.com/bigsmartben/spec-kit-discovery/blob/main/docs/usage.md",
1014
+ "changelog": "https://github.com/bigsmartben/spec-kit-discovery/blob/main/CHANGELOG.md",
1015
+ "license": "MIT",
1016
+ "category": "process",
1017
+ "effect": "read-write",
1018
+ "requires": {
1019
+ "speckit_version": ">=0.1.0"
1020
+ },
1021
+ "provides": {
1022
+ "commands": 6,
1023
+ "hooks": 0
1024
+ },
1025
+ "tags": [
1026
+ "discovery",
1027
+ "workflow",
1028
+ "validation",
1029
+ "feasibility",
1030
+ "decision"
1031
+ ],
1032
+ "verified": false,
1033
+ "downloads": 0,
1034
+ "stars": 0,
1035
+ "created_at": "2026-06-23T00:00:00Z",
1036
+ "updated_at": "2026-06-23T00:00:00Z"
1037
+ },
1004
1038
  "docguard": {
1005
1039
  "name": "DocGuard — CDD Enforcement",
1006
1040
  "id": "docguard",
1007
1041
  "description": "Canonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. One pinned runtime dependency; pure Node.js otherwise.",
1008
1042
  "author": "raccioly",
1009
- "version": "0.27.0",
1010
- "download_url": "https://github.com/raccioly/docguard/releases/download/v0.27.0/spec-kit-docguard-v0.27.0.zip",
1043
+ "version": "0.28.0",
1044
+ "download_url": "https://github.com/raccioly/docguard/releases/download/v0.28.0/spec-kit-docguard-v0.28.0.zip",
1011
1045
  "repository": "https://github.com/raccioly/docguard",
1012
1046
  "homepage": "https://www.npmjs.com/package/docguard-cli",
1013
1047
  "documentation": "https://github.com/raccioly/docguard/blob/main/extensions/spec-kit-docguard/README.md",
@@ -1043,7 +1077,7 @@
1043
1077
  "downloads": 0,
1044
1078
  "stars": 0,
1045
1079
  "created_at": "2026-03-13T00:00:00Z",
1046
- "updated_at": "2026-06-22T00:00:00Z"
1080
+ "updated_at": "2026-06-23T00:00:00Z"
1047
1081
  },
1048
1082
  "doctor": {
1049
1083
  "name": "Project Health Check",
@@ -1370,6 +1404,46 @@
1370
1404
  "created_at": "2026-06-16T00:00:00Z",
1371
1405
  "updated_at": "2026-06-16T00:00:00Z"
1372
1406
  },
1407
+ "intake": {
1408
+ "name": "Intake",
1409
+ "id": "intake",
1410
+ "description": "Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts.",
1411
+ "author": "bigsmartben",
1412
+ "version": "0.1.2",
1413
+ "download_url": "https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.2.zip",
1414
+ "repository": "https://github.com/bigsmartben/spec-kit-intake",
1415
+ "homepage": "https://github.com/bigsmartben/spec-kit-intake",
1416
+ "documentation": "https://github.com/bigsmartben/spec-kit-intake/blob/main/README.md",
1417
+ "changelog": "https://github.com/bigsmartben/spec-kit-intake/blob/main/CHANGELOG.md",
1418
+ "license": "MIT",
1419
+ "category": "docs",
1420
+ "effect": "read-write",
1421
+ "requires": {
1422
+ "speckit_version": ">=0.8.10.dev0",
1423
+ "tools": [
1424
+ {
1425
+ "name": "figma-mcp",
1426
+ "required": false
1427
+ }
1428
+ ]
1429
+ },
1430
+ "provides": {
1431
+ "commands": 3,
1432
+ "hooks": 1
1433
+ },
1434
+ "tags": [
1435
+ "intake",
1436
+ "sdd",
1437
+ "requirements",
1438
+ "validation",
1439
+ "figma"
1440
+ ],
1441
+ "verified": false,
1442
+ "downloads": 0,
1443
+ "stars": 0,
1444
+ "created_at": "2026-06-23T00:00:00Z",
1445
+ "updated_at": "2026-06-23T00:00:00Z"
1446
+ },
1373
1447
  "issue": {
1374
1448
  "name": "GitHub Issues Integration 2",
1375
1449
  "id": "issue",
@@ -2347,12 +2421,12 @@
2347
2421
  "updated_at": "2026-03-18T00:00:00Z"
2348
2422
  },
2349
2423
  "preview": {
2350
- "name": "Interactive HTML Preview",
2424
+ "name": "Spec Kit Preview",
2351
2425
  "id": "preview",
2352
- "description": "Generate self-contained interactive HTML prototypes from Spec Kit artifacts",
2426
+ "description": "Generate evidence-backed low, mid, or high fidelity previews from Spec Kit artifacts as Markdown or self-contained HTML",
2353
2427
  "author": "bigsmartben",
2354
- "version": "1.0.0",
2355
- "download_url": "https://github.com/bigsmartben/spec-kit-preview/archive/refs/tags/v1.0.0.zip",
2428
+ "version": "1.1.0",
2429
+ "download_url": "https://github.com/bigsmartben/spec-kit-preview/archive/refs/tags/v1.1.0.zip",
2356
2430
  "repository": "https://github.com/bigsmartben/spec-kit-preview",
2357
2431
  "homepage": "https://github.com/bigsmartben/spec-kit-preview",
2358
2432
  "documentation": "https://github.com/bigsmartben/spec-kit-preview/blob/main/README.md",
@@ -2364,20 +2438,21 @@
2364
2438
  "speckit_version": ">=0.8.10.dev0"
2365
2439
  },
2366
2440
  "provides": {
2367
- "commands": 1,
2441
+ "commands": 6,
2368
2442
  "hooks": 0
2369
2443
  },
2370
2444
  "tags": [
2371
2445
  "preview",
2372
2446
  "prototype",
2373
2447
  "html",
2448
+ "markdown",
2374
2449
  "ux"
2375
2450
  ],
2376
2451
  "verified": false,
2377
2452
  "downloads": 0,
2378
2453
  "stars": 0,
2379
2454
  "created_at": "2026-05-15T00:00:00Z",
2380
- "updated_at": "2026-05-15T00:00:00Z"
2455
+ "updated_at": "2026-06-23T00:00:00Z"
2381
2456
  },
2382
2457
  "product": {
2383
2458
  "name": "Product Spec Extension",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": "1.0",
3
- "updated_at": "2026-06-02T00:00:00Z",
3
+ "updated_at": "2026-06-22T00:00:00Z",
4
4
  "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/integrations/catalog.json",
5
5
  "integrations": {
6
6
  "claude": {
@@ -102,6 +102,15 @@
102
102
  "repository": "https://github.com/github/spec-kit",
103
103
  "tags": ["cli"]
104
104
  },
105
+ "firebender": {
106
+ "id": "firebender",
107
+ "name": "Firebender",
108
+ "version": "1.0.0",
109
+ "description": "Firebender IDE integration for Android Studio / IntelliJ",
110
+ "author": "spec-kit-core",
111
+ "repository": "https://github.com/github/spec-kit",
112
+ "tags": ["ide"]
113
+ },
105
114
  "forge": {
106
115
  "id": "forge",
107
116
  "name": "Forge",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "specify-cli"
3
- version = "0.11.5"
3
+ version = "0.11.6"
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"
@@ -318,6 +318,12 @@ No implementation code shall be written before:
318
318
 
319
319
  This completely inverts traditional AI code generation. Instead of generating code and hoping it works, the LLM must first generate comprehensive tests that define behavior, get them approved, and only then generate implementation.
320
320
 
321
+ #### Articles IV, V & VI: Project-Defined Governance
322
+
323
+ Articles IV, V, and VI are intentionally defined by each project's constitution rather than prescribed by Spec Kit. The constitution template provides placeholder slots and example concerns such as integration testing, observability, versioning, and breaking changes, but teams replace those placeholders with the principles that match their system and organization.
324
+
325
+ This keeps the nine-article structure stable while allowing each project to encode its own non-negotiable standards. For one project, Article IV might govern security and access boundaries; for another, it might define integration test requirements. The `/speckit.analyze` command evaluates the concrete constitution in the project, so these project-defined articles participate in compliance checks just like the built-in examples.
326
+
321
327
  #### Articles VII & VIII: Simplicity and Anti-Abstraction
322
328
 
323
329
  These paired articles combat over-engineering:
@@ -58,6 +58,7 @@ def _register_builtins() -> None:
58
58
  from .copilot import CopilotIntegration
59
59
  from .cursor_agent import CursorAgentIntegration
60
60
  from .devin import DevinIntegration
61
+ from .firebender import FirebenderIntegration
61
62
  from .forge import ForgeIntegration
62
63
  from .gemini import GeminiIntegration
63
64
  from .generic import GenericIntegration
@@ -95,6 +96,7 @@ def _register_builtins() -> None:
95
96
  _register(CopilotIntegration())
96
97
  _register(CursorAgentIntegration())
97
98
  _register(DevinIntegration())
99
+ _register(FirebenderIntegration())
98
100
  _register(ForgeIntegration())
99
101
  _register(GeminiIntegration())
100
102
  _register(GenericIntegration())
@@ -0,0 +1,33 @@
1
+ """Firebender IDE integration.
2
+
3
+ Firebender (https://firebender.com/) is an AI coding agent for Android Studio
4
+ and IntelliJ. It reads project-local custom slash commands from
5
+ ``.firebender/commands/*.mdc`` and project rules from ``.firebender/rules/*.mdc``,
6
+ so Spec Kit installs its command templates as ``.mdc`` command files and writes
7
+ the managed context section into a ``.firebender/rules/`` rule file.
8
+ """
9
+
10
+ from ..base import MarkdownIntegration
11
+
12
+
13
+ class FirebenderIntegration(MarkdownIntegration):
14
+ key = "firebender"
15
+ config = {
16
+ "name": "Firebender",
17
+ "folder": ".firebender/",
18
+ "commands_subdir": "commands",
19
+ "install_url": "https://firebender.com/",
20
+ "requires_cli": False,
21
+ }
22
+ registrar_config = {
23
+ "dir": ".firebender/commands",
24
+ "format": "markdown",
25
+ "args": "$ARGUMENTS",
26
+ "extension": ".mdc",
27
+ }
28
+ context_file = ".firebender/rules/specify-rules.mdc"
29
+ multi_install_safe = True
30
+
31
+ def command_filename(self, template_name: str) -> str:
32
+ """Firebender reads custom slash commands from ``.firebender/commands/*.mdc``."""
33
+ return f"speckit.{template_name}.mdc"
@@ -232,6 +232,30 @@ class IntegrationManifest:
232
232
  # transition. ``discard`` is a no-op when the key is absent.
233
233
  self._recovered_files.discard(normalized)
234
234
 
235
+ def remove(self, rel_path: str | Path) -> bool:
236
+ """Drop *rel_path* from the tracked file set and any recovered marker.
237
+
238
+ Operates purely on the manifest's recorded key; it does NOT touch the
239
+ file on disk. Returns ``True`` if an entry was present and removed.
240
+ Used to keep the manifest consistent after a caller deletes a stale
241
+ managed file that the current install no longer ships.
242
+
243
+ Input is normalized through the same lexical pipeline as
244
+ ``record_existing`` / ``is_recovered``: absolute paths and paths
245
+ containing ``..`` segments are rejected (return ``False``) — such paths
246
+ can never be canonical manifest keys, so there is nothing to remove.
247
+ """
248
+ rel = Path(rel_path)
249
+ if rel.is_absolute() or ".." in rel.parts:
250
+ return False
251
+ try:
252
+ abs_path = _validate_rel_path(rel, self.project_root)
253
+ normalized = abs_path.relative_to(self.project_root).as_posix()
254
+ except ValueError:
255
+ return False
256
+ self._recovered_files.discard(normalized)
257
+ return self._files.pop(normalized, None) is not None
258
+
235
259
  # -- Querying ---------------------------------------------------------
236
260
 
237
261
  @property
@@ -304,7 +304,7 @@ def install_shared_infra(
304
304
  customization warning to tell the user which flag would overwrite their
305
305
  customizations.
306
306
  """
307
- from .integrations.manifest import _sha256
307
+ from .integrations.manifest import _sha256, _validate_rel_path
308
308
 
309
309
  manifest = load_speckit_manifest(project_path, version=version, console=console)
310
310
  prior_hashes = dict(manifest.files)
@@ -325,6 +325,11 @@ def install_shared_infra(
325
325
  symlinked_files: list[str] = []
326
326
  planned_copies: list[tuple[Path, str, bytes, int]] = []
327
327
  planned_templates: list[tuple[Path, str, str]] = []
328
+ # Track every shared path the current bundle produces so we can detect
329
+ # manifest entries the core no longer ships (stale-script cleanup, #3076).
330
+ seen_rels: set[str] = set()
331
+ scripts_scanned = False
332
+ variant_dir = "bash" if script_type == "sh" else "powershell"
328
333
 
329
334
  def _decide_overwrite(rel: str, dst: Path) -> tuple[bool, str | None]:
330
335
  """Return (write, bucket) where bucket is 'skip', 'preserved', or None."""
@@ -379,7 +384,6 @@ def install_shared_infra(
379
384
  if scripts_src.is_dir():
380
385
  dest_scripts = project_path / ".specify" / "scripts"
381
386
  if _ensure_or_bucket_dir(dest_scripts):
382
- variant_dir = "bash" if script_type == "sh" else "powershell"
383
387
  variant_src = scripts_src / variant_dir
384
388
  if variant_src.is_dir():
385
389
  dest_variant = dest_scripts / variant_dir
@@ -387,10 +391,18 @@ def install_shared_infra(
387
391
  for src_path in variant_src.rglob("*"):
388
392
  if not src_path.is_file():
389
393
  continue
394
+ # Mark scanned only once a real source file is seen. An
395
+ # empty (or symlink-skipped) variant keeps this False, so
396
+ # stale-cleanup is skipped — otherwise it would treat every
397
+ # tracked script as obsolete and delete it. (The safety
398
+ # hinge is this flag, not ``seen_rels``, which also holds
399
+ # template paths populated later.)
400
+ scripts_scanned = True
390
401
 
391
402
  rel_path = src_path.relative_to(variant_src)
392
403
  dst_path = dest_variant / rel_path
393
404
  rel = dst_path.relative_to(project_path).as_posix()
405
+ seen_rels.add(rel)
394
406
  if not _safe_dest_or_bucket(dst_path, rel, parent_must_exist=False):
395
407
  continue
396
408
  write, bucket = _decide_overwrite(rel, dst_path)
@@ -442,6 +454,7 @@ def install_shared_infra(
442
454
 
443
455
  dst = dest_templates / src.name
444
456
  rel = dst.relative_to(project_path).as_posix()
457
+ seen_rels.add(rel)
445
458
  if not _safe_dest_or_bucket(dst, rel):
446
459
  continue
447
460
  write, bucket = _decide_overwrite(rel, dst)
@@ -521,5 +534,63 @@ def install_shared_infra(
521
534
  if refresh_hint:
522
535
  console.print(refresh_hint)
523
536
 
537
+ # Remove stale managed scripts: paths a previous install recorded that the
538
+ # current core no longer ships — e.g. the legacy
539
+ # ``scripts/<variant>/update-agent-context.sh`` superseded by the bundled
540
+ # agent-context extension. Left behind, such an orphan can crash when it
541
+ # sources a refreshed ``common.sh`` (#3076). Only run when the script source
542
+ # was actually scanned (so a missing/empty source never triggers mass
543
+ # deletion), scoped to the active variant, and only for *managed* copies —
544
+ # a user-customized file (hash diverges), a symlink, or a recovered entry is
545
+ # preserved by ``_is_managed``.
546
+ if scripts_scanned:
547
+ stale_removed: list[str] = []
548
+ script_prefix = f".specify/scripts/{variant_dir}/"
549
+ for rel in list(prior_hashes):
550
+ if rel in seen_rels or not rel.startswith(script_prefix):
551
+ continue
552
+ # Guard corrupted/hand-edited manifest keys BEFORE any filesystem
553
+ # access: absolute, ``..``, or (on Windows) drive-relative keys such
554
+ # as ``C:tmp`` are not ``is_absolute()`` yet discard the project root
555
+ # when joined. The lexical check is a fast reject; ``_validate_rel_path``
556
+ # resolves the join and confirms containment, catching the rest. A key
557
+ # that still escapes is *skipped*, never turned into an install-time
558
+ # hard failure. Mirrors IntegrationManifest.is_recovered / remove.
559
+ rel_path = Path(rel)
560
+ if rel_path.is_absolute() or ".." in rel_path.parts:
561
+ continue
562
+ try:
563
+ _validate_rel_path(rel_path, project_path)
564
+ except ValueError:
565
+ continue
566
+ dst = project_path / rel_path
567
+ # Already gone from disk but still tracked: drop the orphaned manifest
568
+ # entry so the manifest stays consistent (nothing to unlink).
569
+ if not dst.exists() and not dst.is_symlink():
570
+ manifest.remove(rel)
571
+ continue
572
+ if not _is_managed(rel, dst):
573
+ continue # user-modified / symlink / recovered → preserve
574
+ # Never unlink through a symlinked ancestor (writes/deletes could
575
+ # escape the project root). The safe-destination check buckets such
576
+ # paths under ``symlinked_files`` and we leave them in place.
577
+ if not _safe_dest_or_bucket(dst, rel):
578
+ continue
579
+ try:
580
+ dst.unlink()
581
+ except OSError as exc:
582
+ console.print(f"[yellow]⚠[/yellow] could not remove stale {rel}: {exc}")
583
+ continue
584
+ manifest.remove(rel)
585
+ stale_removed.append(rel)
586
+
587
+ if stale_removed:
588
+ console.print(
589
+ f"[yellow]⚠[/yellow] Removed {len(stale_removed)} obsolete shared "
590
+ "script(s) left by a previous install:"
591
+ )
592
+ for path in stale_removed:
593
+ console.print(f" {path}")
594
+
524
595
  manifest.save()
525
596
  return True