specify-cli 1.0.11__tar.gz → 1.0.12__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 (838) hide show
  1. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/codeql.yml +2 -2
  2. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/lint.yml +51 -3
  3. specify_cli-1.0.12/AGENTS.md +58 -0
  4. {specify_cli-1.0.11 → specify_cli-1.0.12}/CHANGELOG.md +25 -0
  5. {specify_cli-1.0.11 → specify_cli-1.0.12}/CONTRIBUTING.md +63 -8
  6. {specify_cli-1.0.11 → specify_cli-1.0.12}/PKG-INFO +1 -1
  7. {specify_cli-1.0.11 → specify_cli-1.0.12}/bundles/catalog.community.json +28 -4
  8. {specify_cli-1.0.11 → specify_cli-1.0.12}/design/cli.md +23 -0
  9. specify_cli-1.0.12/design/integration.md +108 -0
  10. specify_cli-1.0.12/design/workflow-step.md +64 -0
  11. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/community/bundles.md +1 -0
  12. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/community/extensions.md +3 -2
  13. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/community/friends.md +1 -1
  14. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/community/presets.md +2 -1
  15. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/install/air-gapped.md +2 -2
  16. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/installation.md +1 -1
  17. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/authentication.md +72 -2
  18. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/core.md +2 -2
  19. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/extensions.md +5 -0
  20. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/workflows.md +1 -0
  21. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/catalog.community.json +60 -14
  22. {specify_cli-1.0.11 → specify_cli-1.0.12}/integrations/CONTRIBUTING.md +19 -19
  23. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/ARCHITECTURE.md +4 -2
  24. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/README.md +1 -1
  25. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/catalog.community.json +47 -14
  26. {specify_cli-1.0.11 → specify_cli-1.0.12}/pyproject.toml +1 -1
  27. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_invocation_style.py +1 -0
  28. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/__init__.py +2 -0
  29. specify_cli-1.0.12/src/specify_cli/authentication/bitbucket.py +78 -0
  30. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/config.py +26 -6
  31. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/adapters.py +13 -7
  32. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/events/__init__.py +4 -1
  33. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/_helpers.py +54 -0
  34. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_upgrade.py +9 -1
  35. specify_cli-1.0.12/src/specify_cli/presets/__init__.py +64 -0
  36. specify_cli-1.0.12/src/specify_cli/presets/_catalog.py +926 -0
  37. specify_cli-1.0.12/src/specify_cli/presets/_manager.py +969 -0
  38. specify_cli-1.0.12/src/specify_cli/presets/_manager_commands.py +1284 -0
  39. specify_cli-1.0.12/src/specify_cli/presets/_manager_skills.py +1544 -0
  40. specify_cli-1.0.12/src/specify_cli/presets/_manifest.py +438 -0
  41. specify_cli-1.0.12/src/specify_cli/presets/_registry.py +245 -0
  42. specify_cli-1.0.12/src/specify_cli/presets/_resolver.py +949 -0
  43. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/expressions.py +22 -0
  44. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integration/test_preset_update_workflow.py +1 -1
  45. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_alquimia.py +106 -0
  46. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/authentication/test_authentication.py +237 -0
  47. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_adapters.py +23 -0
  48. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/events/test_events.py +20 -0
  49. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_upgrade.py +189 -0
  50. specify_cli-1.0.12/tests/specify_cli/presets/_helpers.py +254 -0
  51. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/conftest.py +1 -1
  52. specify_cli-1.0.12/tests/specify_cli/presets/test_catalog.py +1668 -0
  53. specify_cli-1.0.12/tests/specify_cli/presets/test_domain_exports.py +30 -0
  54. specify_cli-1.0.12/tests/specify_cli/presets/test_manager.py +1609 -0
  55. specify_cli-1.0.12/tests/specify_cli/presets/test_manager_commands.py +3160 -0
  56. specify_cli-1.0.12/tests/specify_cli/presets/test_manager_skills.py +2807 -0
  57. specify_cli-1.0.12/tests/specify_cli/presets/test_manifest.py +555 -0
  58. specify_cli-1.0.12/tests/specify_cli/presets/test_registry.py +396 -0
  59. specify_cli-1.0.12/tests/specify_cli/presets/test_resolver.py +1802 -0
  60. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_extension_skills.py +1 -1
  61. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_github_workflows.py +40 -0
  62. specify_cli-1.0.12/tests/test_presets.py +808 -0
  63. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_workflows.py +65 -0
  64. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/ARCHITECTURE.md +1 -1
  65. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/README.md +1 -1
  66. specify_cli-1.0.11/AGENTS.md +0 -611
  67. specify_cli-1.0.11/src/specify_cli/presets/__init__.py +0 -6259
  68. specify_cli-1.0.11/tests/specify_cli/presets/_helpers.py +0 -128
  69. specify_cli-1.0.11/tests/test_presets.py +0 -12884
  70. {specify_cli-1.0.11 → specify_cli-1.0.12}/.devcontainer/devcontainer.json +0 -0
  71. {specify_cli-1.0.11 → specify_cli-1.0.12}/.devcontainer/post-create.sh +0 -0
  72. {specify_cli-1.0.11 → specify_cli-1.0.12}/.editorconfig +0 -0
  73. {specify_cli-1.0.11 → specify_cli-1.0.12}/.gitattributes +0 -0
  74. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/CODEOWNERS +0 -0
  75. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
  76. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  77. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
  78. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  79. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  80. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  81. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  82. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  83. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/aw/actions-lock.json +0 -0
  84. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/dependabot.yml +0 -0
  85. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/scripts/check_extension_version_bump.py +0 -0
  86. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/scripts/check_security_requirements.py +0 -0
  87. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/security-audit-requirements.txt +0 -0
  88. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/skills/add-community-extension/SKILL.md +0 -0
  89. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/skills/code-review/SKILL.md +0 -0
  90. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/RELEASE-PROCESS.md +0 -0
  91. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/add-community-bundle.lock.yml +0 -0
  92. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/add-community-bundle.md +0 -0
  93. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/add-community-extension.lock.yml +0 -0
  94. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/add-community-extension.md +0 -0
  95. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/add-community-preset.lock.yml +0 -0
  96. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/add-community-preset.md +0 -0
  97. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/bug-assess.lock.yml +0 -0
  98. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/bug-assess.md +0 -0
  99. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/bug-fix.lock.yml +0 -0
  100. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/bug-fix.md +0 -0
  101. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/bug-test.lock.yml +0 -0
  102. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/bug-test.md +0 -0
  103. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/catalog-assign.yml +0 -0
  104. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/docs.yml +0 -0
  105. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/extension-version-guard.yml +0 -0
  106. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/feature-assess.lock.yml +0 -0
  107. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/feature-assess.md +0 -0
  108. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/publish-pypi.yml +0 -0
  109. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/release-trigger.yml +0 -0
  110. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/release.yml +0 -0
  111. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/security.yml +0 -0
  112. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/stale.yml +0 -0
  113. {specify_cli-1.0.11 → specify_cli-1.0.12}/.github/workflows/test.yml +0 -0
  114. {specify_cli-1.0.11 → specify_cli-1.0.12}/.gitignore +0 -0
  115. {specify_cli-1.0.11 → specify_cli-1.0.12}/.markdownlint-cli2.jsonc +0 -0
  116. {specify_cli-1.0.11 → specify_cli-1.0.12}/.pre-commit-config.yaml +0 -0
  117. {specify_cli-1.0.11 → specify_cli-1.0.12}/.zenodo.json +0 -0
  118. {specify_cli-1.0.11 → specify_cli-1.0.12}/CITATION.cff +0 -0
  119. {specify_cli-1.0.11 → specify_cli-1.0.12}/CODE_OF_CONDUCT.md +0 -0
  120. {specify_cli-1.0.11 → specify_cli-1.0.12}/DEVELOPMENT.md +0 -0
  121. {specify_cli-1.0.11 → specify_cli-1.0.12}/LICENSE +0 -0
  122. {specify_cli-1.0.11 → specify_cli-1.0.12}/README.ja.md +0 -0
  123. {specify_cli-1.0.11 → specify_cli-1.0.12}/README.md +0 -0
  124. {specify_cli-1.0.11 → specify_cli-1.0.12}/README.zh-CN.md +0 -0
  125. {specify_cli-1.0.11 → specify_cli-1.0.12}/SECURITY.md +0 -0
  126. {specify_cli-1.0.11 → specify_cli-1.0.12}/SUPPORT.md +0 -0
  127. {specify_cli-1.0.11 → specify_cli-1.0.12}/bundles/assess/README.md +0 -0
  128. {specify_cli-1.0.11 → specify_cli-1.0.12}/bundles/assess/bundle.yml +0 -0
  129. {specify_cli-1.0.11 → specify_cli-1.0.12}/bundles/bugfix/README.md +0 -0
  130. {specify_cli-1.0.11 → specify_cli-1.0.12}/bundles/bugfix/bundle.yml +0 -0
  131. {specify_cli-1.0.11 → specify_cli-1.0.12}/bundles/catalog.json +0 -0
  132. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/.gitignore +0 -0
  133. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/README.md +0 -0
  134. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/community/overview.md +0 -0
  135. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/community/walkthroughs.md +0 -0
  136. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/concepts/complex-features.md +0 -0
  137. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/concepts/sdd.md +0 -0
  138. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/concepts/spec-of-specs.md +0 -0
  139. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/concepts/spec-persistence.md +0 -0
  140. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/docfx.json +0 -0
  141. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/assessment.md +0 -0
  142. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/bugfix.md +0 -0
  143. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/contract-driven-development.md +0 -0
  144. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/customization.md +0 -0
  145. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/evolving-specs.md +0 -0
  146. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/existing-projects.md +0 -0
  147. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/guides/monorepo.md +0 -0
  148. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/history.md +0 -0
  149. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/images/spec-kit-logo.webp +0 -0
  150. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/index.md +0 -0
  151. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/install/one-time.md +0 -0
  152. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/install/pipx.md +0 -0
  153. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/install/pypi.md +0 -0
  154. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/install/uv.md +0 -0
  155. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/local-development.md +0 -0
  156. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/quickstart.md +0 -0
  157. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/agentic-assessment.md +0 -0
  158. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/agentic-bugfix.md +0 -0
  159. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/agentic-sdd.md +0 -0
  160. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/artifacts.md +0 -0
  161. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/bundles.md +0 -0
  162. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/integrations.md +0 -0
  163. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/overview.md +0 -0
  164. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/reference/presets.md +0 -0
  165. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/template/public/main.css +0 -0
  166. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/toc.yml +0 -0
  167. {specify_cli-1.0.11 → specify_cli-1.0.12}/docs/upgrade.md +0 -0
  168. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/business-analyst/README.md +0 -0
  169. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/business-analyst/bundle.yml +0 -0
  170. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/developer/README.md +0 -0
  171. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/developer/bundle.yml +0 -0
  172. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/product-manager/README.md +0 -0
  173. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/product-manager/bundle.yml +0 -0
  174. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/security-researcher/README.md +0 -0
  175. {specify_cli-1.0.11 → specify_cli-1.0.12}/examples/bundles/security-researcher/bundle.yml +0 -0
  176. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  177. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  178. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  179. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  180. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/README.md +0 -0
  181. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  182. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/README.md +0 -0
  183. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/agent-context-config.yml +0 -0
  184. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/agent-context-defaults.json +0 -0
  185. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  186. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/extension.yml +0 -0
  187. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  188. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  189. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
  190. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/README.md +0 -0
  191. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/commands/speckit.assess.decide.md +0 -0
  192. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/commands/speckit.assess.define.md +0 -0
  193. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/commands/speckit.assess.intake.md +0 -0
  194. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/commands/speckit.assess.research.md +0 -0
  195. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/commands/speckit.assess.shape.md +0 -0
  196. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/assess/extension.yml +0 -0
  197. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/bug/README.md +0 -0
  198. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  199. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  200. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/bug/commands/speckit.bug.test.md +0 -0
  201. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/bug/extension.yml +0 -0
  202. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/catalog.json +0 -0
  203. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/README.md +0 -0
  204. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/commands/speckit.git.commit.md +0 -0
  205. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/commands/speckit.git.feature.md +0 -0
  206. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/commands/speckit.git.initialize.md +0 -0
  207. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/commands/speckit.git.remote.md +0 -0
  208. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/commands/speckit.git.validate.md +0 -0
  209. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/config-template.yml +0 -0
  210. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/extension.yml +0 -0
  211. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/git-config.yml +0 -0
  212. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  213. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  214. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/bash/git-common.sh +0 -0
  215. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  216. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  217. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
  218. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  219. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  220. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/python/auto_commit.py +0 -0
  221. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/python/create_new_feature_branch.py +0 -0
  222. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/python/git_common.py +0 -0
  223. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/git/scripts/python/initialize_repo.py +0 -0
  224. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/selftest/commands/selftest.md +0 -0
  225. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/selftest/extension.yml +0 -0
  226. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/.gitignore +0 -0
  227. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/CHANGELOG.md +0 -0
  228. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/EXAMPLE-README.md +0 -0
  229. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/LICENSE +0 -0
  230. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/README.md +0 -0
  231. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/commands/example.md +0 -0
  232. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/config-template.yml +0 -0
  233. {specify_cli-1.0.11 → specify_cli-1.0.12}/extensions/template/extension.yml +0 -0
  234. {specify_cli-1.0.11 → specify_cli-1.0.12}/integrations/README.md +0 -0
  235. {specify_cli-1.0.11 → specify_cli-1.0.12}/integrations/catalog.community.json +0 -0
  236. {specify_cli-1.0.11 → specify_cli-1.0.12}/integrations/catalog.json +0 -0
  237. {specify_cli-1.0.11 → specify_cli-1.0.12}/media/bootstrap-claude-code.gif +0 -0
  238. {specify_cli-1.0.11 → specify_cli-1.0.12}/media/logo_large.webp +0 -0
  239. {specify_cli-1.0.11 → specify_cli-1.0.12}/media/logo_small.webp +0 -0
  240. {specify_cli-1.0.11 → specify_cli-1.0.12}/media/spec-kit-video-header.jpg +0 -0
  241. {specify_cli-1.0.11 → specify_cli-1.0.12}/media/specify_cli.gif +0 -0
  242. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-April.md +0 -0
  243. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-August.md +0 -0
  244. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-February.md +0 -0
  245. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-July.md +0 -0
  246. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-June.md +0 -0
  247. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-March.md +0 -0
  248. {specify_cli-1.0.11 → specify_cli-1.0.12}/newsletters/2026-May.md +0 -0
  249. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/PUBLISHING.md +0 -0
  250. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/catalog.json +0 -0
  251. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/constitution-sync/README.md +0 -0
  252. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/constitution-sync/commands/speckit.constitution.md +0 -0
  253. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/constitution-sync/preset.yml +0 -0
  254. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/README.md +0 -0
  255. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/commands/speckit.constitution.md +0 -0
  256. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/commands/speckit.implement.md +0 -0
  257. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/commands/speckit.plan.md +0 -0
  258. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/commands/speckit.specify.md +0 -0
  259. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/commands/speckit.tasks.md +0 -0
  260. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/lean/preset.yml +0 -0
  261. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/scaffold/README.md +0 -0
  262. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  263. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/scaffold/commands/speckit.specify.md +0 -0
  264. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/scaffold/preset.yml +0 -0
  265. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/scaffold/templates/myext-template.md +0 -0
  266. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/scaffold/templates/spec-template.md +0 -0
  267. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/commands/speckit.specify.md +0 -0
  268. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  269. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/preset.yml +0 -0
  270. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/templates/checklist-template.md +0 -0
  271. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/templates/constitution-template.md +0 -0
  272. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/templates/plan-template.md +0 -0
  273. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/templates/spec-template.md +0 -0
  274. {specify_cli-1.0.11 → specify_cli-1.0.12}/presets/self-test/templates/tasks-template.md +0 -0
  275. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/bash/check-prerequisites.sh +0 -0
  276. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/bash/common.sh +0 -0
  277. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/bash/create-new-feature.sh +0 -0
  278. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/bash/resolve-template.sh +0 -0
  279. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/bash/setup-plan.sh +0 -0
  280. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/bash/setup-tasks.sh +0 -0
  281. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/powershell/check-prerequisites.ps1 +0 -0
  282. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/powershell/common.ps1 +0 -0
  283. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/powershell/create-new-feature.ps1 +0 -0
  284. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/powershell/resolve-template.ps1 +0 -0
  285. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/powershell/setup-plan.ps1 +0 -0
  286. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/powershell/setup-tasks.ps1 +0 -0
  287. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/python/check_prerequisites.py +0 -0
  288. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/python/common.py +0 -0
  289. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/python/create_new_feature.py +0 -0
  290. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/python/resolve_template.py +0 -0
  291. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/python/setup_plan.py +0 -0
  292. {specify_cli-1.0.11 → specify_cli-1.0.12}/scripts/python/setup_tasks.py +0 -0
  293. {specify_cli-1.0.11 → specify_cli-1.0.12}/spec-driven.md +0 -0
  294. {specify_cli-1.0.11 → specify_cli-1.0.12}/spec-kit.code-workspace +0 -0
  295. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/__init__.py +0 -0
  296. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_agent_config.py +0 -0
  297. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_assets.py +0 -0
  298. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_console.py +0 -0
  299. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_download_security.py +0 -0
  300. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_init_options.py +0 -0
  301. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_installed_list_json.py +0 -0
  302. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_project.py +0 -0
  303. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_toml_string.py +0 -0
  304. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_utils.py +0 -0
  305. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/_version.py +0 -0
  306. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/agents.py +0 -0
  307. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/__init__.py +0 -0
  308. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/_commands.py +0 -0
  309. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/_identifiers.py +0 -0
  310. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/catalog.py +0 -0
  311. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/command_info.py +0 -0
  312. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/command_list.py +0 -0
  313. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/command_lookup.py +0 -0
  314. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/models.py +0 -0
  315. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/artifacts/resolution.py +0 -0
  316. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/azure_devops.py +0 -0
  317. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/base.py +0 -0
  318. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/github.py +0 -0
  319. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/github_http.py +0 -0
  320. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/authentication/http.py +0 -0
  321. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundler.py +0 -0
  322. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/__init__.py +0 -0
  323. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/_commands.py +0 -0
  324. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalog/__init__.py +0 -0
  325. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalog/command_add.py +0 -0
  326. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalog/command_list.py +0 -0
  327. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalog/command_remove.py +0 -0
  328. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalog_config.py +0 -0
  329. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalog_stack.py +0 -0
  330. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/catalogs.py +0 -0
  331. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_add.py +0 -0
  332. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_build.py +0 -0
  333. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_info.py +0 -0
  334. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_init.py +0 -0
  335. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_install.py +0 -0
  336. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_list.py +0 -0
  337. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_remove.py +0 -0
  338. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_search.py +0 -0
  339. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_update.py +0 -0
  340. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/command_validate.py +0 -0
  341. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/conflict.py +0 -0
  342. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/installer.py +0 -0
  343. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/manifest.py +0 -0
  344. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/packager.py +0 -0
  345. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/primitives.py +0 -0
  346. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/project.py +0 -0
  347. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/records.py +0 -0
  348. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/references.py +0 -0
  349. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/resolver.py +0 -0
  350. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/sources.py +0 -0
  351. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/validator.py +0 -0
  352. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/versioning.py +0 -0
  353. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/bundles/yamlio.py +0 -0
  354. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/catalogs.py +0 -0
  355. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/command_check.py +0 -0
  356. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/command_init.py +0 -0
  357. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/command_version.py +0 -0
  358. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/events/command_run.py +0 -0
  359. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/__init__.py +0 -0
  360. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/_command_update_artifacts.py +0 -0
  361. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/_command_update_discovery.py +0 -0
  362. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/_command_update_transaction.py +0 -0
  363. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/_commands.py +0 -0
  364. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/catalog/__init__.py +0 -0
  365. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/catalog/_helpers.py +0 -0
  366. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/catalog/command_add.py +0 -0
  367. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/catalog/command_list.py +0 -0
  368. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/catalog/command_remove.py +0 -0
  369. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_add.py +0 -0
  370. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_disable.py +0 -0
  371. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_enable.py +0 -0
  372. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_info.py +0 -0
  373. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_list.py +0 -0
  374. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_remove.py +0 -0
  375. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_search.py +0 -0
  376. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_set_priority.py +0 -0
  377. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/extensions/command_update.py +0 -0
  378. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integration_runtime.py +0 -0
  379. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integration_state.py +0 -0
  380. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integration_status.py +0 -0
  381. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/__init__.py +0 -0
  382. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/_command_scaffold_generation.py +0 -0
  383. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/_command_upgrade_layout.py +0 -0
  384. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/_commands.py +0 -0
  385. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/agy/__init__.py +0 -0
  386. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/alquimia/__init__.py +0 -0
  387. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/amp/__init__.py +0 -0
  388. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  389. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/base.py +0 -0
  390. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/bob/__init__.py +0 -0
  391. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/catalog/__init__.py +0 -0
  392. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/catalog/command_add.py +0 -0
  393. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/catalog/command_list.py +0 -0
  394. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/catalog/command_remove.py +0 -0
  395. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/claude/__init__.py +0 -0
  396. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/cline/__init__.py +0 -0
  397. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  398. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/codex/__init__.py +0 -0
  399. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_code/__init__.py +0 -0
  400. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_info.py +0 -0
  401. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_install.py +0 -0
  402. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_list.py +0 -0
  403. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_scaffold.py +0 -0
  404. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_search.py +0 -0
  405. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_status.py +0 -0
  406. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_switch.py +0 -0
  407. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_uninstall.py +0 -0
  408. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/command_use.py +0 -0
  409. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/copilot/__init__.py +0 -0
  410. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  411. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/devin/__init__.py +0 -0
  412. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/docker_agent/__init__.py +0 -0
  413. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/droid/__init__.py +0 -0
  414. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/dsh/__init__.py +0 -0
  415. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/firebender/__init__.py +0 -0
  416. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/forge/__init__.py +0 -0
  417. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  418. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/generic/__init__.py +0 -0
  419. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/goose/__init__.py +0 -0
  420. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/grok/__init__.py +0 -0
  421. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/hermes/__init__.py +0 -0
  422. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/junie/__init__.py +0 -0
  423. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  424. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/kimi/__init__.py +0 -0
  425. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
  426. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  427. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/manifest.py +0 -0
  428. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/muse/__init__.py +0 -0
  429. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/omp/__init__.py +0 -0
  430. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  431. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/pi/__init__.py +0 -0
  432. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  433. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  434. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  435. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/shai/__init__.py +0 -0
  436. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  437. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/trae/__init__.py +0 -0
  438. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  439. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/zcode/__init__.py +0 -0
  440. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/integrations/zed/__init__.py +0 -0
  441. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/_commands.py +0 -0
  442. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/catalog/__init__.py +0 -0
  443. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/catalog/command_add.py +0 -0
  444. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/catalog/command_list.py +0 -0
  445. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/catalog/command_remove.py +0 -0
  446. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_add.py +0 -0
  447. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_disable.py +0 -0
  448. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_enable.py +0 -0
  449. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_info.py +0 -0
  450. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_list.py +0 -0
  451. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_remove.py +0 -0
  452. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_resolve.py +0 -0
  453. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_search.py +0 -0
  454. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_set_priority.py +0 -0
  455. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/presets/command_update.py +0 -0
  456. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/selfs/__init__.py +0 -0
  457. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/selfs/command_check.py +0 -0
  458. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/selfs/command_upgrade.py +0 -0
  459. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/shared_infra.py +0 -0
  460. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/__init__.py +0 -0
  461. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/_command_resume_state.py +0 -0
  462. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/_command_run_ownership.py +0 -0
  463. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/_commands.py +0 -0
  464. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/base.py +0 -0
  465. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/catalog/__init__.py +0 -0
  466. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/catalog/_domain.py +0 -0
  467. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/catalog/command_add.py +0 -0
  468. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/catalog/command_list.py +0 -0
  469. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/catalog/command_remove.py +0 -0
  470. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_add.py +0 -0
  471. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_disable.py +0 -0
  472. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_enable.py +0 -0
  473. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_info.py +0 -0
  474. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_list.py +0 -0
  475. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_remove.py +0 -0
  476. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_resolve.py +0 -0
  477. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_resume.py +0 -0
  478. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_run.py +0 -0
  479. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_search.py +0 -0
  480. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_status.py +0 -0
  481. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/command_update.py +0 -0
  482. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/engine.py +0 -0
  483. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/__init__.py +0 -0
  484. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/command_add.py +0 -0
  485. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/command_disable.py +0 -0
  486. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/command_enable.py +0 -0
  487. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/command_list.py +0 -0
  488. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/command_remove.py +0 -0
  489. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/command_set_priority.py +0 -0
  490. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/composer.py +0 -0
  491. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/layer_sources.py +0 -0
  492. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/merge.py +0 -0
  493. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/operations.py +0 -0
  494. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/resolver.py +0 -0
  495. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/overlay/schema.py +0 -0
  496. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/__init__.py +0 -0
  497. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/_helpers.py +0 -0
  498. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/catalog/__init__.py +0 -0
  499. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/catalog/_domain.py +0 -0
  500. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/catalog/command_add.py +0 -0
  501. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/catalog/command_list.py +0 -0
  502. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/catalog/command_remove.py +0 -0
  503. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/command/__init__.py +0 -0
  504. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/command_add.py +0 -0
  505. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/command_info.py +0 -0
  506. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/command_list.py +0 -0
  507. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/command_remove.py +0 -0
  508. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/command_search.py +0 -0
  509. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/do_while/__init__.py +0 -0
  510. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/fan_in/__init__.py +0 -0
  511. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/fan_out/__init__.py +0 -0
  512. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/gate/__init__.py +0 -0
  513. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/if_then/__init__.py +0 -0
  514. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/init/__init__.py +0 -0
  515. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/prompt/__init__.py +0 -0
  516. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/shell/__init__.py +0 -0
  517. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/slot/__init__.py +0 -0
  518. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/switch/__init__.py +0 -0
  519. {specify_cli-1.0.11 → specify_cli-1.0.12}/src/specify_cli/workflows/step/while_loop/__init__.py +0 -0
  520. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/checklist-template.md +0 -0
  521. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/analyze.md +0 -0
  522. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/checklist.md +0 -0
  523. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/clarify.md +0 -0
  524. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/constitution.md +0 -0
  525. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/converge.md +0 -0
  526. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/implement.md +0 -0
  527. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/plan.md +0 -0
  528. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/specify.md +0 -0
  529. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/tasks.md +0 -0
  530. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/commands/taskstoissues.md +0 -0
  531. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/constitution-template.md +0 -0
  532. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/plan-template.md +0 -0
  533. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/spec-template.md +0 -0
  534. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/tasks-template.md +0 -0
  535. {specify_cli-1.0.11 → specify_cli-1.0.12}/templates/vscode-settings.json +0 -0
  536. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/__init__.py +0 -0
  537. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/conftest.py +0 -0
  538. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_bundled_extension_update_delivery.py +0 -0
  539. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_bundled_extension_versions.py +0 -0
  540. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_catalog_schema.py +0 -0
  541. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_extension_version_guard_script.py +0 -0
  542. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_firstparty_bundle_catalog_consistency.py +0 -0
  543. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_manifest_schema.py +0 -0
  544. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_wheel_bundled_presets.py +0 -0
  545. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_wheel_bundled_workflows.py +0 -0
  546. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/contract/test_wheel_core_pack_scripts.py +0 -0
  547. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/__init__.py +0 -0
  548. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/assess/__init__.py +0 -0
  549. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/assess/test_assess_extension.py +0 -0
  550. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/bug/__init__.py +0 -0
  551. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/bug/test_bug_extension.py +0 -0
  552. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/git/__init__.py +0 -0
  553. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/git/test_git_extension.py +0 -0
  554. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/git/test_git_extension_python_parity.py +0 -0
  555. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/test_agent_context_cli_free.py +0 -0
  556. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/test_extension_agent_context.py +0 -0
  557. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
  558. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
  559. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/hooks/TESTING.md +0 -0
  560. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/hooks/plan.md +0 -0
  561. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/hooks/spec.md +0 -0
  562. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/hooks/tasks.md +0 -0
  563. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/http_helpers.py +0 -0
  564. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/__init__.py +0 -0
  565. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/conftest.py +0 -0
  566. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_base.py +0 -0
  567. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_cli.py +0 -0
  568. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_extra_args.py +0 -0
  569. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_home_isolation.py +0 -0
  570. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_agy.py +0 -0
  571. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_amp.py +0 -0
  572. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_auggie.py +0 -0
  573. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_base_markdown.py +0 -0
  574. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_base_skills.py +0 -0
  575. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_base_toml.py +0 -0
  576. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_base_yaml.py +0 -0
  577. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_bob.py +0 -0
  578. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_claude.py +0 -0
  579. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_cline.py +0 -0
  580. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_codebuddy.py +0 -0
  581. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_codex.py +0 -0
  582. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_command_code.py +0 -0
  583. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_copilot.py +0 -0
  584. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_cursor_agent.py +0 -0
  585. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_devin.py +0 -0
  586. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_docker_agent.py +0 -0
  587. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_droid.py +0 -0
  588. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_dsh.py +0 -0
  589. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_firebender.py +0 -0
  590. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_forge.py +0 -0
  591. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_gemini.py +0 -0
  592. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_generic.py +0 -0
  593. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_goose.py +0 -0
  594. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_grok.py +0 -0
  595. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_hermes.py +0 -0
  596. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_junie.py +0 -0
  597. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_kilocode.py +0 -0
  598. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_kimi.py +0 -0
  599. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_kiro_cli.py +0 -0
  600. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_lingma.py +0 -0
  601. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_muse.py +0 -0
  602. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_omp.py +0 -0
  603. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_opencode.py +0 -0
  604. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_pi.py +0 -0
  605. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_qodercli.py +0 -0
  606. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_qwen.py +0 -0
  607. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_rovodev.py +0 -0
  608. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_shai.py +0 -0
  609. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_state.py +0 -0
  610. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_tabnine.py +0 -0
  611. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_trae.py +0 -0
  612. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_vibe.py +0 -0
  613. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_zcode.py +0 -0
  614. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_integration_zed.py +0 -0
  615. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_manifest.py +0 -0
  616. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_registry.py +0 -0
  617. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
  618. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/parity_helpers.py +0 -0
  619. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/__init__.py +0 -0
  620. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/conftest.py +0 -0
  621. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/helpers.py +0 -0
  622. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/test_catalog.py +0 -0
  623. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/test_catalog_parity.py +0 -0
  624. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/test_command_info.py +0 -0
  625. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/test_command_list.py +0 -0
  626. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/test_command_lookup.py +0 -0
  627. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/artifacts/test_registration.py +0 -0
  628. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/authentication/__init__.py +0 -0
  629. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/authentication/helpers.py +0 -0
  630. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/authentication/test_github_http.py +0 -0
  631. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/__init__.py +0 -0
  632. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/_command_helpers.py +0 -0
  633. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/catalog/__init__.py +0 -0
  634. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/catalog/test_command_add.py +0 -0
  635. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/catalog/test_command_list.py +0 -0
  636. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/catalog/test_command_remove.py +0 -0
  637. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/conftest.py +0 -0
  638. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/helpers.py +0 -0
  639. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_bundles.py +0 -0
  640. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_catalog_config.py +0 -0
  641. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_catalog_stack.py +0 -0
  642. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_add.py +0 -0
  643. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_build.py +0 -0
  644. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_info.py +0 -0
  645. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_init.py +0 -0
  646. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_install.py +0 -0
  647. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_list.py +0 -0
  648. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_remove.py +0 -0
  649. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_search.py +0 -0
  650. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_update.py +0 -0
  651. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_command_validate.py +0 -0
  652. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_commands.py +0 -0
  653. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_conflict.py +0 -0
  654. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_installer.py +0 -0
  655. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_offline.py +0 -0
  656. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_packager.py +0 -0
  657. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_primitives.py +0 -0
  658. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_records.py +0 -0
  659. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_references.py +0 -0
  660. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_resolver.py +0 -0
  661. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_security_paths.py +0 -0
  662. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_sources.py +0 -0
  663. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_validator.py +0 -0
  664. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_versioning.py +0 -0
  665. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/bundles/test_yamlio.py +0 -0
  666. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/events/__init__.py +0 -0
  667. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/events/test_command_run.py +0 -0
  668. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/__init__.py +0 -0
  669. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/_helpers.py +0 -0
  670. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/catalog/__init__.py +0 -0
  671. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/catalog/test_command_add.py +0 -0
  672. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/catalog/test_command_list.py +0 -0
  673. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/catalog/test_command_remove.py +0 -0
  674. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/conftest.py +0 -0
  675. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_add.py +0 -0
  676. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_add_path_traversal.py +0 -0
  677. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_disable.py +0 -0
  678. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_enable.py +0 -0
  679. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_info.py +0 -0
  680. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_list.py +0 -0
  681. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_remove.py +0 -0
  682. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_search.py +0 -0
  683. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_set_priority.py +0 -0
  684. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_update.py +0 -0
  685. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_update_artifacts.py +0 -0
  686. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_update_discovery.py +0 -0
  687. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/extensions/test_command_update_transaction.py +0 -0
  688. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/__init__.py +0 -0
  689. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/_catalog_helpers.py +0 -0
  690. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/_helpers.py +0 -0
  691. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/_scaffold_helpers.py +0 -0
  692. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/catalog/__init__.py +0 -0
  693. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/catalog/test_command_add.py +0 -0
  694. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/catalog/test_command_list.py +0 -0
  695. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/catalog/test_command_remove.py +0 -0
  696. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/conftest.py +0 -0
  697. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_catalog.py +0 -0
  698. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_info.py +0 -0
  699. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_install.py +0 -0
  700. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_list.py +0 -0
  701. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_scaffold.py +0 -0
  702. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_scaffold_generation.py +0 -0
  703. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_search.py +0 -0
  704. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_status.py +0 -0
  705. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_switch.py +0 -0
  706. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_uninstall.py +0 -0
  707. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_upgrade_layout.py +0 -0
  708. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_command_use.py +0 -0
  709. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_lifecycle.py +0 -0
  710. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/integrations/test_registration.py +0 -0
  711. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/__init__.py +0 -0
  712. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/_fixtures.py +0 -0
  713. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/catalog/__init__.py +0 -0
  714. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/catalog/test_command_add.py +0 -0
  715. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/catalog/test_command_list.py +0 -0
  716. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/catalog/test_command_remove.py +0 -0
  717. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_add.py +0 -0
  718. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_disable.py +0 -0
  719. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_enable.py +0 -0
  720. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_info.py +0 -0
  721. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_list.py +0 -0
  722. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_remove.py +0 -0
  723. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_resolve.py +0 -0
  724. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_search.py +0 -0
  725. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_set_priority.py +0 -0
  726. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_command_update.py +0 -0
  727. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/presets/test_registration.py +0 -0
  728. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/self_upgrade_helpers.py +0 -0
  729. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/selfs/__init__.py +0 -0
  730. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/selfs/test_command_check.py +0 -0
  731. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/selfs/test_command_upgrade.py +0 -0
  732. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_agent_config.py +0 -0
  733. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_check_tool.py +0 -0
  734. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_command_check.py +0 -0
  735. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_command_init.py +0 -0
  736. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_command_version.py +0 -0
  737. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_root_version_callback.py +0 -0
  738. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_version_detection.py +0 -0
  739. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_version_execution.py +0 -0
  740. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_version_guidance.py +0 -0
  741. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_version_imports.py +0 -0
  742. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_version_release.py +0 -0
  743. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/test_version_verification.py +0 -0
  744. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/__init__.py +0 -0
  745. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/catalog/__init__.py +0 -0
  746. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/catalog/test_command_add.py +0 -0
  747. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/catalog/test_command_list.py +0 -0
  748. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/catalog/test_command_remove.py +0 -0
  749. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/conftest.py +0 -0
  750. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/helpers.py +0 -0
  751. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/__init__.py +0 -0
  752. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/test_command_add.py +0 -0
  753. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/test_command_disable.py +0 -0
  754. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/test_command_enable.py +0 -0
  755. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/test_command_list.py +0 -0
  756. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/test_command_remove.py +0 -0
  757. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/overlay/test_command_set_priority.py +0 -0
  758. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/__init__.py +0 -0
  759. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/catalog/__init__.py +0 -0
  760. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/catalog/test_command_add.py +0 -0
  761. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/catalog/test_command_list.py +0 -0
  762. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/catalog/test_command_remove.py +0 -0
  763. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/test_command_add.py +0 -0
  764. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/test_command_info.py +0 -0
  765. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/test_command_list.py +0 -0
  766. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/test_command_remove.py +0 -0
  767. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/step/test_command_search.py +0 -0
  768. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_add.py +0 -0
  769. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_disable.py +0 -0
  770. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_enable.py +0 -0
  771. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_info.py +0 -0
  772. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_list.py +0 -0
  773. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_remove.py +0 -0
  774. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_resolve.py +0 -0
  775. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_resume.py +0 -0
  776. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_resume_state.py +0 -0
  777. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_run.py +0 -0
  778. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_run_ownership.py +0 -0
  779. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_search.py +0 -0
  780. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_status.py +0 -0
  781. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/specify_cli/workflows/test_command_update.py +0 -0
  782. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_agent_config_consistency.py +0 -0
  783. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_branch_numbering.py +0 -0
  784. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_bug_fix_workflow.py +0 -0
  785. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_check_prerequisites_paths_only.py +0 -0
  786. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_check_prerequisites_python_parity.py +0 -0
  787. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_clarify_stage_gate.py +0 -0
  788. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_command_template_hooks.py +0 -0
  789. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_command_template_py_scripts.py +0 -0
  790. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_console_imports.py +0 -0
  791. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_constitution_template_sync_report.py +0 -0
  792. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_converge_template_scaffold.py +0 -0
  793. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_create_new_feature_python_parity.py +0 -0
  794. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_download_security.py +0 -0
  795. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_extension_registration.py +0 -0
  796. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_extensions.py +0 -0
  797. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_init_dir.py +0 -0
  798. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_init_dir_cli.py +0 -0
  799. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_installed_list_json.py +0 -0
  800. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_live_transient_windows.py +0 -0
  801. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_merge.py +0 -0
  802. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_post_process.py +0 -0
  803. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_ps1_encoding.py +0 -0
  804. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_registrar_path_traversal.py +0 -0
  805. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_resolve_template_python_parity.py +0 -0
  806. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_security_workflow.py +0 -0
  807. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_setup_plan_feature_json.py +0 -0
  808. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_setup_plan_no_overwrite.py +0 -0
  809. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_setup_plan_python_parity.py +0 -0
  810. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_setup_tasks.py +0 -0
  811. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_setup_tasks_python_parity.py +0 -0
  812. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_shared_infra_gitignore.py +0 -0
  813. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_shared_infra_integrity.py +0 -0
  814. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_skill_placeholder_py.py +0 -0
  815. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_specify_no_persist.py +0 -0
  816. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_specify_template_numbering.py +0 -0
  817. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_tasks_template_constraints.py +0 -0
  818. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_timestamp_branches.py +0 -0
  819. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_utils.py +0 -0
  820. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/test_utils_assets_imports.py +0 -0
  821. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/unit/test_condition_expression_block.py +0 -0
  822. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/conftest.py +0 -0
  823. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_bundled_bugfix_assess_workflows.py +0 -0
  824. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_bundled_speckit_workflow.py +0 -0
  825. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_overlay_composer.py +0 -0
  826. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_overlay_layer_sources.py +0 -0
  827. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_overlay_merge.py +0 -0
  828. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_overlay_schema.py +0 -0
  829. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_resolver_integration.py +0 -0
  830. {specify_cli-1.0.11 → specify_cli-1.0.12}/tests/workflows/test_slot_step.py +0 -0
  831. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/PUBLISHING.md +0 -0
  832. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/assess/workflow.yml +0 -0
  833. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/bugfix/workflow.yml +0 -0
  834. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/catalog.community.json +0 -0
  835. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/catalog.json +0 -0
  836. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/speckit/workflow.yml +0 -0
  837. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/step-catalog.community.json +0 -0
  838. {specify_cli-1.0.11 → specify_cli-1.0.12}/workflows/step-catalog.json +0 -0
