specify-cli 0.13.1__tar.gz → 0.13.3__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 (515) hide show
  1. specify_cli-0.13.3/.github/aw/actions-lock.json +34 -0
  2. specify_cli-0.13.3/.github/scripts/check_security_requirements.py +115 -0
  3. specify_cli-0.13.3/.github/security-audit-requirements.txt +253 -0
  4. specify_cli-0.13.3/.github/workflows/add-community-bundle.lock.yml +1746 -0
  5. specify_cli-0.13.3/.github/workflows/add-community-bundle.md +288 -0
  6. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/catalog-assign.yml +4 -2
  7. specify_cli-0.13.3/.github/workflows/security.yml +78 -0
  8. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/test.yml +1 -1
  9. {specify_cli-0.13.1 → specify_cli-0.13.3}/CHANGELOG.md +40 -0
  10. {specify_cli-0.13.1 → specify_cli-0.13.3}/CONTRIBUTING.md +21 -0
  11. {specify_cli-0.13.1 → specify_cli-0.13.3}/PKG-INFO +1 -1
  12. specify_cli-0.13.3/bundles/catalog.community.json +35 -0
  13. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/community/bundles.md +5 -1
  14. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/community/extensions.md +3 -1
  15. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/community/presets.md +3 -1
  16. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/local-development.md +2 -2
  17. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/extensions.md +3 -1
  18. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/integrations.md +1 -1
  19. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/workflows.md +185 -1
  20. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +35 -0
  21. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/catalog.community.json +74 -6
  22. {specify_cli-0.13.1 → specify_cli-0.13.3}/integrations/catalog.json +3 -3
  23. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/catalog.community.json +71 -11
  24. {specify_cli-0.13.1 → specify_cli-0.13.3}/pyproject.toml +3 -1
  25. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/bash/create-new-feature.sh +50 -7
  26. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/powershell/common.ps1 +59 -13
  27. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/powershell/create-new-feature.ps1 +35 -15
  28. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/powershell/setup-plan.ps1 +9 -2
  29. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/powershell/setup-tasks.ps1 +17 -4
  30. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/python/common.py +85 -13
  31. specify_cli-0.13.3/scripts/python/create_new_feature.py +355 -0
  32. specify_cli-0.13.3/scripts/python/setup_plan.py +86 -0
  33. specify_cli-0.13.3/scripts/python/setup_tasks.py +145 -0
  34. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/__init__.py +3 -4
  35. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_invocation_style.py +1 -0
  36. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/agents.py +64 -25
  37. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/models/catalog.py +1 -1
  38. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/adapters.py +25 -8
  39. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/commands/init.py +15 -11
  40. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/extensions/__init__.py +586 -8
  41. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integration_runtime.py +8 -4
  42. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/_helpers.py +13 -15
  43. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/_install_commands.py +10 -3
  44. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/_migrate_commands.py +212 -8
  45. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/base.py +128 -20
  46. specify_cli-0.13.3/src/specify_cli/integrations/bob/__init__.py +283 -0
  47. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/copilot/__init__.py +30 -1
  48. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/manifest.py +9 -3
  49. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/presets/__init__.py +82 -13
  50. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/presets/_commands.py +10 -13
  51. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/shared_infra.py +74 -67
  52. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/_commands.py +115 -5
  53. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/catalog.py +26 -2
  54. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/engine.py +76 -5
  55. specify_cli-0.13.3/src/specify_cli/workflows/overlays/__init__.py +95 -0
  56. specify_cli-0.13.3/src/specify_cli/workflows/overlays/_commands.py +442 -0
  57. specify_cli-0.13.3/src/specify_cli/workflows/overlays/composer.py +97 -0
  58. specify_cli-0.13.3/src/specify_cli/workflows/overlays/layer_sources.py +234 -0
  59. specify_cli-0.13.3/src/specify_cli/workflows/overlays/merge.py +395 -0
  60. specify_cli-0.13.3/src/specify_cli/workflows/overlays/schema.py +176 -0
  61. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/command/__init__.py +85 -4
  62. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/fan_out/__init__.py +4 -3
  63. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/gate/__init__.py +29 -0
  64. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/prompt/__init__.py +59 -4
  65. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/plan.md +1 -0
  66. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/tasks.md +1 -0
  67. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/contract/test_catalog_schema.py +26 -0
  68. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/test_update_agent_context_feature_json.py +0 -1
  69. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integration/test_bundler_catalog_stack.py +21 -0
  70. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integration/test_bundler_offline.py +19 -0
  71. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_base.py +59 -2
  72. specify_cli-0.13.3/tests/integrations/test_integration_bob.py +927 -0
  73. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_copilot.py +11 -0
  74. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_subcommand.py +410 -0
  75. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_manifest.py +22 -0
  76. specify_cli-0.13.3/tests/parity_helpers.py +133 -0
  77. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_check_prerequisites_python_parity.py +33 -0
  78. specify_cli-0.13.3/tests/test_command_template_py_scripts.py +232 -0
  79. specify_cli-0.13.3/tests/test_create_new_feature_python_parity.py +837 -0
  80. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_extension_skills.py +1 -0
  81. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_extensions.py +915 -1
  82. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_github_http.py +1 -1
  83. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_github_workflows.py +18 -0
  84. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_presets.py +205 -0
  85. specify_cli-0.13.3/tests/test_security_workflow.py +349 -0
  86. specify_cli-0.13.3/tests/test_setup_plan_python_parity.py +316 -0
  87. specify_cli-0.13.3/tests/test_setup_tasks_python_parity.py +207 -0
  88. specify_cli-0.13.3/tests/test_skill_placeholder_py.py +152 -0
  89. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_workflows.py +470 -3
  90. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_adapters.py +42 -0
  91. specify_cli-0.13.3/tests/workflows/conftest.py +26 -0
  92. specify_cli-0.13.3/tests/workflows/test_overlay_commands.py +815 -0
  93. specify_cli-0.13.3/tests/workflows/test_overlay_composer.py +153 -0
  94. specify_cli-0.13.3/tests/workflows/test_overlay_layer_sources.py +272 -0
  95. specify_cli-0.13.3/tests/workflows/test_overlay_merge.py +718 -0
  96. specify_cli-0.13.3/tests/workflows/test_overlay_schema.py +277 -0
  97. specify_cli-0.13.3/tests/workflows/test_overlay_security.py +321 -0
  98. specify_cli-0.13.3/tests/workflows/test_resolver_integration.py +567 -0
  99. specify_cli-0.13.3/workflows/catalog.community.json +27 -0
  100. specify_cli-0.13.1/.github/aw/actions-lock.json +0 -14
  101. specify_cli-0.13.1/src/specify_cli/integrations/bob/__init__.py +0 -20
  102. specify_cli-0.13.1/tests/integrations/test_integration_bob.py +0 -10
  103. specify_cli-0.13.1/tests/test_command_template_py_scripts.py +0 -107
  104. specify_cli-0.13.1/workflows/catalog.community.json +0 -6
  105. {specify_cli-0.13.1 → specify_cli-0.13.3}/.devcontainer/devcontainer.json +0 -0
  106. {specify_cli-0.13.1 → specify_cli-0.13.3}/.devcontainer/post-create.sh +0 -0
  107. {specify_cli-0.13.1 → specify_cli-0.13.3}/.editorconfig +0 -0
  108. {specify_cli-0.13.1 → specify_cli-0.13.3}/.gitattributes +0 -0
  109. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/CODEOWNERS +0 -0
  110. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
  111. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  112. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
  113. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  114. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  115. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  116. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  117. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  118. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/dependabot.yml +0 -0
  119. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/skills/add-community-extension/SKILL.md +0 -0
  120. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/RELEASE-PROCESS.md +0 -0
  121. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/add-community-extension.lock.yml +0 -0
  122. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/add-community-extension.md +0 -0
  123. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/add-community-preset.lock.yml +0 -0
  124. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/add-community-preset.md +0 -0
  125. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/bug-assess.lock.yml +0 -0
  126. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/bug-assess.md +0 -0
  127. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/bug-fix.lock.yml +0 -0
  128. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/bug-fix.md +0 -0
  129. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/bug-test.lock.yml +0 -0
  130. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/bug-test.md +0 -0
  131. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/codeql.yml +0 -0
  132. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/docs.yml +0 -0
  133. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/lint.yml +0 -0
  134. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/publish-pypi.yml +0 -0
  135. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/release-trigger.yml +0 -0
  136. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/release.yml +0 -0
  137. {specify_cli-0.13.1 → specify_cli-0.13.3}/.github/workflows/stale.yml +0 -0
  138. {specify_cli-0.13.1 → specify_cli-0.13.3}/.gitignore +0 -0
  139. {specify_cli-0.13.1 → specify_cli-0.13.3}/.markdownlint-cli2.jsonc +0 -0
  140. {specify_cli-0.13.1 → specify_cli-0.13.3}/.pre-commit-config.yaml +0 -0
  141. {specify_cli-0.13.1 → specify_cli-0.13.3}/.zenodo.json +0 -0
  142. {specify_cli-0.13.1 → specify_cli-0.13.3}/AGENTS.md +0 -0
  143. {specify_cli-0.13.1 → specify_cli-0.13.3}/CITATION.cff +0 -0
  144. {specify_cli-0.13.1 → specify_cli-0.13.3}/CODE_OF_CONDUCT.md +0 -0
  145. {specify_cli-0.13.1 → specify_cli-0.13.3}/DEVELOPMENT.md +0 -0
  146. {specify_cli-0.13.1 → specify_cli-0.13.3}/LICENSE +0 -0
  147. {specify_cli-0.13.1 → specify_cli-0.13.3}/README.md +0 -0
  148. {specify_cli-0.13.1 → specify_cli-0.13.3}/SECURITY.md +0 -0
  149. {specify_cli-0.13.1 → specify_cli-0.13.3}/SUPPORT.md +0 -0
  150. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/.gitignore +0 -0
  151. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/README.md +0 -0
  152. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/community/friends.md +0 -0
  153. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/community/overview.md +0 -0
  154. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/community/walkthroughs.md +0 -0
  155. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/concepts/complex-features.md +0 -0
  156. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/concepts/sdd.md +0 -0
  157. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/concepts/spec-persistence.md +0 -0
  158. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/docfx.json +0 -0
  159. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/guides/evolving-specs.md +0 -0
  160. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/guides/monorepo.md +0 -0
  161. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/index.md +0 -0
  162. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/install/air-gapped.md +0 -0
  163. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/install/one-time.md +0 -0
  164. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/install/pipx.md +0 -0
  165. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/install/pypi.md +0 -0
  166. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/install/uv.md +0 -0
  167. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/installation.md +0 -0
  168. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/quickstart.md +0 -0
  169. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/agentic-bugfix.md +0 -0
  170. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/agentic-sdd.md +0 -0
  171. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/authentication.md +0 -0
  172. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/bundles.md +0 -0
  173. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/core.md +0 -0
  174. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/overview.md +0 -0
  175. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/reference/presets.md +0 -0
  176. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/template/public/main.css +0 -0
  177. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/toc.yml +0 -0
  178. {specify_cli-0.13.1 → specify_cli-0.13.3}/docs/upgrade.md +0 -0
  179. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/business-analyst/README.md +0 -0
  180. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/business-analyst/bundle.yml +0 -0
  181. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/developer/README.md +0 -0
  182. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/developer/bundle.yml +0 -0
  183. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/product-manager/README.md +0 -0
  184. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/product-manager/bundle.yml +0 -0
  185. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/security-researcher/README.md +0 -0
  186. {specify_cli-0.13.1 → specify_cli-0.13.3}/examples/bundles/security-researcher/bundle.yml +0 -0
  187. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  188. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  189. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  190. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/README.md +0 -0
  191. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  192. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/README.md +0 -0
  193. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/agent-context-config.yml +0 -0
  194. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/agent-context-defaults.json +0 -0
  195. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  196. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/extension.yml +0 -0
  197. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  198. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  199. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
  200. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/README.md +0 -0
  201. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/commands/speckit.assess.decide.md +0 -0
  202. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/commands/speckit.assess.define.md +0 -0
  203. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/commands/speckit.assess.intake.md +0 -0
  204. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/commands/speckit.assess.research.md +0 -0
  205. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/commands/speckit.assess.shape.md +0 -0
  206. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/assess/extension.yml +0 -0
  207. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/bug/README.md +0 -0
  208. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  209. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  210. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/bug/commands/speckit.bug.test.md +0 -0
  211. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/bug/extension.yml +0 -0
  212. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/catalog.json +0 -0
  213. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/README.md +0 -0
  214. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/commands/speckit.git.commit.md +0 -0
  215. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/commands/speckit.git.feature.md +0 -0
  216. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/commands/speckit.git.initialize.md +0 -0
  217. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/commands/speckit.git.remote.md +0 -0
  218. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/commands/speckit.git.validate.md +0 -0
  219. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/config-template.yml +0 -0
  220. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/extension.yml +0 -0
  221. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/git-config.yml +0 -0
  222. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  223. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  224. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/bash/git-common.sh +0 -0
  225. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  226. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  227. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
  228. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  229. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  230. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/python/auto_commit.py +0 -0
  231. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/python/create_new_feature_branch.py +0 -0
  232. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/python/git_common.py +0 -0
  233. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/git/scripts/python/initialize_repo.py +0 -0
  234. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/selftest/commands/selftest.md +0 -0
  235. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/selftest/extension.yml +0 -0
  236. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/.gitignore +0 -0
  237. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/CHANGELOG.md +0 -0
  238. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/EXAMPLE-README.md +0 -0
  239. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/LICENSE +0 -0
  240. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/README.md +0 -0
  241. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/commands/example.md +0 -0
  242. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/config-template.yml +0 -0
  243. {specify_cli-0.13.1 → specify_cli-0.13.3}/extensions/template/extension.yml +0 -0
  244. {specify_cli-0.13.1 → specify_cli-0.13.3}/integrations/CONTRIBUTING.md +0 -0
  245. {specify_cli-0.13.1 → specify_cli-0.13.3}/integrations/README.md +0 -0
  246. {specify_cli-0.13.1 → specify_cli-0.13.3}/integrations/catalog.community.json +0 -0
  247. {specify_cli-0.13.1 → specify_cli-0.13.3}/media/bootstrap-claude-code.gif +0 -0
  248. {specify_cli-0.13.1 → specify_cli-0.13.3}/media/logo_large.webp +0 -0
  249. {specify_cli-0.13.1 → specify_cli-0.13.3}/media/logo_small.webp +0 -0
  250. {specify_cli-0.13.1 → specify_cli-0.13.3}/media/spec-kit-video-header.jpg +0 -0
  251. {specify_cli-0.13.1 → specify_cli-0.13.3}/media/specify_cli.gif +0 -0
  252. {specify_cli-0.13.1 → specify_cli-0.13.3}/newsletters/2026-April.md +0 -0
  253. {specify_cli-0.13.1 → specify_cli-0.13.3}/newsletters/2026-February.md +0 -0
  254. {specify_cli-0.13.1 → specify_cli-0.13.3}/newsletters/2026-June.md +0 -0
  255. {specify_cli-0.13.1 → specify_cli-0.13.3}/newsletters/2026-March.md +0 -0
  256. {specify_cli-0.13.1 → specify_cli-0.13.3}/newsletters/2026-May.md +0 -0
  257. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/ARCHITECTURE.md +0 -0
  258. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/PUBLISHING.md +0 -0
  259. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/README.md +0 -0
  260. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/catalog.json +0 -0
  261. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/README.md +0 -0
  262. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/commands/speckit.constitution.md +0 -0
  263. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/commands/speckit.implement.md +0 -0
  264. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/commands/speckit.plan.md +0 -0
  265. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/commands/speckit.specify.md +0 -0
  266. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/commands/speckit.tasks.md +0 -0
  267. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/lean/preset.yml +0 -0
  268. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/scaffold/README.md +0 -0
  269. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  270. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/scaffold/commands/speckit.specify.md +0 -0
  271. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/scaffold/preset.yml +0 -0
  272. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/scaffold/templates/myext-template.md +0 -0
  273. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/scaffold/templates/spec-template.md +0 -0
  274. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/commands/speckit.specify.md +0 -0
  275. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  276. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/preset.yml +0 -0
  277. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/templates/checklist-template.md +0 -0
  278. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/templates/constitution-template.md +0 -0
  279. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/templates/plan-template.md +0 -0
  280. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/templates/spec-template.md +0 -0
  281. {specify_cli-0.13.1 → specify_cli-0.13.3}/presets/self-test/templates/tasks-template.md +0 -0
  282. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/bash/check-prerequisites.sh +0 -0
  283. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/bash/common.sh +0 -0
  284. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/bash/setup-plan.sh +0 -0
  285. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/bash/setup-tasks.sh +0 -0
  286. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/powershell/check-prerequisites.ps1 +0 -0
  287. {specify_cli-0.13.1 → specify_cli-0.13.3}/scripts/python/check_prerequisites.py +0 -0
  288. {specify_cli-0.13.1 → specify_cli-0.13.3}/spec-driven.md +0 -0
  289. {specify_cli-0.13.1 → specify_cli-0.13.3}/spec-kit.code-workspace +0 -0
  290. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_agent_config.py +0 -0
  291. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_assets.py +0 -0
  292. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_console.py +0 -0
  293. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_github_http.py +0 -0
  294. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_init_options.py +0 -0
  295. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_project.py +0 -0
  296. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_toml_string.py +0 -0
  297. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_utils.py +0 -0
  298. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/_version.py +0 -0
  299. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/authentication/__init__.py +0 -0
  300. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/authentication/azure_devops.py +0 -0
  301. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/authentication/base.py +0 -0
  302. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/authentication/config.py +0 -0
  303. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/authentication/github.py +0 -0
  304. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/authentication/http.py +0 -0
  305. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/__init__.py +0 -0
  306. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
  307. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
  308. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/lib/__init__.py +0 -0
  309. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/lib/project.py +0 -0
  310. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/lib/versioning.py +0 -0
  311. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/lib/yamlio.py +0 -0
  312. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/models/__init__.py +0 -0
  313. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/models/manifest.py +0 -0
  314. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/models/records.py +0 -0
  315. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/__init__.py +0 -0
  316. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
  317. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/conflict.py +0 -0
  318. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/installer.py +0 -0
  319. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/packager.py +0 -0
  320. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/primitives.py +0 -0
  321. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/references.py +0 -0
  322. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/resolver.py +0 -0
  323. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/bundler/services/validator.py +0 -0
  324. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/catalogs.py +0 -0
  325. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/commands/__init__.py +0 -0
  326. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/commands/bundle/__init__.py +0 -0
  327. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/extensions/_commands.py +0 -0
  328. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integration_scaffold.py +0 -0
  329. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integration_state.py +0 -0
  330. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integration_status.py +0 -0
  331. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/__init__.py +0 -0
  332. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/_commands.py +0 -0
  333. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/_query_commands.py +0 -0
  334. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
  335. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/agy/__init__.py +0 -0
  336. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/amp/__init__.py +0 -0
  337. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  338. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/catalog.py +0 -0
  339. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/claude/__init__.py +0 -0
  340. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/cline/__init__.py +0 -0
  341. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  342. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/codex/__init__.py +0 -0
  343. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  344. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/devin/__init__.py +0 -0
  345. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/firebender/__init__.py +0 -0
  346. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/forge/__init__.py +0 -0
  347. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  348. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/generic/__init__.py +0 -0
  349. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/goose/__init__.py +0 -0
  350. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/grok/__init__.py +0 -0
  351. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/hermes/__init__.py +0 -0
  352. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/junie/__init__.py +0 -0
  353. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  354. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/kimi/__init__.py +0 -0
  355. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
  356. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  357. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/omp/__init__.py +0 -0
  358. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  359. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/pi/__init__.py +0 -0
  360. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  361. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  362. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  363. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/shai/__init__.py +0 -0
  364. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  365. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/trae/__init__.py +0 -0
  366. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  367. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/zcode/__init__.py +0 -0
  368. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/integrations/zed/__init__.py +0 -0
  369. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/__init__.py +0 -0
  370. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/base.py +0 -0
  371. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/expressions.py +0 -0
  372. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/__init__.py +0 -0
  373. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
  374. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
  375. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
  376. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
  377. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
  378. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
  379. {specify_cli-0.13.1 → specify_cli-0.13.3}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
  380. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/checklist-template.md +0 -0
  381. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/analyze.md +0 -0
  382. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/checklist.md +0 -0
  383. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/clarify.md +0 -0
  384. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/constitution.md +0 -0
  385. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/converge.md +0 -0
  386. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/implement.md +0 -0
  387. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/specify.md +0 -0
  388. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/commands/taskstoissues.md +0 -0
  389. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/constitution-template.md +0 -0
  390. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/plan-template.md +0 -0
  391. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/spec-template.md +0 -0
  392. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/tasks-template.md +0 -0
  393. {specify_cli-0.13.1 → specify_cli-0.13.3}/templates/vscode-settings.json +0 -0
  394. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/__init__.py +0 -0
  395. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/auth_helpers.py +0 -0
  396. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/bundler_helpers.py +0 -0
  397. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/conftest.py +0 -0
  398. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/contract/test_bundle_cli.py +0 -0
  399. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/contract/test_manifest_schema.py +0 -0
  400. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/__init__.py +0 -0
  401. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/assess/__init__.py +0 -0
  402. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/assess/test_assess_extension.py +0 -0
  403. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/bug/__init__.py +0 -0
  404. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/bug/test_bug_extension.py +0 -0
  405. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/git/__init__.py +0 -0
  406. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/git/test_git_extension.py +0 -0
  407. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/git/test_git_extension_python_parity.py +0 -0
  408. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/test_agent_context_cli_free.py +0 -0
  409. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/test_extension_agent_context.py +0 -0
  410. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
  411. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/hooks/TESTING.md +0 -0
  412. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/hooks/plan.md +0 -0
  413. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/hooks/spec.md +0 -0
  414. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/hooks/tasks.md +0 -0
  415. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/http_helpers.py +0 -0
  416. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integration/test_bundler_init_install.py +0 -0
  417. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integration/test_bundler_install_flow.py +0 -0
  418. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integration/test_bundler_local_install.py +0 -0
  419. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integration/test_bundler_security_paths.py +0 -0
  420. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/__init__.py +0 -0
  421. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/conftest.py +0 -0
  422. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_cli.py +0 -0
  423. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_extra_args.py +0 -0
  424. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_home_isolation.py +0 -0
  425. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_agy.py +0 -0
  426. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_amp.py +0 -0
  427. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_auggie.py +0 -0
  428. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_base_markdown.py +0 -0
  429. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_base_skills.py +0 -0
  430. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_base_toml.py +0 -0
  431. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_base_yaml.py +0 -0
  432. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_catalog.py +0 -0
  433. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_claude.py +0 -0
  434. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_cline.py +0 -0
  435. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_codebuddy.py +0 -0
  436. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_codex.py +0 -0
  437. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_cursor_agent.py +0 -0
  438. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_devin.py +0 -0
  439. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_firebender.py +0 -0
  440. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_forge.py +0 -0
  441. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_gemini.py +0 -0
  442. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_generic.py +0 -0
  443. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_goose.py +0 -0
  444. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_grok.py +0 -0
  445. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_hermes.py +0 -0
  446. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_junie.py +0 -0
  447. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_kilocode.py +0 -0
  448. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_kimi.py +0 -0
  449. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_kiro_cli.py +0 -0
  450. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_lingma.py +0 -0
  451. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_omp.py +0 -0
  452. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_opencode.py +0 -0
  453. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_pi.py +0 -0
  454. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_qodercli.py +0 -0
  455. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_qwen.py +0 -0
  456. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_rovodev.py +0 -0
  457. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_scaffold.py +0 -0
  458. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_shai.py +0 -0
  459. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_state.py +0 -0
  460. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_tabnine.py +0 -0
  461. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_trae.py +0 -0
  462. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_vibe.py +0 -0
  463. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_zcode.py +0 -0
  464. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_integration_zed.py +0 -0
  465. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_registry.py +0 -0
  466. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
  467. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/self_upgrade_helpers.py +0 -0
  468. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_agent_config_consistency.py +0 -0
  469. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_authentication.py +0 -0
  470. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_branch_numbering.py +0 -0
  471. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_check_prerequisites_paths_only.py +0 -0
  472. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_check_tool.py +0 -0
  473. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_cli_version.py +0 -0
  474. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_commands_package.py +0 -0
  475. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_console_imports.py +0 -0
  476. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_extension_registration.py +0 -0
  477. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_extension_update_hardening.py +0 -0
  478. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_init_dir.py +0 -0
  479. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_init_dir_cli.py +0 -0
  480. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_live_transient_windows.py +0 -0
  481. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_merge.py +0 -0
  482. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_post_process.py +0 -0
  483. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_ps1_encoding.py +0 -0
  484. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_registrar_path_traversal.py +0 -0
  485. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_self_upgrade_detection.py +0 -0
  486. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_self_upgrade_execution.py +0 -0
  487. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_self_upgrade_guidance.py +0 -0
  488. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_self_upgrade_verification.py +0 -0
  489. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_setup_plan_feature_json.py +0 -0
  490. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_setup_plan_no_overwrite.py +0 -0
  491. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_setup_tasks.py +0 -0
  492. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_shared_infra_integrity.py +0 -0
  493. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_timestamp_branches.py +0 -0
  494. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_upgrade.py +0 -0
  495. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_utils.py +0 -0
  496. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_utils_assets_imports.py +0 -0
  497. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_version_imports.py +0 -0
  498. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/test_workflow_run_without_project.py +0 -0
  499. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundle_download_url.py +0 -0
  500. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_catalog_config.py +0 -0
  501. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_conflict.py +0 -0
  502. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_packager.py +0 -0
  503. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_primitives.py +0 -0
  504. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_records.py +0 -0
  505. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_references.py +0 -0
  506. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_resolver.py +0 -0
  507. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_validator.py +0 -0
  508. {specify_cli-0.13.1 → specify_cli-0.13.3}/tests/unit/test_bundler_versioning.py +0 -0
  509. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/ARCHITECTURE.md +0 -0
  510. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/PUBLISHING.md +0 -0
  511. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/README.md +0 -0
  512. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/catalog.json +0 -0
  513. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/speckit/workflow.yml +0 -0
  514. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/step-catalog.community.json +0 -0
  515. {specify_cli-0.13.1 → specify_cli-0.13.3}/workflows/step-catalog.json +0 -0