@@ -22,11 +22,11 @@ jobs:
22
22
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23
23
 
24
24
  - name: Initialize CodeQL
25
- uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
25
+ uses: github/codeql-action/init@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4
26
26
  with:
27
27
  languages: ${{ matrix.language }}
28
28
 
29
29
  - name: Perform CodeQL Analysis
30
- uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
30
+ uses: github/codeql-action/analyze@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4
31
31
  with:
32
32
  category: "/language:${{ matrix.language }}"
@@ -10,6 +10,20 @@ on:
10
10
  jobs:
11
11
  markdownlint:
12
12
  runs-on: ubuntu-latest
13
+ env:
14
+ DOC_GLOBS: |
15
+ docs/**/*.md
16
+ README.md
17
+ README.zh-CN.md
18
+ CODE_OF_CONDUCT.md
19
+ CONTRIBUTING.md
20
+ DEVELOPMENT.md
21
+ SECURITY.md
22
+ SUPPORT.md
23
+ spec-driven.md
24
+ integrations/*.md
25
+ presets/*.md
26
+ workflows/*.md
13
27
  steps:
14
28
  - name: Checkout
15
29
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -36,12 +50,46 @@ jobs:
36
50
  git diff --check refs/checks/push-before HEAD
37
51
  fi
38
52
 
53
+ # Documentation only. Commands, skills, prompt templates, agent
54
+ # instructions (AGENTS.md) and .github/ content are inputs to coding
55
+ # agents rather than prose, and are deliberately left unlinted so a
56
+ # documentation pass never reformats them. Add new documentation
57
+ # paths to the DOC_GLOBS list above.
58
+ - name: Verify the documentation globs match files
59
+ shell: bash
60
+ run: |
61
+ set -euo pipefail
62
+ shopt -s globstar nullglob
63
+
64
+ # Checked per glob, not on the total: one stale entry among several
65
+ # still leaves that part of the documentation unlinted, which is the
66
+ # failure #4526 was about.
67
+ count=0
68
+ empty=()
69
+ while IFS= read -r glob; do
70
+ [ -z "$glob" ] && continue
71
+ matched=0
72
+ for path in $glob; do
73
+ [ -f "$path" ] && matched=$((matched + 1))
74
+ done
75
+ # An array, not a string: nullglob is on, so re-expanding an
76
+ # unquoted list of unmatched globs would erase it.
77
+ [ "$matched" -eq 0 ] && empty+=("$glob")
78
+ count=$((count + matched))
79
+ done <<< "$DOC_GLOBS"
80
+
81
+ echo "documentation files matched: $count"
82
+ if [ ${#empty[@]} -gt 0 ]; then
83
+ for glob in "${empty[@]}"; do
84
+ echo "::error::markdownlint glob matches no files: $glob (see #4526)"
85
+ done
86
+ exit 1
87
+ fi
88
+
39
89
  - name: Run markdownlint-cli2
40
90
  uses: DavidAnson/markdownlint-cli2-action@21c1be1b93ad9ed58fa840aacc3f279cde2a72ff # v24.2.0
41
91
  with:
42
- globs: |
43
- '**/*.md'
44
- !extensions/**/*.md
92
+ globs: ${{ env.DOC_GLOBS }}
45
93
 