@@ -0,0 +1,34 @@
1
+ {
2
+ "entries": {
3
+ "actions/checkout@v6.0.3": {
4
+ "repo": "actions/checkout",
5
+ "version": "v6.0.3",
6
+ "sha": "df4cb1c069e1874edd31b4311f1884172cec0e10"
7
+ },
8
+ "actions/download-artifact@v8.0.1": {
9
+ "repo": "actions/download-artifact",
10
+ "version": "v8.0.1",
11
+ "sha": "3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c"
12
+ },
13
+ "actions/github-script@v9.0.0": {
14
+ "repo": "actions/github-script",
15
+ "version": "v9.0.0",
16
+ "sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
17
+ },
18
+ "actions/setup-node@v6.4.0": {
19
+ "repo": "actions/setup-node",
20
+ "version": "v6.4.0",
21
+ "sha": "48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e"
22
+ },
23
+ "actions/upload-artifact@v7.0.1": {
24
+ "repo": "actions/upload-artifact",
25
+ "version": "v7.0.1",
26
+ "sha": "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a"
27
+ },
28
+ "github/gh-aw-actions/setup@v0.79.8": {
29
+ "repo": "github/gh-aw-actions/setup",
30
+ "version": "v0.79.8",
31
+ "sha": "c0338fef4749d08c21f8f975fb0e37efa17dda47"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,115 @@
1
+ """Check that committed security audit requirements are up to date."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ import subprocess
7
+ import sys
8
+ from pathlib import Path
9
+
10
+
11
+ REPO_ROOT = Path(__file__).resolve().parents[2]
12
+ COMMITTED_REQUIREMENTS = REPO_ROOT / ".github" / "security-audit-requirements.txt"
13
+ DEPENDENCY_INPUTS = ("pyproject.toml", ".github/security-audit-requirements.txt")
14
+
15
+
16
+ def _dependency_diff_refs() -> tuple[str, str]:
17
+ base_ref = os.environ.get("DEPENDENCY_DIFF_BASE", "").strip()
18
+ head_ref = os.environ.get("DEPENDENCY_DIFF_HEAD", "").strip() or "HEAD"
19
+ if base_ref and not set(base_ref) <= {"0"}:
20
+ return base_ref, head_ref
21
+ # Fallback when no usable base is supplied (push with an all-zero
22
+ # ``github.event.before``, manual dispatch, etc.). ``HEAD^`` fails on a
23
+ # shallow checkout or a single-commit repo; that ``git diff`` error is
24
+ # caught by the caller and deliberately treated as "inputs changed" so the
25
+ # audit runs anyway — failing safe (audit) rather than skipping silently.
26
+ return "HEAD^", "HEAD"
27
+
28
+
29
+ def _dependency_inputs_changed() -> bool:
30
+ base_ref, head_ref = _dependency_diff_refs()
31
+ try:
32
+ result = subprocess.run(
33
+ [
34
+ "git",
35
+ "diff",
36
+ "--name-only",
37
+ base_ref,
38
+ head_ref,
39
+ "--",
40
+ *DEPENDENCY_INPUTS,
41
+ ],
42
+ check=True,
43
+ cwd=REPO_ROOT,
44
+ stderr=subprocess.PIPE,
45
+ stdout=subprocess.PIPE,
46
+ text=True,
47
+ )
48
+ except subprocess.CalledProcessError as exc:
49
+ print(
50
+ "Could not determine changed dependency inputs; checking requirements.",
51
+ file=sys.stderr,
52
+ )
53
+ if exc.stderr:
54
+ print(exc.stderr.strip(), file=sys.stderr)
55
+ return True
56
+
57
+ changed_inputs = [line for line in result.stdout.splitlines() if line]
58
+ if not changed_inputs:
59
+ print("Dependency audit inputs unchanged; sync check skipped.")
60
+ return False
61
+
62
+ print(f"Dependency audit inputs changed: {', '.join(changed_inputs)}")
63
+ return True
64
+
65
+
66
+ def main() -> int:
67
+ if not _dependency_inputs_changed():
68
+ return 0
69
+
70
+ generated_requirements_env = os.environ.get("GENERATED_REQUIREMENTS", "").strip()
71
+ if not generated_requirements_env:
72
+ print(
73
+ "GENERATED_REQUIREMENTS must be set to the temporary output file path.",
74
+ file=sys.stderr,
75
+ )
76
+ return 1
77
+
78
+ generated_requirements = Path(generated_requirements_env)
79
+ generated_requirements.parent.mkdir(parents=True, exist_ok=True)
80
+
81
+ subprocess.run(
82
+ [
83
+ "uv",
84
+ "pip",
85
+ "compile",
86
+ "pyproject.toml",
87
+ "--extra",
88
+ "test",
89
+ "--universal",
90
+ "--upgrade",
91
+ "--generate-hashes",
92
+ "--quiet",
93
+ "--no-header",
94
+ "--output-file",
95
+ str(generated_requirements),
96
+ ],
97
+ check=True,
98
+ cwd=REPO_ROOT,
99
+ )
100
+
101
+ committed = COMMITTED_REQUIREMENTS.read_text(encoding="utf-8")
102
+ generated = generated_requirements.read_text(encoding="utf-8")
103
+ if committed == generated:
104
+ return 0
105
+
106
+ print(
107
+ "Regenerate .github/security-audit-requirements.txt with the documented "
108
+ "uv pip compile command.",
109
+ file=sys.stderr,
110
+ )
111
+ return 1
112
+
113
+
114
+ if __name__ == "__main__":
115
+ raise SystemExit(main())
@@ -0,0 +1,253 @@
1
+ annotated-doc==0.0.4 \
2
+ --hash=sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320 \
3
+ --hash=sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4
4
+ # via typer
5
+ click==8.4.2 \
6
+ --hash=sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6 \
7
+ --hash=sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76
8
+ # via specify-cli (pyproject.toml)
9
+ colorama==0.4.6 ; sys_platform == 'win32' \
10
+ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
11
+ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
12
+ # via
13
+ # click
14
+ # pytest
15
+ # typer
16
+ coverage==7.15.2 \
17
+ --hash=sha256:075560438765b7a2ef43bf7aa7758661b53d889df47f062a31bda6c1ade553a2 \
18
+ --hash=sha256:0901cfe6c13bcd2302da4f83e884555d2a22bda6e4c476f09ef204ba20ca536e \
19
+ --hash=sha256:094dd37f3ef7b2da8b068b583d1f4c40f91c65197e16c52a71962d5d537fc5db \
20
+ --hash=sha256:09f5c6ec5901f667bd97dd140b5b9a2586b10efec66f46fb1e6d8135f8b95bdf \
21
+ --hash=sha256:0e55510bc98ae943cece9e667a6c0fe94c6a92913720dea34243657a17993d0c \
22
+ --hash=sha256:1121caa19159a38b5463eaae4b1e1fde81e525b15ecc5e000cd5b1a108f743a8 \
23
+ --hash=sha256:1268ac8fb9ddcd783d3948dbabaf80a5d53bfdaa0575e873e2139a692f797443 \
24
+ --hash=sha256:1473b3ba8e7ee0f076117b1a72c23f579a2b9e2bb742f48a8d86ea27ca93f91a \
25
+ --hash=sha256:17c432b5f73ad52ef46fb06019f6fa7c66ce381961cf0f7dfd1d3a4bd3a98145 \
26
+ --hash=sha256:1adac78e5abc7c5438f7a209c9ca69d06542f0bf481d728b6989ea80b813fdf9 \
27
+ --hash=sha256:1cd7a5beb7af3e864a13b1f0fb26efd3695da43ef0daf71e586adfffaf34d5b2 \
28
+ --hash=sha256:1d16e3a7104ea84f03e614611b3edbf6fb6892554b3ab0fe7fbb3f2b2ef04376 \
29
+ --hash=sha256:25fd15dd40a0a2c51a500d664ca29053c09c3259d998407bf982b6e114696138 \
30
+ --hash=sha256:2617f8799d268fabdeef42a7e89ac3a23e1deee9025427db2df970f99a89a578 \
31
+ --hash=sha256:26c3b04a6377fd7c09800921fa934e3a17c0020439cd59df73e73ae1d4b6a78c \
32
+ --hash=sha256:29c052f7c83ccfcc5c577eaae025d2e4a9bb80daf03c0ac31c996e83b000ce88 \
33
+ --hash=sha256:2f1ec6f304b156669cfde653b4e9a953f5de87e247ea02ac599bce0ab2744036 \
34
+ --hash=sha256:2fbeeeecea279727f8ac16c8e1133ddfeee793e985c86ae343d6a5ce744eef8c \
35
+ --hash=sha256:2ff08701be2d1556fc78b326c80a3e8042da09352ecb3819105f8e386c8a3071 \
36
+ --hash=sha256:38c9518b7103826c403a461544e3c2e77151e8676d06eaed85911a97e962584a \
37
+ --hash=sha256:3df60dc267f0a2ca23cb7a9ab1109c62b9335ffbf519fcfe167157c28c09b81d \
38
+ --hash=sha256:3ed010aa1b69cda8e827aabfca9866216c980e2dca82ab9a78c5f83689964c8b \
39
+ --hash=sha256:40f633c5c5fc783732f6312280122e859538fa24461235597c13d803ea9a108a \
40
+ --hash=sha256:42ec3d989421b174a2ab607c1539f24127ad362757b7f1c0c0d7a2993f7eb37b \
41
+ --hash=sha256:434e68d531858205895eb0d74b73d20b84260de426387d53c422a5acda2cf050 \
42
+ --hash=sha256:44826758cfe73fcd0e6af5deb4ba6d5417cc1d13df3acb35c93484a11160f846 \
43
+ --hash=sha256:4510fb9cdf6bb02dfa6af0be4a534b8102d086e22e4a33f8836df663da3d660d \
44
+ --hash=sha256:48ccc6395958eda89093ecdc35644c86f23a8b23a7f4d44958812b721aad67c1 \
45
+ --hash=sha256:4d3361879d736f469f45723c11ea1a5bbdaf1f6928f0e632c940378b5aa9b660 \
46
+ --hash=sha256:582edc45c2040543fef83341be23c43024a3ab3ae0c2d8bc498a06282905ad40 \
47
+ --hash=sha256:63022c4c8dec1d0342f05c3ede99842fe3d007689acc45e86f123a1746e4a026 \
48
+ --hash=sha256:67d7602480a47bdf5b675635403625553ebaa70d5a62a657c035149fd401cea0 \
49
+ --hash=sha256:68af907f595ab01a78f794932ff3bdf929c316d3000810d38dbc247129e26f8b \
50
+ --hash=sha256:6aa28cfb6488e5453b5b762d65f73aa586380f6693a04d58078ce228a29b06c0 \
51
+ --hash=sha256:6c0be82b4d4aa5b2704e08518e2252f3e3d110164bcca826816801052e48a7aa \
52
+ --hash=sha256:6f6966fc30e6f06ca8f98fb0ce51eda6b111b3ee8d066a8b1ec9e77fa06ab55d \
53
+ --hash=sha256:6fc448c377d6eeb00a47c673494bd9bae29280ca53987e1869e67ebedfe20658 \
54
+ --hash=sha256:728a33676d4c3f0db977990a4bd421dcaa3be3e53b5b6273036fff6666008e89 \
55
+ --hash=sha256:7466cc7ab6dc0db871d264bf99e8779f0917ee63d40730af0552f71535a6e072 \
56
+ --hash=sha256:77f091ea3a9cc611cd29f433565476bc1936c084ac8eee00ea0e7e70c27e4199 \
57
+ --hash=sha256:77f0ef5011df53a4bd1b35211ab122287f8d9b8d7aa1c4553e5c2deb24b1d446 \
58
+ --hash=sha256:7c63387e21ab21f512c69c9756a8c7dadd322c7275edb064064433c9a09c3743 \
59
+ --hash=sha256:7d29ca7bd67af6e12e74632d65f026eabc1364da5c254494cd914446a28a3ef7 \
60
+ --hash=sha256:7dc2950a2992cd676d35c20ae63522836deeb034f08874699d14068710af3dc1 \
61
+ --hash=sha256:7e8f27131dc7cd53de2c137dd207b3720919320b3c20d499dc30aa9ee6173287 \
62
+ --hash=sha256:81f382c5a94b434ec1f6da607edb904c76d7212e618cd4d1bc9f97bed4120ef5 \
63
+ --hash=sha256:835ec4e20b45f0a7f63ed78f94065aca00de033403df8377bfe8b9c6abc0a7be \
64
+ --hash=sha256:8bb9f4b4279187560796a4cdaca3b0a93dd97e48ee667df005f4ed9a97403688 \
65
+ --hash=sha256:8c726b232659cbd2ae57ade46509eb068c9bd7a06df9fcbff6fe484870006934 \
66
+ --hash=sha256:913b6c56e110da40e035bbd168353bf7aaa2544a5eaccea5d98a4629aac156c7 \
67
+ --hash=sha256:97a5c5457a9fb1d6c4e06cfb5dc835871fbfb6a6a51addc9e925bdeff5ef7440 \
68
+ --hash=sha256:9854ca62c152874b2060772503535be2e8f53f70b8aaa7686b094888d872f984 \
69
+ --hash=sha256:9911f31aad8906abe337c271343485cf20df5e70df5d2f57f9f136e7b55f26bc \
70
+ --hash=sha256:9b5bd92ff1ec22e535eab0de75fa6db021992791f461a2aceb7822c625a1187d \
71
+ --hash=sha256:9deddf09eecb717b7f980414b43d90a5b22ff3967d2949ab29cb0aa83d9e9098 \
72
+ --hash=sha256:9e36686f7a442185db2400b3df171aac520869faf9deb59df687d28659eda2a6 \
73
+ --hash=sha256:9f4432898c4bf2fba0435bbe35dd4437d7264565e5a88a21f5b49d8662a6b629 \
74
+ --hash=sha256:a0f47002c6eeb7c280228467a4cb0cc15ca2103a8421b986b2d3ec04a0f9bd8b \
75
+ --hash=sha256:a164b50081fc7357331c4024ef4d17b78ba325f8380d05f5a69599a7e05257ee \
76
+ --hash=sha256:a29ec5305a7335aacee2d799e3422e91e1c8a12474986e2b3b07e315c91be82f \
77
+ --hash=sha256:a300c6934e0989c327b9e8a1e110329da4641149f872bbe9f70168be66da76c1 \
78
+ --hash=sha256:a4c46b247b5d4b78f613bd89fea926d32b25c6cc61a50bd1e99ba310348f3dad \
79
+ --hash=sha256:a638db90c61cd219aeee65e83a24fdaa57269a741ae0cf773309208ac862cee3 \
80
+ --hash=sha256:a63b9e190711134d581c4d703df5df09851b1acf99792c7aacbbe9f41f0283c9 \
81
+ --hash=sha256:aaccad4129d735a8a4d526f26929894c9a4e8ef7034566f210b176749d6906e3 \
82
+ --hash=sha256:ae901f7e55ba405c84ee1cab3d3e962e4e871e4a2bcb9c90911adbd69b42ac5a \
83
+ --hash=sha256:afa29e2eff3d5729267e2cb2fd4ce9d61c952932fb2694e34ccb5d9540c6a296 \
84
+ --hash=sha256:affd532502d34c0472d0cdb181325c89f1d2c44992fef0c17e88e7b1576259a1 \
85
+ --hash=sha256:b171bdd71cb7ff792bf32e376173b0ace7e7963e7e57c58dfc42063a6a7174cd \
86
+ --hash=sha256:b868acc62aa5de3be7a9d05c2333bf8359ca987e43f9cb30ff8fbda6a024ab73 \
87
+ --hash=sha256:b9a6367e4aff723e8ee8190836836124284e8fcd4265e307c844010cfa074f3f \
88
+ --hash=sha256:bbc808daf4f5cd567af8075ecc72d21c6dfef9a254709a621a84c217c935ebc0 \
89
+ --hash=sha256:bbf44513ceb1589e31948e20eafbde9deaface90e1a1afa5f5f77b4423d17ce6 \
90
+ --hash=sha256:bcc0aae933921d03096f53b0b03eeb702129fd406dee59f08d2efacc68681fa5 \
91
+ --hash=sha256:bfd341ccf78128e72c094bc70cc25b3ef309c33c7c2c66ba3ed4309549e02de1 \
92
+ --hash=sha256:c6a98d698f9e2c8008d0370ec7fc452ebfcc530002ae2d0061170d768b992589 \
93
+ --hash=sha256:cb0fddaa6884be6aae36ced9544b5e90f7d5f03845a2853bf47a14953a4e8688 \
94
+ --hash=sha256:cee0f89f4767a6057c8fbf168f8135f18be651300496086bd873e3189fed0487 \
95
+ --hash=sha256:d17d7512151fedfcc64c1821a8977fc9be0dbf495754669afcab7b57abc98ae9 \
96
+ --hash=sha256:d46e62cb35d91e6e2589fda6d28074426b0e276422b5d2ebef2c6b11dc60dbfd \
97
+ --hash=sha256:d50dd325e18ec25bfcc10cd7f99b04df1ab9ec76b0918c260e60817ad0643dee \
98
+ --hash=sha256:db9c8438057e5b0f6a22a0af99c0c1d26b57fbbdbd1be5861ddb8f897fcc3a2d \
99
+ --hash=sha256:dee88b1ed88587abd8c0269a1fc1f4cc77f7750d1dfde2869e2a123af420e67d \
100
+ --hash=sha256:dfd3db045e95960ae3683059571e597fda7cc610106a8916f77c5839048c1deb \
101
+ --hash=sha256:e26ff680768b8095e8874aabe0e9d3a47a2a9f176a8340d05f8604c56457c23a \
102
+ --hash=sha256:e370c12133095ff18432de8c044962be85a5a96d90c6fcbce8e17e76236d2328 \
103
+ --hash=sha256:e38def96ad59853824c97953fdcd2c320a84ba3ce99b417db78af8bb6c3db635 \
104
+ --hash=sha256:e8f91bce78e32343af184c3b7fa28fcf5a9e2641f4b6623d392038f804939188 \
105
+ --hash=sha256:eb6bcae8d1a9d305351ecb108232441d11c5cfe9de840a04388ba5d2db8d735c \
106
+ --hash=sha256:f653e5d7248c1191ec988a85c72edeab46c3ff44f90639a4ed4874ec0be90243 \
107
+ --hash=sha256:fe41909c9515c3bfdb5f02c4d1f857dba322d9a9a1178069b91eea77889df63a
108
+ # via pytest-cov
109
+ iniconfig==2.3.0 \
110
+ --hash=sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730 \
111
+ --hash=sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12
112
+ # via pytest
113
+ json5==0.15.0 \
114
+ --hash=sha256:56636a30c0e8a4665fe2179c0212f32eae3796dea89ea6f649b9436ecdb39618 \
115
+ --hash=sha256:7424d1f1eb1d56da6e3d70643f53619862b4ce81440bdb8ecfd6f875e5ba4a71
116
+ # via specify-cli (pyproject.toml)
117
+ markdown-it-py==4.2.0 \
118
+ --hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \
119
+ --hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a
120
+ # via rich
121
+ mdurl==0.1.2 \
122
+ --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
123
+ --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
124
+ # via markdown-it-py
125
+ packaging==26.2 \
126
+ --hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \
127
+ --hash=sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661
128
+ # via
129
+ # specify-cli (pyproject.toml)
130
+ # pytest
131
+ pathspec==1.1.1 \
132
+ --hash=sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a \
133
+ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189
134
+ # via specify-cli (pyproject.toml)
135
+ platformdirs==4.11.0 \
136
+ --hash=sha256:0555d18370482847566ffabcaa53ad7c6c1c29f195989ae1ed634a05f76ea1e0 \
137
+ --hash=sha256:360ccded2b7fce0af0ff80cc8f5942a1c5d99b0e856033acb030bfc634709e74
138
+ # via specify-cli (pyproject.toml)
139
+ pluggy==1.6.0 \
140
+ --hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \
141
+ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
142
+ # via
143
+ # pytest
144
+ # pytest-cov
145
+ pygments==2.20.0 \
146
+ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \
147
+ --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176
148
+ # via
149
+ # pytest
150
+ # rich
151
+ pytest==9.1.1 \
152
+ --hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \
153
+ --hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c
154
+ # via
155
+ # specify-cli (pyproject.toml)
156
+ # pytest-cov
157
+ pytest-cov==7.1.0 \
158
+ --hash=sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2 \
159
+ --hash=sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678
160
+ # via specify-cli (pyproject.toml)
161
+ pyyaml==6.0.3 \
162
+ --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \
163
+ --hash=sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a \
164
+ --hash=sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3 \
165
+ --hash=sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956 \
166
+ --hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6 \
167
+ --hash=sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c \
168
+ --hash=sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65 \
169
+ --hash=sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a \
170
+ --hash=sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0 \
171
+ --hash=sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b \
172
+ --hash=sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1 \
173
+ --hash=sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6 \
174
+ --hash=sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7 \
175
+ --hash=sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e \
176
+ --hash=sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007 \
177
+ --hash=sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310 \
178
+ --hash=sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4 \
179
+ --hash=sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9 \
180
+ --hash=sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295 \
181
+ --hash=sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea \
182
+ --hash=sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0 \
183
+ --hash=sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e \
184
+ --hash=sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac \
185
+ --hash=sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9 \
186
+ --hash=sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7 \
187
+ --hash=sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35 \
188
+ --hash=sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb \
189
+ --hash=sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b \
190
+ --hash=sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69 \
191
+ --hash=sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5 \
192
+ --hash=sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b \
193
+ --hash=sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c \
194
+ --hash=sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369 \
195
+ --hash=sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd \
196
+ --hash=sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824 \
197
+ --hash=sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198 \
198
+ --hash=sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065 \
199
+ --hash=sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c \
200
+ --hash=sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c \
201
+ --hash=sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764 \
202
+ --hash=sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196 \
203
+ --hash=sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b \
204
+ --hash=sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00 \
205
+ --hash=sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac \
206
+ --hash=sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8 \
207
+ --hash=sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e \
208
+ --hash=sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28 \
209
+ --hash=sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3 \
210
+ --hash=sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5 \
211
+ --hash=sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4 \
212
+ --hash=sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b \
213
+ --hash=sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf \
214
+ --hash=sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5 \
215
+ --hash=sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702 \
216
+ --hash=sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8 \
217
+ --hash=sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788 \
218
+ --hash=sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da \
219
+ --hash=sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d \
220
+ --hash=sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc \
221
+ --hash=sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c \
222
+ --hash=sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba \
223
+ --hash=sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f \
224
+ --hash=sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917 \
225
+ --hash=sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 \
226
+ --hash=sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26 \
227
+ --hash=sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f \
228
+ --hash=sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b \
229
+ --hash=sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be \
230
+ --hash=sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c \
231
+ --hash=sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3 \
232
+ --hash=sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6 \
233
+ --hash=sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926 \
234
+ --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0
235
+ # via specify-cli (pyproject.toml)
236
+ readchar==4.2.2 \
237
+ --hash=sha256:92daf7e42c52b0787e6c75d01ecfb9a94f4ceff3764958b570c1dddedd47b200 \
238
+ --hash=sha256:e3b270fe16fc90c50ac79107700330a133dd4c63d22939f5b03b4f24564d5dd8
239
+ # via specify-cli (pyproject.toml)
240
+ rich==15.0.0 \
241
+ --hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \
242
+ --hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36
243
+ # via
244
+ # specify-cli (pyproject.toml)
245
+ # typer
246
+ shellingham==1.5.4 \
247
+ --hash=sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686 \
248
+ --hash=sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de
249
+ # via typer
250
+ typer==0.27.0 \
251
+ --hash=sha256:629bd12ea5d13a17148125d9a264f949eb171fb3f120f9b04d85873cab054fa5 \
252
+ --hash=sha256:6f4b27631e47f077871b7dc30e933ec0131c1390fbe0e387ea5574b5bac9ccf1
253
+ # via specify-cli (pyproject.toml)