46
94
  shellcheck:
47
95
  runs-on: ubuntu-latest
@@ -0,0 +1,58 @@
1
+ # AGENTS.md
2
+
3
+ ## About Spec Kit and Specify
4
+
5
+ **GitHub Spec Kit** is a comprehensive toolkit for implementing Spec-Driven Development (SDD) - a methodology that emphasizes creating clear specifications before implementation. The toolkit includes templates, scripts, and workflows that guide development teams through a structured approach to building software.
6
+
7
+ **Specify CLI** is the command-line interface that bootstraps projects with the Spec Kit framework. It sets up the necessary directory structures, templates, and AI agent integrations to support the Spec-Driven Development workflow.
8
+
9
+ The toolkit supports multiple AI coding assistants, allowing teams to use their preferred tools while maintaining consistent project structure and development practices.
10
+
11
+ ## Adding or Updating CLI Commands
12
+
13
+ Before adding, updating, or reorganizing Specify CLI commands, read
14
+ [Specify CLI Command Architecture](design/cli.md). It defines command-module
15
+ naming, private command phases, nested command groups, registration ownership,
16
+ mirrored tests, and the rationale for making the CLI structure predictable for
17
+ both humans and coding agents.
18
+
19
+ ## Adding or Updating Agent Integrations
20
+
21
+ Before adding or changing AI agent integrations, read
22
+ [Agent Integration Design](design/integration.md). It covers
23
+ delivery routes, output formats, registration, and install/uninstall ownership.
24
+
25
+ ## Adding or Updating Workflow Steps
26
+
27
+ Before adding or changing workflow step types, read
28
+ [Workflow Step Design](design/workflow-step.md). It covers registration,
29
+ validation, execution, resume, and installed step packages.
30
+
31
+ ## Testing Executable Behavior
32
+
33
+ Before changing code or configuration that runs or controls execution without
34
+ an LLM, read
35
+ [Testing deterministic behavior](CONTRIBUTING.md#testing-deterministic-behavior).
36
+ Behavioral changes need positive and negative coverage; bug fixes need
37
+ before-and-after regression evidence.
38
+
39
+ ## Branches and Agent Contributions
40
+
41
+ When creating a branch, follow [Branch naming](CONTRIBUTING.md#branch-naming).
42
+ Before authoring commits, opening PRs, or posting review comments, read
43
+ [Agent-authored Git and review activity](CONTRIBUTING.md#agent-authored-git-and-review-activity).
44
+ Agent-authored commits and AI-generated PRs and comments each require their
45
+ own disclosure; a PR-body disclosure alone does not cover later activity.
46
+
47
+ ## Other Contribution Guidance
48
+
49
+ For contribution or repository-workflow questions not covered above, or when
50
+ the applicable guidance is unclear, read [CONTRIBUTING.md](CONTRIBUTING.md)
51
+ before acting.
52
+
53
+ ## Common Pitfalls
54
+
55
+ - **Running tests against the wrong environment:** Run the suite inside this
56
+ worktree's own virtualenv (`uv sync --extra test` then
57
+ `.venv/bin/python -m pytest`). A bare `uv run pytest` can pick up an
58
+ editable install from another worktree and fail to import new subpackages.
@@ -2,6 +2,31 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [1.0.12] - 2026-09-25
6
+
7
+ ### Changed
8
+
9
+ - fix(workflows): reject a multi-argument filter call in expressions (#3893)
10
+ - feat(auth): add Bitbucket authentication provider (#4629)
11
+ - Add Agentstandards bundle to community catalog (#4751)
12
+ - docs: consolidate design guidance and contribution guidelines (#4752)
13
+ - Add Agentstandards Task Gate preset to community catalog (#4749)
14
+ - fix(alquimia): render `/speckit-<name>` invocations for the skills-only Alquimia agent (#4137)
15
+ - [preset] Update Intake Review Governance preset to v0.2.3 (#4748)
16
+ - refactor(presets): split domain internals into private modules (#4747)
17
+ - chore(deps): bump the codeql-action group with 2 updates (#4742)
18
+ - Add Agentstandards Architecture Council extension to community catalog (#4730)
19
+ - fix(ci): make the markdownlint job lint files again (#4526) (#4584)
20
+ - Update SpecAssay community bundle to v0.5.2 (#4737)
21
+ - Update SpecAssay Check extension to v0.5.2 (#4735)
22
+ - [preset] Update SpecAssay preset to v0.5.2 (#4717)
23
+ - fix: sync integration manifest hashes after preset re-registration on upgrade (#4697)
24
+ - [extension] Update OKF Knowledge Bundle Generator to v0.9.2 (#4700)
25
+ - Update Intake Authoring Governance preset to v0.3.4 (#4716)
26
+ - fix: eliminate TOCTOU races in catalog_fetch() for file:// and bare path URLs (#3910)
27
+ - fix: add ValueError guard for timeout in _build_opencode_plugin (#3973)
28
+ - chore: release 1.0.11, begin 1.0.12.dev0 development (#4723)
29
+
5
30
  ## [1.0.11] - 2026-09-24
6
31
 
7
32
  ### Changed
@@ -38,7 +38,7 @@ On [GitHub Codespaces](https://github.com/features/codespaces) it's even simpler
38
38
  1. Fork and clone the repository
39
39
  1. Configure and install the dependencies: `uv sync --extra test`
40
40
  1. Make sure the CLI works on your machine: `uv run specify --help`
41
- 1. Create a new branch: `git checkout -b <type>/<number>-<short-slug>` (see [Branch naming](#branch-naming) below)
41
+ 1. Create a new branch (see [Branch naming](#branch-naming) below)
42
42
  1. Make your change, add tests, and make sure everything still works
43
43
  1. Test the CLI functionality with a sample project if relevant
44
44
  1. Push to your fork and submit a pull request
@@ -55,7 +55,7 @@ Here are a few things you can do that will increase the likelihood of your pull
55
55
  - Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
56
56
  - Test your changes with the Spec-Driven Development workflow to ensure compatibility.
57
57
 
58
- Accounts with three open pull requests may continue submitting changes, but additional submissions may be placed behind contributions from other authors in the review queue. Coding agents should disclose this possibility and obtain the filer's confirmation before opening another pull request. Repository-owned `gh-aw` maintenance workflows do not require this confirmation.
58
+ Accounts with three open pull requests may continue submitting changes, but additional submissions may be placed behind contributions from other authors in the review queue. Coding agents must follow the [agent-authored PR rules](#agent-authored-git-and-review-activity) before opening another pull request.
59
59
 
60
60
  ### Evidence gate
61
61
 
@@ -137,7 +137,9 @@ fix to a broken entry is still an update and needs the same validation. Always p
137
137
 
138
138
  ### Branch naming
139
139
 
140
- We recommend naming branches as `<type>/<number>-<short-slug>`, where `<number>` is the issue or PR number (whichever comes first) and `<type>` is one of:
140
+ When an issue exists, name the branch `<type>/<issue-number>-<short-slug>`.
141
+ For PR-only changes without an issue, use `<type>/<short-slug>` instead.
142
+ Choose the prefix from:
141
143
 
142
144
  | Prefix | When to use | Example |
143
145
  |---|---|---|
@@ -147,7 +149,9 @@ We recommend naming branches as `<type>/<number>-<short-slug>`, where `<number>`
147
149
  | `community/` | Community catalog additions | `community/2492-add-mde-extension` |
148
150
  | `chore/` | Maintenance, tooling, CI | `chore/2366-editorconfig` |
149
151
 
150
- Including the issue or PR number makes branches traceable — especially useful since the project uses squash merges and `git branch --merged` won't detect merged branches. If you start with a PR (no issue), use the PR number once it's assigned.
152
+ Put an existing issue number immediately after the prefix to make the branch
153
+ traceable; do not add a PR number later for PR-only changes. Keep the slug
154
+ short, descriptive, and kebab-case.
151
155
 
152
156
  ## Development workflow
153
157
 
@@ -179,6 +183,22 @@ When working on spec-kit:
179
183
  3. Test script functionality in the `scripts/` directory
180
184
  4. Ensure memory files (`memory/constitution.md`) are updated if major process changes are made
181
185
 
186
+ ### Testing deterministic behavior
187
+
188
+ Behavioral changes to repository-maintained code or configuration that runs or
189
+ controls execution without an LLM require tests for both intended behavior
190
+ (positive cases) and relevant invalid inputs, failures, or prevented behavior
191
+ (negative cases). This includes Python, shell, and PowerShell code in the CLI,
192
+ core scripts, extensions, presets, and tooling; workflow step types; and
193
+ execution wiring such as script selection, workflow shell steps, and CI `run:`
194
+ steps. Existing tests count when they cover the changed behavior.
195
+
196
+ Bug fixes also need a regression test that fails before the fix and passes
197
+ afterward. If a baseline or an execution path cannot be tested automatically,
198
+ explain the limitation and provide reproducible evidence for the affected
199
+ success and failure paths. Prompt-only and other non-behavioral edits do not
200
+ require invented tests.
201
+
182
202
  ### Recommended validation flow
183
203
 
184
204
  For the smoothest review experience, validate changes in this order:
@@ -278,7 +298,7 @@ Any change that affects a slash command's behavior requires manually testing tha
278
298
 
279
299
  Paste this into your PR:
280
300
 
281
- ~~~markdown
301
+ ```markdown
282
302
  ## Manual test results
283
303
 
284
304
  **Agent**: [e.g., GitHub Copilot in VS Code] | **OS/Shell**: [e.g., macOS/zsh]
@@ -286,13 +306,13 @@ Paste this into your PR:
286
306
  | Command tested | Notes |
287
307
  |----------------|-------|
288
308
  | `/speckit.command` | |
289
- ~~~
309
+ ```
290
310
 
291
311
  #### Determining which tests to run
292
312
 
293
313
  Copy this prompt into your agent. Include the agent's response (selected tests plus a brief explanation of the mapping) in your PR.
294
314
 
295
- ~~~text
315
+ ```text
296
316
  Read CONTRIBUTING.md, then run `git diff --name-only main` to get my changed files.
297
317
  For each changed file, determine which slash commands it affects by reading
298
318
  the command templates in templates/commands/ to understand what each command
@@ -324,7 +344,7 @@ Number each test sequentially (T1, T2, ...). List prerequisite tests first.
324
344
 
325
345
  - T1: /speckit.command — (reason)
326
346
  - T2: /speckit.command — (reason)
327
- ~~~
347
+ ```
328
348
 
329
349
  ## AI contributions in Spec Kit
330
350
 
@@ -346,6 +366,8 @@ That being said, if you are using any kind of AI assistance (e.g., agents, ChatG
346
366
  If your PR responses or comments are being generated by an AI, disclose that as well, naming the same agent, model(s), settings/mode, and extent.
347
367
 
348
368
  As an exception, trivial spacing or typo fixes don't need to be disclosed, so long as the changes are limited to small parts of the code or short phrases. The catalog-submission issue forms (extension, preset, and bundle submissions) feed content-neutral validation automation rather than code review, so they carry no disclosure field and are exempt from this requirement. Spec Kit's own bundled agentic workflows (the automated bug-fix and community-catalog prompts under `.github/workflows/`) are likewise exempt: they run as a fixed, known agent and open draft PRs for maintainer review, so their agent identity is inherent to the workflow rather than self-declared per contribution.
369
+ The trivial-fix exception does not waive the disclosures below for agents acting
370
+ on behalf of a contributor; the bundled workflows retain their exception.
349
371
 
350
372
  An example disclosure:
351
373
 
@@ -365,6 +387,39 @@ what extent, which in turn helps us judge whether our [`AGENTS.md`](./AGENTS.md)
365
387
  In a perfect world, AI assistance would produce equal or higher quality work than any human. That isn't the world we live in today, and in most cases
366
388
  where human supervision or expertise is not in the loop, it's generating code that cannot be reasonably maintained or evolved.
367
389
 
390
+ ### Agent-authored Git and review activity
391
+
392
+ For an agent acting on behalf of a contributor, disclosure is continuous: the
393
+ PR body, each agent-authored commit, and each AI-generated PR comment or reply
394
+ must independently identify the agent's involvement. A PR-body disclosure does
395
+ not cover later commits or review rounds.
396
+
397
+ - **Before opening a PR:** Check whether the filing account already has three
398
+ open PRs in this repository. If so, explain that another submission may
399
+ receive lower review priority and obtain the filer's explicit permission.
400
+ Without it, including during autonomous operation, leave the work on a branch
401
+ and report that confirmation is required. Repository-owned `gh-aw` maintenance
402
+ workflows are exempt from this count check.
403
+ - **For every agent-authored commit:** Include an `Assisted-by:` trailer naming
404
+ the actual agent and model and whether it acted `autonomous` or `supervised`,
405
+ for example, `Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous)`.
406
+ Use `model: unknown` only if the model genuinely cannot be determined. Use
407
+ `supervised` only if a human authored or line-by-line reviewed the change
408
+ before commit. Do not hide agent authorship behind the operator's git
409
+ identity or remove tool-generated `Co-authored-by:` trailers.
410
+ - **For each AI-generated PR comment:** Identify the contributor on whose
411
+ behalf it is posted, the agent, model, settings/mode, and extent of AI
412
+ involvement. Restate this in every review-round summary, not just the PR
413
+ body. Post one top-level summary per round with the changes and commit SHA;
414
+ reply inline only for disagreement, deferral, or a non-obvious fix, and keep
415
+ those replies brief. Do not resolve conversations on a reviewer's behalf.
416
+ Avoid emoji, celebratory framing, checklist mirroring, and restating the
417
+ reviewer's comments. Re-request review once, after all feedback is addressed.
418
+
419
+ Fast responses do not replace disclosure: do not post an unexplained "Done" or
420
+ push an undisclosed fix moments after review. Do not claim personal human review
421
+ or testing for an automated change; describe the automation truthfully.
422
+
368
423
  ### What we're looking for
369
424
 
370
425
  When submitting AI-assisted contributions, please ensure they include:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: specify-cli
3
- Version: 1.0.11
3
+ Version: 1.0.12
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
@@ -1,8 +1,31 @@
1
1
  {
2
2
  "schema_version": "1.0",
3
- "updated_at": "2026-08-21T00:00:00Z",
3
+ "updated_at": "2026-09-25T00:00:00Z",
4
4
  "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/bundles/catalog.community.json",
5
5
  "bundles": {
6
+ "agentstandards": {
7
+ "name": "Agentstandards Multi-Vendor Architecture",
8
+ "id": "agentstandards",
9
+ "version": "0.1.1",
10
+ "role": "architecture-governance",
11
+ "description": "Installs a Codex-orchestrated, multi-vendor architecture council, its hard task gate, and the supporting Spec Kit workflow.",
12
+ "author": "bbjwz",
13
+ "license": "MIT",
14
+ "download_url": "https://github.com/bbjwz/agentstandards/releases/download/v0.1.1/agentstandards-bundle-0.1.1.zip",
15
+ "sha256": "0306cdc780f4107e6702cd25680afede8acea866dfbb0ba81f9ea9c8f960a9dc",
16
+ "repository": "https://github.com/bbjwz/agentstandards",
17
+ "requires": {
18
+ "speckit_version": ">=1.0.8,<2.0.0"
19
+ },
20
+ "provides": {
21
+ "extensions": 1,
22
+ "presets": 1,
23
+ "steps": 0,
24
+ "workflows": 1
25
+ },
26
+ "tags": ["architecture", "governance", "multi-vendor", "codex"],
27
+ "verified": false
28
+ },
6
29
  "sicario-spec": {
7
30
  "name": "SicarioSpec Security & Governance Bundle",
8
31
  "id": "sicario-spec",
@@ -34,15 +57,16 @@
34
57
  "specassay": {
35
58
  "name": "SpecAssay",
36
59
  "id": "specassay",
37
- "version": "0.4.12",
60
+ "version": "0.5.2",
38
61
  "role": "developer",
39
62
  "description": "Durable-ID promotion for stock Spec Kit: templates, Gate 2 refusal, and trace-manifest emission.",
40
63
  "author": "Rik Dryfoos",
41
64
  "license": "MIT",
42
- "download_url": "https://github.com/rdryfoos/specassay/releases/download/v0.4.12/specassay-0.4.12.zip",
65
+ "download_url": "https://github.com/rdryfoos/specassay/releases/download/v0.5.2/specassay-0.5.2.zip",
66
+ "sha256": "a9acd0848132bee975be7ca6759a531ff02b736c99a98b1bc4e7d8da90da7c82",
43
67
  "repository": "https://github.com/rdryfoos/specassay",
44
68
  "requires": {
45
- "speckit_version": ">=0.14.0"
69
+ "speckit_version": ">=0.14.0,<2.0.0"
46
70
  },
47
71
  "provides": {
48
72
  "extensions": 1,
@@ -249,6 +249,25 @@ the domain has the same name as that CLI namespace. The nested directory is
249
249
  reserved for `test_command_<name>.py` suites that exercise its actual
250
250
  subcommands.
251
251
 
252
+ When a domain implementation is split into private modules, mirror those
253
+ boundaries in its tests, dropping the source module's leading underscore:
254
+
255
+ | Preset implementation | Mirrored test under `tests/specify_cli/presets/` |
256
+ | --- | --- |
257
+ | `_manifest.py` | `test_manifest.py` |
258
+ | `_registry.py` | `test_registry.py` |
259
+ | `_catalog.py` | `test_catalog.py` |
260
+ | `_resolver.py` | `test_resolver.py` |
261
+ | `_manager.py` | `test_manager.py` |
262
+ | `_manager_commands.py` | `test_manager_commands.py` |
263
+ | `_manager_skills.py` | `test_manager_skills.py` |
264
+
265
+ `test_manager_commands.py` exercises domain command-artifact behavior, not a
266
+ registered CLI handler. The `test_command_*.py` suites continue to cover the
267
+ CLI surface. `test_catalog.py` belongs at the parent preset package level;
268
+ `catalog/test_command_*.py` covers the nested catalog CLI. Package export
269
+ compatibility is covered separately by `test_domain_exports.py`.
270
+
252
271
  Not every test is a command test, even when it belongs in the mirrored package
253
272
  tree:
254
273
 
@@ -264,6 +283,10 @@ tree:
264
283
 
265
284
  Moving tests must preserve coverage rather than duplicating it. Run both the
266
285
  new command-focused suites and the legacy suites from which tests were moved.
286
+ For domain splits, also run all new domain suites and any remaining cross-domain
287
+ tests in the legacy file. Compare full-suite collection before and after the
288
+ move: the count must not decrease, and every existing parametrized test case
289
+ must remain represented. A matching total alone does not prove preservation.
267
290
 
268
291
  ## Reference layout
269
292
 
@@ -0,0 +1,108 @@
1
+ # Agent Integration Design
2
+
3
+ Integrations adapt the shared Spec Kit workflows to an AI coding agent. Their
4
+ **availability** (built-in, generic, or catalog-only) is separate from their
5
+ **output format** (commands, recipes, skills, or a custom layout). The Python
6
+ integration registry owns installation behavior; catalogs provide discovery,
7
+ not executable integration implementations.
8
+
9
+ ## Availability
10
+
11
+ | Route | What ships | How users get it |
12
+ |---|---|---|
13
+ | Built-in | A registered class under `src/specify_cli/integrations/` and, for discovery, an entry in `integrations/catalog.json` | `specify init my-project --integration copilot` or, in an initialized project, `specify integration install copilot` |
14
+ | Generic | The registered `generic` integration, with a user-supplied `--commands-dir` and optional `--skills` | `specify init my-project --integration generic --integration-options="--commands-dir .agent/commands"` |
15
+ | Community | Metadata in `integrations/catalog.community.json` pointing to an external project | Discover with `specify integration list --catalog` or `search`; obtain and vet it from its source |
16
+
17
+ The default community catalog is discovery-only. A catalog entry (including
18
+ one in a custom catalog) does **not** register a Python integration or make
19
+ `specify integration install <key>` work: installation resolves keys through
20
+ `INTEGRATION_REGISTRY`. See [catalog contribution guidance](../integrations/CONTRIBUTING.md)
21
+ for descriptor and submission details.
22
+
23
+ ## Built-in contract
24
+
25
+ Each built-in agent has one Python-safe subpackage: `copilot` lives in
26
+ `src/specify_cli/integrations/copilot/` and exposes `CopilotIntegration`.
27
+ Hyphenated keys use underscores in package names. Its class declares:
28
+
29
+ - `key`: unique user-facing identifier. CLI-backed integrations normally use
30
+ the executable name: tool checks use the key and runtime dispatch defaults
31
+ to it. Agents with a different executable must handle both paths explicitly;
32
+ IDE-only agents use their canonical identifier.
33
+ - `config`: agent name, folder, commands subdirectory, install URL, and
34
+ `requires_cli`.
35
+ - `registrar_config`: output directory, format, argument placeholder, and
36
+ file extension.
37
+
38
+ Import and `_register()` the class in `src/specify_cli/integrations/__init__.py`
39
+ (both lists alphabetically). This registry is the source of built-in Python
40
+ integration behavior. If the agent supports non-interactive workflows, implement
41
+ `build_exec_args()` with the full base signature; `options()` declares
42
+ install-time `--integration-options`, not per-workflow runtime options.
43
+ Agent-specific native events can be declared on the integration. Set
44
+ `multi_install_safe = True` only for a static, non-overlapping agent root and
45
+ command directory; shared dynamic paths are not safe by default.
46
+
47
+ ## Output flavors
48
+
49
+ Choose the smallest base class that matches the agent's native format. The
50
+ format bases render shared `templates/commands/*.md`; `IntegrationBase.setup()`
51
+ copies templates raw unless overridden. Paths below are relative to each
52
+ agent's configured root.
53
+
54
+ | Flavor | Base class | Typical output | Arguments |
55
+ |---|---|---|---|
56
+ | Markdown commands | `MarkdownIntegration` | `commands/speckit.plan.md` | `$ARGUMENTS` |
57
+ | TOML commands | `TomlIntegration` | `commands/speckit.plan.toml` | `{{args}}` |
58
+ | YAML recipes | `YamlIntegration` | `recipes/speckit.plan.yaml` | `{{args}}` |
59
+ | Agent skills | `SkillsIntegration` | `skills/speckit-plan/SKILL.md` | `$ARGUMENTS` |
60
+ | Nonstandard or dual-mode | `IntegrationBase` or a targeted override of a format base | Agent-specific files, companions, or settings | Agent-specific |
61
+
62
+ `registrar_config["args"]` selects the installed argument syntax;
63
+ `command_filename()` and `setup()` are override points when the native layout
64
+ demands them. Keep mode selection, invocation spelling, and registration in
65
+ sync. Agent-specific layouts and options belong in the integration code and
66
+ the [supported-integrations reference](../docs/reference/integrations.md).
67
+
68
+ Core templates that call scripts declare `sh`, `ps`, and `py` commands in
69
+ `scripts:` frontmatter; template processing replaces `{SCRIPT}` with the
70
+ selected variant. `py` is opt-in; non-interactive init defaults to `sh` on
71
+ POSIX or `ps` on Windows. Maintain equivalent stdout behavior across all three.
72
+ Bundled extension commands do not yet use this core-template script routing.
73
+ `__AGENT__` and command references are resolved during rendering, not by
74
+ adding per-agent wrapper scripts.
75
+
76
+ ## Ownership and lifecycle
77
+
78
+ An installation records its files and SHA-256 hashes in
79
+ `.specify/integrations/<key>.manifest.json`. Custom `setup()` code must track
80
+ files it creates via the manifest (`record_file()` or the base class's
81
+ write-and-record helpers). Do not track a pre-existing user file merely because
82
+ you merged settings into it: unchanged tracked files are deleted on uninstall.
83
+ `teardown()` preserves modified tracked files by default; `--force` can remove
84
+ them. Keep agent-specific settings and events consistent with that lifecycle.
85
+
86
+ The integration does **not** own agent context files such as `AGENTS.md` or
87
+ `CLAUDE.md`. The opt-in `extensions/agent-context/` owns their defaults,
88
+ configuration, and managed sections; do not add `context_file` fields or
89
+ context-file handling to the CLI. `specify init` does not enable the extension
90
+ implicitly. Extensions and presets register command or skill overrides for the
91
+ current default integration, not every installed integration.
92
+
93
+ ## Adding an agent
94
+
95
+ 1. Run `specify integration scaffold my-agent --type markdown` from this
96
+ repository (`toml`, `yaml`, and `skills` are also supported), or start with
97
+ a custom class only when necessary.
98
+ 2. Review the generated `config` and `registrar_config`; register the class
99
+ alphabetically and add a matching entry to `integrations/catalog.json`.
100
+ 3. Add focused coverage in `tests/integrations/test_integration_<package_dir>.py`
101
+ for metadata, generated output, installation, and uninstall (including
102
+ preservation of edited files where applicable).
103
+ 4. Exercise `specify init my-project --integration <key>` and the install/uninstall
104
+ lifecycle; update the [supported agents](../docs/reference/integrations.md)
105
+ and devcontainer setup if the agent needs additional tooling.
106
+
107
+ The scaffold creates a package and test skeleton, **not** registry or catalog
108
+ entries. Prefer existing bases and shared processing over copied setup loops.
@@ -0,0 +1,64 @@
1
+ # Workflow Step Design
2
+
3
+ A workflow step type defines what a `type:` in workflow YAML does. This is an
4
+ extension point of the workflow engine, distinct from an agent integration:
5
+ integrations dispatch work to an agent; steps validate and execute workflow
6
+ behavior. For the overall engine, see
7
+ [Workflow System Architecture](../workflows/ARCHITECTURE.md); for YAML usage,
8
+ see [Workflows](../docs/reference/workflows.md).
9
+
10
+ ## Delivery and registration
11
+
12
+ | Route | Source | Registration |
13
+ |---|---|---|
14
+ | Built-in | `src/specify_cli/workflows/steps/<package>/__init__.py` | Explicit import and `_register_step()` in `src/specify_cli/workflows/__init__.py` |
15
+ | Installed | Package under `.specify/workflows/steps/<id>/`, containing `step.yml` and `__init__.py` | `load_custom_steps(project_root)` loads a matching `StepBase` subclass at workflow run/resume |
16
+
17
+ `STEP_REGISTRY` maps each `type_key` to a single step instance. Built-in keys
18
+ are snapshotted in `BUILTIN_STEP_TYPES` before project steps are loaded; do not
19
+ infer built-in status from the mutable registry. Installed packages can be
20
+ found through step catalogs and added with `specify workflow step add <id>`.
21
+ The default community catalog is discovery-only, not an install or trust
22
+ endorsement. Review external step code before installing it: loading a package
23
+ imports and executes its Python module.
24
+
25
+ ## Step contract
26
+
27
+ Subclass `StepBase` from `src/specify_cli/workflows/base.py`, set `type_key`
28
+ to the workflow YAML `type`, and implement
29
+ `execute(config: dict[str, Any], context: StepContext) -> StepResult`.
30
+ Override `validate(config)` for step-specific errors; the base validator
31
+ requires an `id`. Omitting `type` in YAML selects the built-in `command` step.
32
+
33
+ `StepContext` supplies inputs, previous step results, workflow defaults, run
34
+ and project paths, and iteration/resume context. Return a `StepResult` with a
35
+ `StepStatus`, an output mapping, and an error message on failure. The engine
36
+ records the result for later `{{ steps.<id>.output.* }}` expressions and
37
+ persists run state. `PAUSED` stops for resume; `FAILED` normally stops the run
38
+ unless `continue_on_error: true` is set (an explicit abort always stops).
39
+ `next_steps` supplies nested steps for control flow.
40
+
41
+ The engine calls `validate()` during workflow validation but does not
42
+ automatically validate a definition passed to `execute()`. Guard invalid
43
+ configurations in `execute()` too, returning a failed result rather than a
44
+ successful default or an unhandled exception. Resume restarts the current
45
+ top-level step; a pause inside nested steps re-runs their parent and nested
46
+ body. Design side effects accordingly.
47
+
48
+ The registry holds one shared instance per type. Concurrent `fan-out` can
49
+ invoke that instance from multiple threads: keep execution stateless and
50
+ thread-safe, with per-run data in `config` and `context`, not on `self`.
51
+
52
+ ## Adding a step type
53
+
54
+ 1. Implement the step in its own `steps/<package>/` subpackage and register
55
+ it explicitly with a unique `type_key`. For an external package, provide
56
+ `step.yml` with a matching `step.type_key` and a matching subclass in
57
+ `__init__.py`; catalog discovery alone does not register the code.
58
+ 2. Test valid and invalid configurations, status/output/error behavior, and
59
+ resume or nested/concurrent execution when relevant. Registry and engine
60
+ coverage lives in `tests/test_workflows.py`; focused step suites may live
61
+ under `tests/workflows/`.
62
+ 3. Update the [workflow reference](../docs/reference/workflows.md) when a
63
+ built-in step changes the YAML users can write. Keep agent-specific CLI
64
+ dispatch in integrations rather than duplicating it in step types.
@@ -9,6 +9,7 @@ Accepted community bundle entries are published in [`bundles/catalog.community.j
9
9
 
10
10
  | Bundle | Purpose | Role or team | Provides | Required catalogs | URL |
11
11
  |--------|---------|--------------|----------|-------------------|-----|
12
+ | Agentstandards Multi-Vendor Architecture | Installs a Codex-orchestrated, multi-vendor architecture council, its hard task gate, and the supporting Spec Kit workflow. | `architecture-governance` | 1 extension, 1 preset, 1 workflow | Documented | [agentstandards](https://github.com/bbjwz/agentstandards) |
12
13
  | SicarioSpec Security & Governance Bundle | Secure-by-default governance bundle for GitHub Spec Kit. Enforces data classification, threat modeling, and code-owned verification gates. | `security-engineer` | 1 extension, 11 presets | Documented | [sicario-spec](https://github.com/dfirs1car1o/sicario-spec) |
13
14
  | SpecAssay | Durable-ID promotion for stock Spec Kit: templates, Gate 2 refusal, and trace-manifest emission. | `developer` | 1 extension, 1 preset | Documented | [specassay](https://github.com/rdryfoos/specassay) |
14
15
 
@@ -32,6 +32,7 @@ The following community-contributed extensions are available in [`catalog.commun
32
32
  | AgentDocx SpecKit V2 | AgentDocx evolved: same pipeline + far more autonomous Ticket Manager (5 CLI, per-project Kanban, bulk sync, auto-switch, Auditor) | `integration` | Read+Write | [Extension_GithubSpecKit](https://github.com/ahmed200346/Extension_GithubSpecKit) |
33
33
  | AgentPay Pre-Pay Audit — Grade an endpoint before your agent pays it | Audit a paid API before money moves: grade the endpoint's 402 terms, see what the live market actually charges, and confirm the wallet can complete the payment right now. | `visibility` | Read-only | [spec-kit-prepay-audit](https://github.com/shawnhvac/spec-kit-prepay-audit) |
34
34
  | AgentPay x402 — Spend Controls for Spec Kit Agents | Set USDC spending caps, check a counterparty's credit before paying it, and pay x402-enabled APIs during spec implementation. Settles on Base or Solana. | `integration` | Read+Write | [spec-kit-pay-x402](https://github.com/shawnhvac/spec-kit-pay-x402) |
35
+ | Agentstandards Architecture Council | Run a bounded, multi-vendor architecture council between Spec Kit planning and task generation. | `process` | Read+Write | [agentstandards](https://github.com/bbjwz/agentstandards) |
35
36
  | AI-Driven Engineering (AIDE) | A structured 7-step workflow for building new projects from scratch with AI assistants — from vision through implementation | `process` | Read+Write | [aide](https://github.com/mnriem/spec-kit-extensions/tree/main/aide) |
36
37
  | Analytics | Measure what your AI builds, and how much time it saves you | `visibility` | Read+Write | [spec-kit-analytics](https://github.com/Fyloss/spec-kit-analytics) |
37
38
  | 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) |
@@ -110,7 +111,7 @@ The following community-contributed extensions are available in [`catalog.commun
110
111
  | Multi-Repo Branch Sync | Creates the feature branch in affected sub-repositories and git submodules via plan/tasks hooks | `process` | Read+Write | [multi-repo-sync](https://github.com/fyloss/spec-kit-multi-repo-sync) |
111
112
  | Multi-Sites Spec Kit | Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support | `process` | Read+Write | [spec-kit-multi-sites](https://github.com/teeyo/spec-kit-multi-sites) |
112
113
  | .NET Framework to Modern .NET Migration | Orchestrate end-to-end .NET Framework to modern .NET migration across 7 phases, with SDD lifecycle integration | `process` | Read+Write | [spec-kit-fx-to-net](https://github.com/RogerBestMsft/spec-kit-FxToNet) |
113
- | OKF Knowledge Bundle Generator | Generates and maintains an Open Knowledge Format (OKF v0.1) knowledge bundle from a source-code repository, mining git history for rationale and parking what it cannot verify as open questions | `docs` | Read+Write | [speckit_okf](https://github.com/alexcpn/speckit_okf) |
114
+ | OKF Knowledge Bundle Generator | Generates and maintains an Open Knowledge Format (OKF v0.1) knowledge bundle from a source-code repository. Mines git history for the rationale behind the code, parks what it cannot establish as open questions rather than guessing, and verifies that the bundle's claims are actually supported by the repository. | `docs` | Read+Write | [catalogify](https://github.com/alexcpn/catalogify) |
114
115
  | Onboard | Contextual onboarding and progressive growth for developers new to spec-kit projects. Explains specs, maps dependencies, validates understanding, and guides the next step | `process` | Read+Write | [spec-kit-onboard](https://github.com/dmux/spec-kit-onboard) |
115
116
  | OpenUP Governed Lifecycle | Adds the OpenUP lifecycle to Spec Kit: phases, iterations, a seven-level WBS, an executable risk register, bi-directional traceability, and machine-checkable milestone gates. | `process` | Read+Write | [specup](https://github.com/anvigo12/specup) |
116
117
  | Optimize | Audit and optimize AI governance for context efficiency — token budgets, rule health, interpretability, compression, coherence, and echo detection | `process` | Read+Write | [spec-kit-optimize](https://github.com/sakitA/spec-kit-optimize) |
@@ -165,7 +166,7 @@ The following community-contributed extensions are available in [`catalog.commun
165
166
  | Spec Trace | Build a requirement → test traceability matrix from spec.md and the test suite — surface untested requirements and orphan tests | `code` | Read+Write | [spec-kit-trace](https://github.com/Quratulain-bilal/spec-kit-trace) |
166
167
  | Spec Validate | Comprehension validation, review gating, and approval state for spec-kit artifacts — staged quizzes, peer review SLA, and a hard gate before /speckit.implement | `process` | Read+Write | [spec-kit-spec-validate](https://github.com/aeltayeb/spec-kit-spec-validate) |
167
168
  | Spec2Cloud | Spec-driven workflow tuned for shipping to Azure | `process` | Read+Write | [spec2cloud](https://github.com/Azure-Samples/Spec2Cloud) |
168
- | SpecAssay Check | Gate 2 refuses silent gaps and emits a trace-manifest (trace-manifest.json). | `visibility` | Read+Write | [specassay](https://github.com/rdryfoos/specassay) |
169
+ | SpecAssay Check | Gate 2 refuses silent gaps and emits a trace-manifest (`trace-manifest.json`). | `visibility` | Read+Write | [specassay](https://github.com/rdryfoos/specassay) |
169
170
  | SpecJudge — right-size the model before you implement | Recommends the model that fits your tasks, citing the spec fragment behind every level. | `process` | Read-only | [SpecJudge](https://github.com/JoaquinRuiz/SpecJudge) |
170
171
  | SpecKit Companion | Live spec-driven progress — lifecycle capture, status, resume, living specs, and composable commands with hooks and recipes | `process` | Read+Write | [speckit-companion](https://github.com/alfredoperez/speckit-companion) |
171
172
  | SpecKit Grill Me | Exhaustively clarify specifications and optionally sync canonical domain knowledge | `process` | Read+Write | [speckit-grill-me](https://github.com/yoshi1220/speckit-grill-me) |