specify-cli 0.16.0__tar.gz → 0.16.2__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 (539) hide show
  1. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
  2. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -0
  3. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/feature_request.yml +1 -0
  4. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/aw/actions-lock.json +16 -6
  5. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/add-community-bundle.lock.yml +1 -1
  6. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/add-community-extension.lock.yml +1 -1
  7. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/add-community-preset.lock.yml +1 -1
  8. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/bug-assess.lock.yml +1 -1
  9. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/bug-fix.lock.yml +1 -1
  10. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/bug-test.lock.yml +18 -7
  11. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/bug-test.md +16 -0
  12. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/codeql.yml +2 -2
  13. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/lint.yml +1 -1
  14. {specify_cli-0.16.0 → specify_cli-0.16.2}/CHANGELOG.md +51 -0
  15. {specify_cli-0.16.0 → specify_cli-0.16.2}/PKG-INFO +2 -2
  16. {specify_cli-0.16.0 → specify_cli-0.16.2}/README.md +1 -1
  17. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/community/extensions.md +1 -0
  18. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/community/presets.md +1 -0
  19. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/install/pypi.md +21 -0
  20. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/installation.md +1 -1
  21. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/core.md +2 -0
  22. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/integrations.md +2 -0
  23. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/EXTENSION-API-REFERENCE.md +39 -1
  24. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +24 -2
  25. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/scripts/python/update_agent_context.py +26 -11
  26. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/catalog.community.json +38 -4
  27. {specify_cli-0.16.0 → specify_cli-0.16.2}/integrations/catalog.json +9 -0
  28. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/ARCHITECTURE.md +13 -0
  29. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/README.md +10 -0
  30. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/catalog.community.json +30 -1
  31. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/catalog.json +2 -2
  32. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/constitution-sync/README.md +15 -6
  33. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/constitution-sync/preset.yml +1 -1
  34. {specify_cli-0.16.0 → specify_cli-0.16.2}/pyproject.toml +1 -1
  35. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/bash/check-prerequisites.sh +43 -8
  36. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/bash/common.sh +319 -105
  37. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/bash/create-new-feature.sh +19 -4
  38. specify_cli-0.16.2/scripts/bash/resolve-template.sh +57 -0
  39. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/bash/setup-plan.sh +6 -4
  40. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/bash/setup-tasks.sh +7 -4
  41. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/powershell/check-prerequisites.ps1 +18 -2
  42. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/powershell/common.ps1 +239 -82
  43. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/powershell/create-new-feature.ps1 +8 -5
  44. specify_cli-0.16.2/scripts/powershell/resolve-template.ps1 +38 -0
  45. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/powershell/setup-plan.ps1 +2 -4
  46. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/powershell/setup-tasks.ps1 +8 -2
  47. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/python/check_prerequisites.py +76 -8
  48. specify_cli-0.16.2/scripts/python/common.py +554 -0
  49. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/python/create_new_feature.py +26 -7
  50. specify_cli-0.16.2/scripts/python/resolve_template.py +63 -0
  51. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/python/setup_plan.py +17 -6
  52. {specify_cli-0.16.0 → specify_cli-0.16.2}/scripts/python/setup_tasks.py +38 -8
  53. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_download_security.py +21 -3
  54. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_invocation_style.py +1 -1
  55. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_utils.py +2 -2
  56. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/commands/bundle/__init__.py +51 -21
  57. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/commands/init.py +64 -16
  58. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/events.py +9 -1
  59. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/extensions/__init__.py +157 -9
  60. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/__init__.py +2 -0
  61. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/catalog.py +10 -1
  62. specify_cli-0.16.2/src/specify_cli/integrations/command_code/__init__.py +41 -0
  63. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/hermes/__init__.py +37 -7
  64. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/kimi/__init__.py +13 -3
  65. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/manifest.py +1 -2
  66. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/presets/__init__.py +210 -55
  67. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/presets/_commands.py +23 -5
  68. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/shared_infra.py +47 -2
  69. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/_commands.py +6 -0
  70. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/expressions.py +13 -1
  71. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/overlays/schema.py +6 -1
  72. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/checklist.md +5 -5
  73. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/constitution.md +19 -6
  74. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/tasks.md +2 -2
  75. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/contract/test_bundle_cli.py +111 -0
  76. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/test_update_agent_context_python_parity.py +69 -33
  77. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integration/test_bundler_local_install.py +44 -0
  78. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_cli.py +93 -0
  79. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_events.py +47 -0
  80. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_base_markdown.py +3 -2
  81. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_base_skills.py +88 -0
  82. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_base_toml.py +3 -0
  83. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_base_yaml.py +3 -0
  84. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_catalog.py +202 -128
  85. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_cline.py +3 -0
  86. specify_cli-0.16.2/tests/integrations/test_integration_command_code.py +47 -0
  87. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_copilot.py +6 -0
  88. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_generic.py +4 -0
  89. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_registry.py +1 -1
  90. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_skill_frontmatter_quoting.py +63 -0
  91. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/parity_helpers.py +61 -0
  92. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_agent_config_consistency.py +1 -0
  93. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_check_prerequisites_python_parity.py +128 -0
  94. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_command_template_py_scripts.py +1 -1
  95. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_create_new_feature_python_parity.py +99 -1
  96. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_download_security.py +188 -0
  97. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_extensions.py +287 -0
  98. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_github_workflows.py +35 -0
  99. specify_cli-0.16.2/tests/test_init_output_markup.py +176 -0
  100. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_presets.py +822 -33
  101. specify_cli-0.16.2/tests/test_resolve_template_python_parity.py +753 -0
  102. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_setup_plan_python_parity.py +69 -11
  103. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_setup_tasks.py +1 -1
  104. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_setup_tasks_python_parity.py +63 -0
  105. specify_cli-0.16.2/tests/test_shared_infra_gitignore.py +103 -0
  106. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_workflows.py +84 -0
  107. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_overlay_schema.py +38 -0
  108. specify_cli-0.16.0/scripts/python/common.py +0 -293
  109. {specify_cli-0.16.0 → specify_cli-0.16.2}/.devcontainer/devcontainer.json +0 -0
  110. {specify_cli-0.16.0 → specify_cli-0.16.2}/.devcontainer/post-create.sh +0 -0
  111. {specify_cli-0.16.0 → specify_cli-0.16.2}/.editorconfig +0 -0
  112. {specify_cli-0.16.0 → specify_cli-0.16.2}/.gitattributes +0 -0
  113. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/CODEOWNERS +0 -0
  114. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
  115. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  116. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  117. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  118. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  119. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/dependabot.yml +0 -0
  120. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/scripts/check_security_requirements.py +0 -0
  121. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/security-audit-requirements.txt +0 -0
  122. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/skills/add-community-extension/SKILL.md +0 -0
  123. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/RELEASE-PROCESS.md +0 -0
  124. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/add-community-bundle.md +0 -0
  125. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/add-community-extension.md +0 -0
  126. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/add-community-preset.md +0 -0
  127. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/bug-assess.md +0 -0
  128. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/bug-fix.md +0 -0
  129. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/catalog-assign.yml +0 -0
  130. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/docs.yml +0 -0
  131. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/publish-pypi.yml +0 -0
  132. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/release-trigger.yml +0 -0
  133. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/release.yml +0 -0
  134. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/security.yml +0 -0
  135. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/stale.yml +0 -0
  136. {specify_cli-0.16.0 → specify_cli-0.16.2}/.github/workflows/test.yml +0 -0
  137. {specify_cli-0.16.0 → specify_cli-0.16.2}/.gitignore +0 -0
  138. {specify_cli-0.16.0 → specify_cli-0.16.2}/.markdownlint-cli2.jsonc +0 -0
  139. {specify_cli-0.16.0 → specify_cli-0.16.2}/.pre-commit-config.yaml +0 -0
  140. {specify_cli-0.16.0 → specify_cli-0.16.2}/.zenodo.json +0 -0
  141. {specify_cli-0.16.0 → specify_cli-0.16.2}/AGENTS.md +0 -0
  142. {specify_cli-0.16.0 → specify_cli-0.16.2}/CITATION.cff +0 -0
  143. {specify_cli-0.16.0 → specify_cli-0.16.2}/CODE_OF_CONDUCT.md +0 -0
  144. {specify_cli-0.16.0 → specify_cli-0.16.2}/CONTRIBUTING.md +0 -0
  145. {specify_cli-0.16.0 → specify_cli-0.16.2}/DEVELOPMENT.md +0 -0
  146. {specify_cli-0.16.0 → specify_cli-0.16.2}/LICENSE +0 -0
  147. {specify_cli-0.16.0 → specify_cli-0.16.2}/README.zh-CN.md +0 -0
  148. {specify_cli-0.16.0 → specify_cli-0.16.2}/SECURITY.md +0 -0
  149. {specify_cli-0.16.0 → specify_cli-0.16.2}/SUPPORT.md +0 -0
  150. {specify_cli-0.16.0 → specify_cli-0.16.2}/bundles/catalog.community.json +0 -0
  151. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/.gitignore +0 -0
  152. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/README.md +0 -0
  153. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/community/bundles.md +0 -0
  154. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/community/friends.md +0 -0
  155. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/community/overview.md +0 -0
  156. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/community/walkthroughs.md +0 -0
  157. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/concepts/complex-features.md +0 -0
  158. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/concepts/sdd.md +0 -0
  159. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/concepts/spec-of-specs.md +0 -0
  160. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/concepts/spec-persistence.md +0 -0
  161. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/docfx.json +0 -0
  162. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/guides/evolving-specs.md +0 -0
  163. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/guides/monorepo.md +0 -0
  164. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/index.md +0 -0
  165. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/install/air-gapped.md +0 -0
  166. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/install/one-time.md +0 -0
  167. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/install/pipx.md +0 -0
  168. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/install/uv.md +0 -0
  169. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/local-development.md +0 -0
  170. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/quickstart.md +0 -0
  171. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/agentic-bugfix.md +0 -0
  172. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/agentic-sdd.md +0 -0
  173. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/authentication.md +0 -0
  174. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/bundles.md +0 -0
  175. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/extensions.md +0 -0
  176. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/overview.md +0 -0
  177. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/presets.md +0 -0
  178. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/reference/workflows.md +0 -0
  179. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/template/public/main.css +0 -0
  180. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/toc.yml +0 -0
  181. {specify_cli-0.16.0 → specify_cli-0.16.2}/docs/upgrade.md +0 -0
  182. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/business-analyst/README.md +0 -0
  183. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/business-analyst/bundle.yml +0 -0
  184. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/developer/README.md +0 -0
  185. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/developer/bundle.yml +0 -0
  186. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/product-manager/README.md +0 -0
  187. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/product-manager/bundle.yml +0 -0
  188. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/security-researcher/README.md +0 -0
  189. {specify_cli-0.16.0 → specify_cli-0.16.2}/examples/bundles/security-researcher/bundle.yml +0 -0
  190. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  191. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  192. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/README.md +0 -0
  193. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  194. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/README.md +0 -0
  195. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/agent-context-config.yml +0 -0
  196. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/agent-context-defaults.json +0 -0
  197. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  198. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/extension.yml +0 -0
  199. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  200. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  201. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/README.md +0 -0
  202. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/commands/speckit.assess.decide.md +0 -0
  203. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/commands/speckit.assess.define.md +0 -0
  204. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/commands/speckit.assess.intake.md +0 -0
  205. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/commands/speckit.assess.research.md +0 -0
  206. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/commands/speckit.assess.shape.md +0 -0
  207. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/assess/extension.yml +0 -0
  208. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/bug/README.md +0 -0
  209. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  210. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  211. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/bug/commands/speckit.bug.test.md +0 -0
  212. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/bug/extension.yml +0 -0
  213. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/catalog.json +0 -0
  214. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/README.md +0 -0
  215. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/commands/speckit.git.commit.md +0 -0
  216. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/commands/speckit.git.feature.md +0 -0
  217. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/commands/speckit.git.initialize.md +0 -0
  218. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/commands/speckit.git.remote.md +0 -0
  219. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/commands/speckit.git.validate.md +0 -0
  220. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/config-template.yml +0 -0
  221. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/extension.yml +0 -0
  222. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/git-config.yml +0 -0
  223. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  224. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  225. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/bash/git-common.sh +0 -0
  226. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  227. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  228. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
  229. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  230. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  231. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/python/auto_commit.py +0 -0
  232. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/python/create_new_feature_branch.py +0 -0
  233. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/python/git_common.py +0 -0
  234. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/git/scripts/python/initialize_repo.py +0 -0
  235. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/selftest/commands/selftest.md +0 -0
  236. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/selftest/extension.yml +0 -0
  237. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/.gitignore +0 -0
  238. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/CHANGELOG.md +0 -0
  239. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/EXAMPLE-README.md +0 -0
  240. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/LICENSE +0 -0
  241. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/README.md +0 -0
  242. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/commands/example.md +0 -0
  243. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/config-template.yml +0 -0
  244. {specify_cli-0.16.0 → specify_cli-0.16.2}/extensions/template/extension.yml +0 -0
  245. {specify_cli-0.16.0 → specify_cli-0.16.2}/integrations/CONTRIBUTING.md +0 -0
  246. {specify_cli-0.16.0 → specify_cli-0.16.2}/integrations/README.md +0 -0
  247. {specify_cli-0.16.0 → specify_cli-0.16.2}/integrations/catalog.community.json +0 -0
  248. {specify_cli-0.16.0 → specify_cli-0.16.2}/media/bootstrap-claude-code.gif +0 -0
  249. {specify_cli-0.16.0 → specify_cli-0.16.2}/media/logo_large.webp +0 -0
  250. {specify_cli-0.16.0 → specify_cli-0.16.2}/media/logo_small.webp +0 -0
  251. {specify_cli-0.16.0 → specify_cli-0.16.2}/media/spec-kit-video-header.jpg +0 -0
  252. {specify_cli-0.16.0 → specify_cli-0.16.2}/media/specify_cli.gif +0 -0
  253. {specify_cli-0.16.0 → specify_cli-0.16.2}/newsletters/2026-April.md +0 -0
  254. {specify_cli-0.16.0 → specify_cli-0.16.2}/newsletters/2026-February.md +0 -0
  255. {specify_cli-0.16.0 → specify_cli-0.16.2}/newsletters/2026-July.md +0 -0
  256. {specify_cli-0.16.0 → specify_cli-0.16.2}/newsletters/2026-June.md +0 -0
  257. {specify_cli-0.16.0 → specify_cli-0.16.2}/newsletters/2026-March.md +0 -0
  258. {specify_cli-0.16.0 → specify_cli-0.16.2}/newsletters/2026-May.md +0 -0
  259. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/PUBLISHING.md +0 -0
  260. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/constitution-sync/commands/speckit.constitution.md +0 -0
  261. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/README.md +0 -0
  262. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/commands/speckit.constitution.md +0 -0
  263. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/commands/speckit.implement.md +0 -0
  264. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/commands/speckit.plan.md +0 -0
  265. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/commands/speckit.specify.md +0 -0
  266. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/commands/speckit.tasks.md +0 -0
  267. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/lean/preset.yml +0 -0
  268. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/scaffold/README.md +0 -0
  269. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  270. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/scaffold/commands/speckit.specify.md +0 -0
  271. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/scaffold/preset.yml +0 -0
  272. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/scaffold/templates/myext-template.md +0 -0
  273. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/scaffold/templates/spec-template.md +0 -0
  274. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/commands/speckit.specify.md +0 -0
  275. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  276. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/preset.yml +0 -0
  277. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/templates/checklist-template.md +0 -0
  278. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/templates/constitution-template.md +0 -0
  279. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/templates/plan-template.md +0 -0
  280. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/templates/spec-template.md +0 -0
  281. {specify_cli-0.16.0 → specify_cli-0.16.2}/presets/self-test/templates/tasks-template.md +0 -0
  282. {specify_cli-0.16.0 → specify_cli-0.16.2}/spec-driven.md +0 -0
  283. {specify_cli-0.16.0 → specify_cli-0.16.2}/spec-kit.code-workspace +0 -0
  284. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/__init__.py +0 -0
  285. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_agent_config.py +0 -0
  286. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_assets.py +0 -0
  287. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_console.py +0 -0
  288. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_github_http.py +0 -0
  289. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_init_options.py +0 -0
  290. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_project.py +0 -0
  291. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_toml_string.py +0 -0
  292. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/_version.py +0 -0
  293. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/agents.py +0 -0
  294. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/authentication/__init__.py +0 -0
  295. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/authentication/azure_devops.py +0 -0
  296. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/authentication/base.py +0 -0
  297. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/authentication/config.py +0 -0
  298. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/authentication/github.py +0 -0
  299. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/authentication/http.py +0 -0
  300. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/__init__.py +0 -0
  301. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
  302. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
  303. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/lib/__init__.py +0 -0
  304. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/lib/project.py +0 -0
  305. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/lib/versioning.py +0 -0
  306. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/lib/yamlio.py +0 -0
  307. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/models/__init__.py +0 -0
  308. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/models/catalog.py +0 -0
  309. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/models/manifest.py +0 -0
  310. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/models/records.py +0 -0
  311. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/__init__.py +0 -0
  312. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/adapters.py +0 -0
  313. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
  314. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/conflict.py +0 -0
  315. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/installer.py +0 -0
  316. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/packager.py +0 -0
  317. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/primitives.py +0 -0
  318. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/references.py +0 -0
  319. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/resolver.py +0 -0
  320. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/bundler/services/validator.py +0 -0
  321. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/catalogs.py +0 -0
  322. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/commands/__init__.py +0 -0
  323. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/commands/event.py +0 -0
  324. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/extensions/_commands.py +0 -0
  325. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integration_runtime.py +0 -0
  326. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integration_scaffold.py +0 -0
  327. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integration_state.py +0 -0
  328. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integration_status.py +0 -0
  329. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/_commands.py +0 -0
  330. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/_helpers.py +0 -0
  331. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/_install_commands.py +0 -0
  332. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/_migrate_commands.py +0 -0
  333. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/_query_commands.py +0 -0
  334. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
  335. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/agy/__init__.py +0 -0
  336. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/alquimia/__init__.py +0 -0
  337. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/amp/__init__.py +0 -0
  338. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  339. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/base.py +0 -0
  340. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/bob/__init__.py +0 -0
  341. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/claude/__init__.py +0 -0
  342. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/cline/__init__.py +0 -0
  343. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  344. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/codex/__init__.py +0 -0
  345. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/copilot/__init__.py +0 -0
  346. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  347. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/devin/__init__.py +0 -0
  348. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/droid/__init__.py +0 -0
  349. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/firebender/__init__.py +0 -0
  350. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/forge/__init__.py +0 -0
  351. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  352. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/generic/__init__.py +0 -0
  353. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/goose/__init__.py +0 -0
  354. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/grok/__init__.py +0 -0
  355. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/junie/__init__.py +0 -0
  356. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  357. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
  358. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  359. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/omp/__init__.py +0 -0
  360. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  361. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/pi/__init__.py +0 -0
  362. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  363. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  364. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  365. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/shai/__init__.py +0 -0
  366. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  367. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/trae/__init__.py +0 -0
  368. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  369. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/zcode/__init__.py +0 -0
  370. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/integrations/zed/__init__.py +0 -0
  371. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/__init__.py +0 -0
  372. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/base.py +0 -0
  373. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/catalog.py +0 -0
  374. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/engine.py +0 -0
  375. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/overlays/__init__.py +0 -0
  376. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/overlays/_commands.py +0 -0
  377. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/overlays/composer.py +0 -0
  378. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/overlays/layer_sources.py +0 -0
  379. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/overlays/merge.py +0 -0
  380. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/__init__.py +0 -0
  381. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
  382. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
  383. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
  384. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
  385. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
  386. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
  387. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
  388. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
  389. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
  390. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
  391. {specify_cli-0.16.0 → specify_cli-0.16.2}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
  392. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/checklist-template.md +0 -0
  393. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/analyze.md +0 -0
  394. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/clarify.md +0 -0
  395. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/converge.md +0 -0
  396. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/implement.md +0 -0
  397. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/plan.md +0 -0
  398. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/specify.md +0 -0
  399. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/commands/taskstoissues.md +0 -0
  400. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/constitution-template.md +0 -0
  401. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/plan-template.md +0 -0
  402. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/spec-template.md +0 -0
  403. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/tasks-template.md +0 -0
  404. {specify_cli-0.16.0 → specify_cli-0.16.2}/templates/vscode-settings.json +0 -0
  405. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/__init__.py +0 -0
  406. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/auth_helpers.py +0 -0
  407. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/bundler_helpers.py +0 -0
  408. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/conftest.py +0 -0
  409. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/contract/test_catalog_schema.py +0 -0
  410. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/contract/test_manifest_schema.py +0 -0
  411. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/contract/test_wheel_bundled_presets.py +0 -0
  412. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/contract/test_wheel_core_pack_scripts.py +0 -0
  413. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/__init__.py +0 -0
  414. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/assess/__init__.py +0 -0
  415. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/assess/test_assess_extension.py +0 -0
  416. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/bug/__init__.py +0 -0
  417. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/bug/test_bug_extension.py +0 -0
  418. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/git/__init__.py +0 -0
  419. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/git/test_git_extension.py +0 -0
  420. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/git/test_git_extension_python_parity.py +0 -0
  421. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/test_agent_context_cli_free.py +0 -0
  422. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/test_extension_agent_context.py +0 -0
  423. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
  424. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/hooks/TESTING.md +0 -0
  425. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/hooks/plan.md +0 -0
  426. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/hooks/spec.md +0 -0
  427. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/hooks/tasks.md +0 -0
  428. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/http_helpers.py +0 -0
  429. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integration/test_bundler_catalog_stack.py +0 -0
  430. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integration/test_bundler_init_install.py +0 -0
  431. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integration/test_bundler_install_flow.py +0 -0
  432. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integration/test_bundler_offline.py +0 -0
  433. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integration/test_bundler_security_paths.py +0 -0
  434. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/__init__.py +0 -0
  435. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/conftest.py +0 -0
  436. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_base.py +0 -0
  437. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_extra_args.py +0 -0
  438. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_home_isolation.py +0 -0
  439. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_agy.py +0 -0
  440. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_alquimia.py +0 -0
  441. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_amp.py +0 -0
  442. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_auggie.py +0 -0
  443. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_bob.py +0 -0
  444. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_claude.py +0 -0
  445. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_codebuddy.py +0 -0
  446. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_codex.py +0 -0
  447. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_cursor_agent.py +0 -0
  448. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_devin.py +0 -0
  449. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_droid.py +0 -0
  450. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_firebender.py +0 -0
  451. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_forge.py +0 -0
  452. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_gemini.py +0 -0
  453. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_goose.py +0 -0
  454. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_grok.py +0 -0
  455. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_hermes.py +0 -0
  456. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_junie.py +0 -0
  457. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_kilocode.py +0 -0
  458. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_kimi.py +0 -0
  459. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_kiro_cli.py +0 -0
  460. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_lingma.py +0 -0
  461. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_omp.py +0 -0
  462. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_opencode.py +0 -0
  463. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_pi.py +0 -0
  464. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_qodercli.py +0 -0
  465. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_qwen.py +0 -0
  466. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_rovodev.py +0 -0
  467. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_scaffold.py +0 -0
  468. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_shai.py +0 -0
  469. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_state.py +0 -0
  470. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_subcommand.py +0 -0
  471. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_tabnine.py +0 -0
  472. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_trae.py +0 -0
  473. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_vibe.py +0 -0
  474. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_zcode.py +0 -0
  475. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_integration_zed.py +0 -0
  476. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/integrations/test_manifest.py +0 -0
  477. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/self_upgrade_helpers.py +0 -0
  478. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_authentication.py +0 -0
  479. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_branch_numbering.py +0 -0
  480. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_check_prerequisites_paths_only.py +0 -0
  481. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_check_tool.py +0 -0
  482. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_cli_version.py +0 -0
  483. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_commands_package.py +0 -0
  484. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_console_imports.py +0 -0
  485. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_extension_add_path_traversal.py +0 -0
  486. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_extension_registration.py +0 -0
  487. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_extension_skills.py +0 -0
  488. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_extension_update_hardening.py +0 -0
  489. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_github_http.py +0 -0
  490. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_init_dir.py +0 -0
  491. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_init_dir_cli.py +0 -0
  492. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_live_transient_windows.py +0 -0
  493. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_merge.py +0 -0
  494. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_post_process.py +0 -0
  495. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_ps1_encoding.py +0 -0
  496. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_registrar_path_traversal.py +0 -0
  497. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_security_workflow.py +0 -0
  498. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_self_upgrade_detection.py +0 -0
  499. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_self_upgrade_execution.py +0 -0
  500. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_self_upgrade_guidance.py +0 -0
  501. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_self_upgrade_verification.py +0 -0
  502. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_setup_plan_feature_json.py +0 -0
  503. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_setup_plan_no_overwrite.py +0 -0
  504. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_shared_infra_integrity.py +0 -0
  505. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_skill_placeholder_py.py +0 -0
  506. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_specify_template_numbering.py +0 -0
  507. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_timestamp_branches.py +0 -0
  508. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_upgrade.py +0 -0
  509. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_utils.py +0 -0
  510. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_utils_assets_imports.py +0 -0
  511. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_version_imports.py +0 -0
  512. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/test_workflow_run_without_project.py +0 -0
  513. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundle_download_url.py +0 -0
  514. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_adapters.py +0 -0
  515. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_catalog_config.py +0 -0
  516. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_conflict.py +0 -0
  517. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_packager.py +0 -0
  518. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_primitives.py +0 -0
  519. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_records.py +0 -0
  520. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_references.py +0 -0
  521. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_resolver.py +0 -0
  522. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_validator.py +0 -0
  523. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_versioning.py +0 -0
  524. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/unit/test_bundler_yamlio.py +0 -0
  525. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/conftest.py +0 -0
  526. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_overlay_commands.py +0 -0
  527. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_overlay_composer.py +0 -0
  528. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_overlay_layer_sources.py +0 -0
  529. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_overlay_merge.py +0 -0
  530. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_overlay_security.py +0 -0
  531. {specify_cli-0.16.0 → specify_cli-0.16.2}/tests/workflows/test_resolver_integration.py +0 -0
  532. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/ARCHITECTURE.md +0 -0
  533. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/PUBLISHING.md +0 -0
  534. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/README.md +0 -0
  535. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/catalog.community.json +0 -0
  536. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/catalog.json +0 -0
  537. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/speckit/workflow.yml +0 -0
  538. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/step-catalog.community.json +0 -0
  539. {specify_cli-0.16.0 → specify_cli-0.16.2}/workflows/step-catalog.json +0 -0
@@ -8,7 +8,7 @@ body:
8
8
  value: |
9
9
  Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
10
10
 
11
- **Currently supported agents**: Alquimia AI, Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Factory Droid, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
11
+ **Currently supported agents**: Alquimia AI, Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Command Code, Cursor, Devin for Terminal, Factory Droid, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
12
12
 
13
13
  - type: input
14
14
  id: agent-name
@@ -70,6 +70,7 @@ body:
70
70
  - Cline
71
71
  - CodeBuddy
72
72
  - Codex CLI
73
+ - Command Code
73
74
  - Cursor
74
75
  - Devin for Terminal
75
76
  - Factory Droid
@@ -64,6 +64,7 @@ body:
64
64
  - Cline
65
65
  - CodeBuddy
66
66
  - Codex CLI
67
+ - Command Code
67
68
  - Cursor
68
69
  - Devin for Terminal
69
70
  - Factory Droid
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "entries": {
3
- "actions/checkout@v6.0.3": {
3
+ "actions/checkout@v7.0.1": {
4
4
  "repo": "actions/checkout",
5
- "version": "v6.0.3",
6
- "sha": "df4cb1c069e1874edd31b4311f1884172cec0e10"
5
+ "version": "v7.0.1",
6
+ "sha": "3d3c42e5aac5ba805825da76410c181273ba90b1"
7
7
  },
8
8
  "actions/download-artifact@v8.0.1": {
9
9
  "repo": "actions/download-artifact",
@@ -15,10 +15,20 @@
15
15
  "version": "v9.0.0",
16
16
  "sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
17
17
  },
18
- "actions/setup-node@v6.4.0": {
18
+ "actions/setup-node@v7.0.0": {
19
19
  "repo": "actions/setup-node",
20
- "version": "v6.4.0",
21
- "sha": "48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e"
20
+ "version": "v7.0.0",
21
+ "sha": "820762786026740c76f36085b0efc47a31fe5020"
22
+ },
23
+ "actions/setup-python@v7.0.0": {
24
+ "repo": "actions/setup-python",
25
+ "version": "v7.0.0",
26
+ "sha": "5fda3b95a4ea91299a34e894583c3862153e4b97"
27
+ },
28
+ "astral-sh/setup-uv@v9.0.0": {
29
+ "repo": "astral-sh/setup-uv",
30
+ "version": "v9.0.0",
31
+ "sha": "c771a70e6277c0a99b617c7a806ffedaca235ff9"
22
32
  },
23
33
  "actions/upload-artifact@v7.0.1": {
24
34
  "repo": "actions/upload-artifact",
@@ -1,5 +1,5 @@
1
1
  # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"c64e3dc29aca89e48108bb6d4eb877f6264b4cec9cd56dcd36827893802d2a64","body_hash":"cade22e5083254b735200f4ff7d686104e4ccab848ff7355141b9689354834db","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
- # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
2
+ # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
3
3
  # This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
4
4
  #
5
5
  # ___ _ _
@@ -1,5 +1,5 @@
1
1
  # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"687ea37b376b3b918331c13fce6cdbf5b9898bab8e514ca57b662b92b6d3cd2c","body_hash":"83b7e917f475d6ddf32f17e7da09dd4097a01dddbcbbf8eeec673912285de8b2","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
- # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
2
+ # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
3
3
  # This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
4
4
  #
5
5
  # ___ _ _
@@ -1,5 +1,5 @@
1
1
  # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"b4ba1db5fdec754fa825cc3160879924118bc454a781eed70ef6c90beab83a95","body_hash":"cb6c19088fa13da0a8320c174e8c14c4887d2c8a005a5cb2d2d2faa3f890de39","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
- # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
2
+ # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
3
3
  # This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
4
4
  #
5
5
  # ___ _ _
@@ -1,5 +1,5 @@
1
1
  # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"00c226f69fb7ec2b63755304328cee6ecddbcedbe4a9840310e5f430bd3949f0","body_hash":"44428ecd81ba0e5ed7bb16436052e6cc3479fe4ad02414812e574d17830a464e","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
- # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
2
+ # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
3
3
  # This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
4
4
  #
5
5
  # ___ _ _
@@ -1,5 +1,5 @@
1
1
  # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"aafdb01f262d603577971994522575829802b93d9042d62446313955485df558","body_hash":"4596de2b7de95c7c73c05caedc5c1e97724b39d09d21e9b0dbfc8b570312798a","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
- # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
2
+ # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
3
3
  # This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
4
4
  #
5
5
  # ___ _ _
@@ -1,5 +1,5 @@
1
- # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"ed734f6b123dcce3257c147be573cae4eaa6383018b65759a0e8d74049a38d95","body_hash":"5aa25f2a19d30f31a71fb4fa9c709563d3d2c5060b2984f4ba913b7097158763","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
- # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
1
+ # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"aa190ac1bd31b2e5e68cafd25951bda4d92a275ce1c55f58856f924e415fdb17","body_hash":"5aa25f2a19d30f31a71fb4fa9c709563d3d2c5060b2984f4ba913b7097158763","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
2
+ # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/setup-python","sha":"5fda3b95a4ea91299a34e894583c3862153e4b97","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"astral-sh/setup-uv","sha":"c771a70e6277c0a99b617c7a806ffedaca235ff9","version":"v9.0.0"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
3
3
  # This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
4
4
  #
5
5
  # ___ _ _
@@ -36,7 +36,9 @@
36
36
  # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
37
37
  # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
38
38
  # - actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
39
+ # - actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
39
40
  # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
41
+ # - astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
40
42
  # - github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
41
43
  #
42
44
  # Container images used:
@@ -123,7 +125,7 @@ jobs:
123
125
  GH_AW_INFO_EXPERIMENTAL: "false"
124
126
  GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true"
125
127
  GH_AW_INFO_STAGED: "false"
126
- GH_AW_INFO_ALLOWED_DOMAINS: '["defaults"]'
128
+ GH_AW_INFO_ALLOWED_DOMAINS: '["defaults","pypi.org","files.pythonhosted.org"]'
127
129
  GH_AW_INFO_FIREWALL_ENABLED: "true"
128
130
  GH_AW_INFO_AWF_VERSION: "v0.27.2"
129
131
  GH_AW_INFO_AWMG_VERSION: ""
@@ -208,7 +210,7 @@ jobs:
208
210
  id: sanitized
209
211
  uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
210
212
  env:
211
- GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
213
+ GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,files.pythonhosted.org,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,pypi.org,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
212
214
  with:
213
215
  script: |
214
216
  const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
@@ -435,12 +437,21 @@ jobs:
435
437
  with:
436
438
  persist-credentials: false
437
439
  fetch-depth: 0
440
+ - name: Setup uv
441
+ uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
438
442
  - name: Create gh-aw temp directory
439
443
  run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh"
440
444
  - name: Configure gh CLI for GitHub Enterprise
441
445
  run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_gh_for_ghe.sh"
442
446
  env:
443
447
  GH_TOKEN: ${{ github.token }}
448
+ - name: Set up Python
449
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
450
+ with:
451
+ python-version: "3.14"
452
+ - name: Install Python test dependencies
453
+ run: uv pip install --system -e ".[test]"
454
+
444
455
  - name: Configure Git credentials
445
456
  env:
446
457
  REPO_NAME: ${{ github.repository }}
@@ -848,7 +859,7 @@ jobs:
848
859
  export COPILOT_API_KEY="$COPILOT_DUMMY_BYOK"
849
860
  (umask 177 && touch /tmp/gh-aw/agent-stdio.log)
850
861
  GH_AW_MAX_AI_CREDITS="${{ vars.GH_AW_DEFAULT_MAX_AI_CREDITS || '1000' }}"
851
- printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.2/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"api.snapcraft.io\",\"archive.ubuntu.com\",\"azure.archive.ubuntu.com\",\"crl.geotrust.com\",\"crl.globalsign.com\",\"crl.identrust.com\",\"crl.sectigo.com\",\"crl.thawte.com\",\"crl.usertrust.com\",\"crl.verisign.com\",\"crl3.digicert.com\",\"crl4.digicert.com\",\"crls.ssl.com\",\"github.com\",\"host.docker.internal\",\"json-schema.org\",\"json.schemastore.org\",\"keyserver.ubuntu.com\",\"ocsp.digicert.com\",\"ocsp.geotrust.com\",\"ocsp.globalsign.com\",\"ocsp.identrust.com\",\"ocsp.sectigo.com\",\"ocsp.ssl.com\",\"ocsp.thawte.com\",\"ocsp.usertrust.com\",\"ocsp.verisign.com\",\"packagecloud.io\",\"packages.cloud.google.com\",\"packages.microsoft.com\",\"ppa.launchpad.net\",\"raw.githubusercontent.com\",\"registry.npmjs.org\",\"s.symcb.com\",\"s.symcd.com\",\"security.ubuntu.com\",\"telemetry.enterprise.githubcopilot.com\",\"ts-crl.ws.symantec.com\",\"ts-ocsp.ws.symantec.com\",\"www.googleapis.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"models\":{\"agent\":[\"sonnet-6x\",\"gpt-5.4\",\"gpt-5.3\",\"gemini-pro\",\"any\"],\"antigravity\":[\"copilot/antigravity*\",\"google/antigravity*\",\"gemini/antigravity*\"],\"any\":[\"copilot/*\",\"anthropic/*\",\"openai/*\",\"google/*\",\"gemini/*\"],\"claude\":[\"agent\"],\"codex\":[\"agent\"],\"coding\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\",\"gpt-5-codex\"],\"computer-use\":[\"copilot/*computer-use*\",\"google/*computer-use*\",\"gemini/*computer-use*\",\"openai/*computer-use*\"],\"copilot\":[\"agent\"],\"deep-research\":[\"copilot/deep-research*\",\"copilot/o3-deep-research*\",\"copilot/o4-mini-deep-research*\",\"google/deep-research*\",\"gemini/deep-research*\",\"openai/o3-deep-research*\",\"openai/o4-mini-deep-research*\"],\"gemini\":[\"agent\"],\"gemini-3-flash\":[\"copilot/gemini-3*flash*\",\"google/gemini-3*flash*\",\"gemini/gemini-3*flash*\"],\"gemini-3-pro\":[\"copilot/gemini-3*pro*\",\"google/gemini-3*pro*\",\"google/nano-banana*\",\"gemini/gemini-3*pro*\"],\"gemini-3.1-flash\":[\"copilot/gemini-3.1*flash*\",\"google/gemini-3.1*flash*\",\"gemini/gemini-3.1*flash*\"],\"gemini-3.1-pro\":[\"copilot/gemini-3.1*pro*\",\"google/gemini-3.1*pro*\",\"gemini/gemini-3.1*pro*\"],\"gemini-3.5-flash\":[\"copilot/gemini-3.5*flash*\",\"google/gemini-3.5*flash*\",\"gemini/gemini-3.5*flash*\"],\"gemini-flash\":[\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"],\"gemini-flash-lite\":[\"copilot/gemini-*flash*lite*\",\"google/gemini-*flash*lite*\",\"gemini/gemini-*flash*lite*\"],\"gemini-pro\":[\"copilot/gemini-*pro*\",\"google/gemini-*pro*\",\"gemini/gemini-*pro*\"],\"gemma\":[\"copilot/gemma*\",\"google/gemma*\",\"gemini/gemma*\"],\"gpt-5\":[\"copilot/gpt-5*\",\"openai/gpt-5*\"],\"gpt-5-codex\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\"],\"gpt-5-mini\":[\"copilot/gpt-5*mini*\",\"openai/gpt-5*mini*\"],\"gpt-5-nano\":[\"copilot/gpt-5*nano*\",\"openai/gpt-5*nano*\"],\"gpt-5-pro\":[\"copilot/gpt-5*pro*\",\"openai/gpt-5*pro*\"],\"gpt-5.2\":[\"copilot/gpt-5.2*\",\"openai/gpt-5.2*\"],\"gpt-5.3\":[\"copilot/gpt-5.3*\",\"openai/gpt-5.3*\"],\"gpt-5.4\":[\"copilot/gpt-5.4*\",\"openai/gpt-5.4*\"],\"gpt-5.5\":[\"copilot/gpt-5.5*\",\"openai/gpt-5.5*\"],\"haiku\":[\"copilot/*haiku*\",\"anthropic/*haiku*\"],\"large\":[\"sonnet\",\"gpt-5-pro\",\"gpt-5\",\"gemini-pro\"],\"mai-code\":[\"copilot/MAI-Code*\",\"copilot/mai-code*\",\"openai/MAI-Code*\"],\"mini\":[\"haiku\",\"gpt-5-mini\",\"gpt-5-nano\",\"gemini-flash-lite\"],\"nano-banana\":[\"copilot/nano-banana*\",\"google/nano-banana*\",\"gemini/nano-banana*\"],\"opus\":[\"copilot/*opus*\",\"anthropic/*opus*\"],\"opusplan\":[\"opus?effort=high\"],\"reasoning\":[\"copilot/o1*\",\"copilot/o3*\",\"copilot/o4*\",\"openai/o1*\",\"openai/o3*\",\"openai/o4*\"],\"robotics\":[\"copilot/*robotics*\",\"google/*robotics*\",\"gemini/*robotics*\"],\"small\":[\"mini\"],\"small-agent\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash\"],\"sonnet\":[\"copilot/*sonnet*\",\"anthropic/*sonnet*\"],\"sonnet-6x\":[\"copilot/*sonnet-4.5*\",\"copilot/*sonnet-4.6*\",\"copilot/*sonnet-4-5-*\",\"anthropic/*sonnet-4-5-*\",\"copilot/*sonnet-4-6*\",\"anthropic/*sonnet-4-6*\"],\"summarization\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash-lite\",\"mini\"],\"vision\":[\"copilot/gemini-*image*\",\"gemini/gemini-*image*\",\"copilot/gemini-*flash*\",\"gemini/gemini-*flash*\"]}},\"container\":{\"imageTag\":\"0.27.2,squid=sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591,agent=sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6,api-proxy=sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4,cli-proxy=sha256:02f3ec08f32dc26c5427920c6a2e2f3036238fce44802f2f11ef49ed8621b5d0\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
862
+ printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.2/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"api.snapcraft.io\",\"archive.ubuntu.com\",\"azure.archive.ubuntu.com\",\"crl.geotrust.com\",\"crl.globalsign.com\",\"crl.identrust.com\",\"crl.sectigo.com\",\"crl.thawte.com\",\"crl.usertrust.com\",\"crl.verisign.com\",\"crl3.digicert.com\",\"crl4.digicert.com\",\"crls.ssl.com\",\"files.pythonhosted.org\",\"github.com\",\"host.docker.internal\",\"json-schema.org\",\"json.schemastore.org\",\"keyserver.ubuntu.com\",\"ocsp.digicert.com\",\"ocsp.geotrust.com\",\"ocsp.globalsign.com\",\"ocsp.identrust.com\",\"ocsp.sectigo.com\",\"ocsp.ssl.com\",\"ocsp.thawte.com\",\"ocsp.usertrust.com\",\"ocsp.verisign.com\",\"packagecloud.io\",\"packages.cloud.google.com\",\"packages.microsoft.com\",\"ppa.launchpad.net\",\"pypi.org\",\"raw.githubusercontent.com\",\"registry.npmjs.org\",\"s.symcb.com\",\"s.symcd.com\",\"security.ubuntu.com\",\"telemetry.enterprise.githubcopilot.com\",\"ts-crl.ws.symantec.com\",\"ts-ocsp.ws.symantec.com\",\"www.googleapis.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"models\":{\"agent\":[\"sonnet-6x\",\"gpt-5.4\",\"gpt-5.3\",\"gemini-pro\",\"any\"],\"antigravity\":[\"copilot/antigravity*\",\"google/antigravity*\",\"gemini/antigravity*\"],\"any\":[\"copilot/*\",\"anthropic/*\",\"openai/*\",\"google/*\",\"gemini/*\"],\"claude\":[\"agent\"],\"codex\":[\"agent\"],\"coding\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\",\"gpt-5-codex\"],\"computer-use\":[\"copilot/*computer-use*\",\"google/*computer-use*\",\"gemini/*computer-use*\",\"openai/*computer-use*\"],\"copilot\":[\"agent\"],\"deep-research\":[\"copilot/deep-research*\",\"copilot/o3-deep-research*\",\"copilot/o4-mini-deep-research*\",\"google/deep-research*\",\"gemini/deep-research*\",\"openai/o3-deep-research*\",\"openai/o4-mini-deep-research*\"],\"gemini\":[\"agent\"],\"gemini-3-flash\":[\"copilot/gemini-3*flash*\",\"google/gemini-3*flash*\",\"gemini/gemini-3*flash*\"],\"gemini-3-pro\":[\"copilot/gemini-3*pro*\",\"google/gemini-3*pro*\",\"google/nano-banana*\",\"gemini/gemini-3*pro*\"],\"gemini-3.1-flash\":[\"copilot/gemini-3.1*flash*\",\"google/gemini-3.1*flash*\",\"gemini/gemini-3.1*flash*\"],\"gemini-3.1-pro\":[\"copilot/gemini-3.1*pro*\",\"google/gemini-3.1*pro*\",\"gemini/gemini-3.1*pro*\"],\"gemini-3.5-flash\":[\"copilot/gemini-3.5*flash*\",\"google/gemini-3.5*flash*\",\"gemini/gemini-3.5*flash*\"],\"gemini-flash\":[\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"],\"gemini-flash-lite\":[\"copilot/gemini-*flash*lite*\",\"google/gemini-*flash*lite*\",\"gemini/gemini-*flash*lite*\"],\"gemini-pro\":[\"copilot/gemini-*pro*\",\"google/gemini-*pro*\",\"gemini/gemini-*pro*\"],\"gemma\":[\"copilot/gemma*\",\"google/gemma*\",\"gemini/gemma*\"],\"gpt-5\":[\"copilot/gpt-5*\",\"openai/gpt-5*\"],\"gpt-5-codex\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\"],\"gpt-5-mini\":[\"copilot/gpt-5*mini*\",\"openai/gpt-5*mini*\"],\"gpt-5-nano\":[\"copilot/gpt-5*nano*\",\"openai/gpt-5*nano*\"],\"gpt-5-pro\":[\"copilot/gpt-5*pro*\",\"openai/gpt-5*pro*\"],\"gpt-5.2\":[\"copilot/gpt-5.2*\",\"openai/gpt-5.2*\"],\"gpt-5.3\":[\"copilot/gpt-5.3*\",\"openai/gpt-5.3*\"],\"gpt-5.4\":[\"copilot/gpt-5.4*\",\"openai/gpt-5.4*\"],\"gpt-5.5\":[\"copilot/gpt-5.5*\",\"openai/gpt-5.5*\"],\"haiku\":[\"copilot/*haiku*\",\"anthropic/*haiku*\"],\"large\":[\"sonnet\",\"gpt-5-pro\",\"gpt-5\",\"gemini-pro\"],\"mai-code\":[\"copilot/MAI-Code*\",\"copilot/mai-code*\",\"openai/MAI-Code*\"],\"mini\":[\"haiku\",\"gpt-5-mini\",\"gpt-5-nano\",\"gemini-flash-lite\"],\"nano-banana\":[\"copilot/nano-banana*\",\"google/nano-banana*\",\"gemini/nano-banana*\"],\"opus\":[\"copilot/*opus*\",\"anthropic/*opus*\"],\"opusplan\":[\"opus?effort=high\"],\"reasoning\":[\"copilot/o1*\",\"copilot/o3*\",\"copilot/o4*\",\"openai/o1*\",\"openai/o3*\",\"openai/o4*\"],\"robotics\":[\"copilot/*robotics*\",\"google/*robotics*\",\"gemini/*robotics*\"],\"small\":[\"mini\"],\"small-agent\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash\"],\"sonnet\":[\"copilot/*sonnet*\",\"anthropic/*sonnet*\"],\"sonnet-6x\":[\"copilot/*sonnet-4.5*\",\"copilot/*sonnet-4.6*\",\"copilot/*sonnet-4-5-*\",\"anthropic/*sonnet-4-5-*\",\"copilot/*sonnet-4-6*\",\"anthropic/*sonnet-4-6*\"],\"summarization\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash-lite\",\"mini\"],\"vision\":[\"copilot/gemini-*image*\",\"gemini/gemini-*image*\",\"copilot/gemini-*flash*\",\"gemini/gemini-*flash*\"]}},\"container\":{\"imageTag\":\"0.27.2,squid=sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591,agent=sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6,api-proxy=sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4,cli-proxy=sha256:02f3ec08f32dc26c5427920c6a2e2f3036238fce44802f2f11ef49ed8621b5d0\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
852
863
  cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
853
864
  export GH_AW_MODELS_JSON_PATH="/tmp/gh-aw/models.json"
854
865
  GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS=""
@@ -955,7 +966,7 @@ jobs:
955
966
  uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
956
967
  env:
957
968
  GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
958
- GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
969
+ GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,files.pythonhosted.org,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,pypi.org,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
959
970
  GITHUB_SERVER_URL: ${{ github.server_url }}
960
971
  GITHUB_API_URL: ${{ github.api_url }}
961
972
  with:
@@ -1621,7 +1632,7 @@ jobs:
1621
1632
  env:
1622
1633
  GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
1623
1634
  GH_AW_COMMENT_ID: ${{ needs.activation.outputs.comment_id }}
1624
- GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
1635
+ GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,files.pythonhosted.org,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,pypi.org,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
1625
1636
  GITHUB_SERVER_URL: ${{ github.server_url }}
1626
1637
  GITHUB_API_URL: ${{ github.api_url }}
1627
1638
  GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"max\":1},\"add_labels\":{\"allowed\":[\"tests-passing\",\"tests-failing\",\"tests-inconclusive\"],\"max\":1},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"false\"},\"report_incomplete\":{}}"
@@ -60,6 +60,22 @@ permissions:
60
60
  checkout:
61
61
  fetch-depth: 0
62
62
 
63
+ network:
64
+ allowed:
65
+ - defaults
66
+ - pypi.org
67
+ - files.pythonhosted.org
68
+
69
+ steps:
70
+ - name: Setup uv
71
+ uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
72
+ - name: Set up Python
73
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
74
+ with:
75
+ python-version: "3.14"
76
+ - name: Install Python test dependencies
77
+ run: uv pip install --system -e ".[test]"
78
+
63
79
  safe-outputs:
64
80
  noop:
65
81
  report-as-issue: false
@@ -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@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4
25
+ uses: github/codeql-action/init@d1ba80a13dd99fba24a470575428917156a28b43 # v4
26
26
  with:
27
27
  languages: ${{ matrix.language }}
28
28
 
29
29
  - name: Perform CodeQL Analysis
30
- uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4
30
+ uses: github/codeql-action/analyze@d1ba80a13dd99fba24a470575428917156a28b43 # v4
31
31
  with:
32
32
  category: "/language:${{ matrix.language }}"
@@ -37,7 +37,7 @@ jobs:
37
37
  fi
38
38
 
39
39
  - name: Run markdownlint-cli2
40
- uses: DavidAnson/markdownlint-cli2-action@6bf21b07787794f89a243495939cd651942aeabe # v24.1.0
40
+ uses: DavidAnson/markdownlint-cli2-action@21c1be1b93ad9ed58fa840aacc3f279cde2a72ff # v24.2.0
41
41
  with:
42
42
  globs: |
43
43
  '**/*.md'
@@ -2,6 +2,57 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [0.16.2] - 2026-08-10
6
+
7
+ ### Changed
8
+
9
+ - Add Command Code integration to spec-kit (#4019)
10
+ - fix(workflows): strip a resolved condition before the true/false check (#3883)
11
+ - fix(workflows): guard a non-string overlay edit 'operation' (#3881)
12
+ - fix: bound response read in integration catalog fetch (#3818)
13
+ - Fix bug-test Python dependency provisioning (#4030)
14
+ - fix(bundle): escape Rich markup in bundle CLI error and status output (#4023)
15
+ - fix(presets): skip an unreadable restore source in `preset remove` (#4020)
16
+ - Add Keel Discovery extension to community catalog (#4035)
17
+ - fix: show error details in preset catalog config read failure (#3840)
18
+ - Update Reconcile Extension to v1.1.0 (#4034)
19
+ - Add Model Routing Governance preset to community catalog (#4033)
20
+ - fix: use missing_ok=True in integration JSON removal (#3846)
21
+ - fix: use missing_ok=True in extension cache clear (#3845)
22
+ - fix(extensions): reject duplicate provides.templates/scripts names (#4016)
23
+ - feat(presets): resolve constitution templates at command time (#3984)
24
+ - [bug-fix] Fix preset-wrap-drops-argument-hint: inherit argument-hint from core template (#3996)
25
+ - docs: document installing specify-cli from a custom package index (#4032)
26
+ - feat(extensions): accept provides.templates and provides.scripts in manifest (#4012)
27
+ - fix(presets): treat an unreadable core template as missing (#3961)
28
+ - chore: release 0.16.1, begin 0.16.2.dev0 development (#4014)
29
+
30
+ ## [0.16.1] - 2026-08-07
31
+
32
+ ### Changed
33
+
34
+ - fix(integrations): wrap a non-UTF-8 catalog response (#4011)
35
+ - fix(events): skip an unreadable command template (#3956)
36
+ - fix(bundle): wrap malformed YAML in a local .zip bundle manifest (#4013)
37
+ - chore(deps): bump github/codeql-action/analyze from 4.37.3 to 4.37.5 (#4005)
38
+ - chore(deps): bump DavidAnson/markdownlint-cli2-action (#4006)
39
+ - fix(agent-context): recurse for nested plans in Python mtime fallback (#3757)
40
+ - fix: add utf-8 encoding to extension and preset registry file I/O (#3834)
41
+ - fix(init): escape user-supplied values in `specify init` output (#3787)
42
+ - fix: bound response read in integration catalog fetch (#3812)
43
+ - fix: use missing_ok for temp file cleanup to avoid masking errors (#3803)
44
+ - fix(workflows): handle an unreadable run state in `workflow status` (#3999)
45
+ - feat(init): scaffold managed .specify/.gitignore (#4000)
46
+ - fix(scripts): stop check-prerequisites text mode crashing on a legacy stdout code page (#3890)
47
+ - fix(presets): return None for an unreadable layer in resolve_content (#3959)
48
+ - fix(extensions): start fresh on a non-UTF-8 extension registry (#3998)
49
+ - Fix init-force-preset-desync: reapply presets/extensions on init --here --force (#3995)
50
+ - fix(skills): apply the line-anchored delimiter scan to hermes and kimi (#3739)
51
+ - fix(archives): wrap the bare EOFError a truncated tar.gz raises (#3938)
52
+ - test(integrations): guard multiline/control-char SKILL.md frontmatter escaping (#3392)
53
+ - fix(scripts): stop setup-tasks text mode crashing on a legacy code page (#3892)
54
+ - chore: release 0.16.0, begin 0.16.1.dev0 development (#3992)
55
+
5
56
  ## [0.16.0] - 2026-08-05
6
57
 
7
58
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specify-cli
3
- Version: 0.16.0
3
+ Version: 0.16.2
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
@@ -110,7 +110,7 @@ Bare `specify self upgrade` executes immediately, matching the no-prompt behavio
110
110
 
111
111
  ### 3. Establish project principles
112
112
 
113
- Launch your coding agent in the project directory. Most agents expose spec-kit as `/speckit.*` slash commands; Codex CLI in skills mode uses `$speckit-*` instead; GitHub Copilot CLI uses `/agents` to select the agent or address it directly in a prompt.
113
+ Launch your coding agent in the project directory. Most agents expose spec-kit as `/speckit.*` slash commands; Codex CLI and Command Code in skills mode use `$speckit-*` instead; GitHub Copilot CLI uses `/agents` to select the agent or address it directly in a prompt.
114
114
 
115
115
  Use the **`/speckit.constitution`** command to create your project's governing principles and development guidelines that will guide all subsequent development.
116
116
 
@@ -90,7 +90,7 @@ Bare `specify self upgrade` executes immediately, matching the no-prompt behavio
90
90
 
91
91
  ### 3. Establish project principles
92
92
 
93
- Launch your coding agent in the project directory. Most agents expose spec-kit as `/speckit.*` slash commands; Codex CLI in skills mode uses `$speckit-*` instead; GitHub Copilot CLI uses `/agents` to select the agent or address it directly in a prompt.
93
+ Launch your coding agent in the project directory. Most agents expose spec-kit as `/speckit.*` slash commands; Codex CLI and Command Code in skills mode use `$speckit-*` instead; GitHub Copilot CLI uses `/agents` to select the agent or address it directly in a prompt.
94
94
 
95
95
  Use the **`/speckit.constitution`** command to create your project's governing principles and development guidelines that will guide all subsequent development.
96
96
 
@@ -72,6 +72,7 @@ The following community-contributed extensions are available in [`catalog.commun
72
72
  | Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building | `docs` | Read+Write | [spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate) |
73
73
  | Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | `integration` | Read+Write | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
74
74
  | Jira Integration (Sync Engine) | Idempotent, drift-aware, fail-closed reconcile engine mirroring spec-kit specs into Jira (Epic per repo, Story per spec, Subtask per phase) | `integration` | Read+Write | [spec-kit-jira-sync](https://github.com/ashbrener/spec-kit-jira-sync) |
75
+ | Keel Discovery | A Spec Kit extension that puts customer evidence upstream of /speckit.specify, and audits what you shipped against it afterwards | `process` | Read+Write | [spec-kit-keel](https://github.com/keeldiscovery/spec-kit-keel) |
75
76
  | Learning Extension | Generate educational guides from implementations and enhance clarifications with mentoring context | `docs` | Read+Write | [spec-kit-learn](https://github.com/imviancagrace/spec-kit-learn) |
76
77
  | Linear Integration | Mirror spec-kit feature directories into Linear (filesystem → Linear, reconcile-based, unidirectional). | `integration` | Read+Write | [spec-kit-linear-sync](https://github.com/ashbrener/spec-kit-linear-sync) |
77
78
  | Linear Weave | Weave Spec Kit into Linear: pull requirements, mirror tasks.md into sub-issues, sync statuses | `integration` | Read+Write | [spec-kit-linear-weave](https://github.com/tonydwoodhouse/spec-kit-linear-weave) |
@@ -25,6 +25,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
25
25
  | iSAQB Architecture Governance | Adds iSAQB/CPSA-F and arc42 architecture governance with audit-ready evidence for goals, views, resumability, partial-failure scenarios, ADRs, risks, and technical debt. | 13 templates, 3 commands | — | [spec-kit-preset-isaqb-architecture-governance](https://github.com/hindermath/spec-kit-preset-isaqb-architecture-governance) |
26
26
  | Jira Issue Tracking | Overrides `speckit.taskstoissues` to create Jira epics, stories, and tasks instead of GitHub Issues via Atlassian MCP tools | 1 command | — | [spec-kit-preset-jira](https://github.com/luno/spec-kit-preset-jira) |
27
27
  | Model Driven Engineering | Focuses on streamlined commands, app repository support, cross-spec support, and capability-aware project memory for model-driven engineering workflows | 6 templates, 11 commands | MDE extension | [spec-kit-preset-mde](https://github.com/AI-MDE/spec-kit-preset-mde) |
28
+ | Model Routing Governance | Maps provider-neutral Spec Kit roles to validated harness-local runner profiles without storing model availability, credentials, or machine-specific selections in Git. | 4 templates, 2 commands, 2 scripts | — | [spec-kit-preset-model-routing-governance](https://github.com/hindermath/spec-kit-preset-model-routing-governance) |
28
29
  | Multi-Repo Branching | Coordinates feature branch creation across multiple git repositories (independent repos and submodules) during plan and tasks phases | 2 commands | — | [spec-kit-preset-multi-repo-branching](https://github.com/sakitA/spec-kit-preset-multi-repo-branching) |
29
30
  | Parallel Autonomous Run Governance | Coordinates permission-bounded autonomous campaigns while preserving the project's learner and accessibility contract across workers and consolidation. | 9 templates, 5 commands, 2 scripts | autonomous-run-governance >=0.2.2; optional: intake-review-governance >=0.1.0 | [spec-kit-preset-parallel-autonomous-run-governance](https://github.com/hindermath/spec-kit-preset-parallel-autonomous-run-governance) |
30
31
  | Pirate Speak (Full) | Transforms all Spec Kit output into pirate speak — specs become "Voyage Manifests", plans become "Battle Plans", tasks become "Crew Assignments" | 6 templates, 9 commands | — | [spec-kit-presets](https://github.com/mnriem/spec-kit-presets) |
@@ -35,6 +35,27 @@ pipx install specify-cli==0.12.11
35
35
  pip install specify-cli==0.12.11
36
36
  ```
37
37
 
38
+ ## Install from a custom or private package index
39
+
40
+ Some environments (corporate networks, mirrors, proxies, or artifact feeds) require installing `specify-cli` from a package index other than the default public PyPI. Each Python tool exposes a way to point at a different index — configure it before running the install commands above. Substitute your own index URL for the placeholder shown here.
41
+
42
+ ```bash
43
+ # uv — via environment variable (applies to the whole command)
44
+ UV_DEFAULT_INDEX=https://your-index.example.com/pypi/simple/ uv tool install specify-cli
45
+
46
+ # uv — via flag
47
+ uv tool install --default-index https://your-index.example.com/pypi/simple/ specify-cli
48
+
49
+ # pipx — pass a pip argument through
50
+ pipx install specify-cli --index-url https://your-index.example.com/pypi/simple/
51
+
52
+ # pip
53
+ pip install specify-cli --index-url https://your-index.example.com/pypi/simple/
54
+ ```
55
+
56
+ > [!NOTE]
57
+ > The same index configuration applies to pinned installs, upgrades (`--force`/`--upgrade`), and one-time usage — set the environment variable or flag on those commands too. If your index requires authentication, follow your tool's documentation and prefer credential environment variables, keyring, or netrc; do not embed secrets in command-line URLs because they can leak through shell history, process listings, or logs. Avoid committing secrets. For fully offline installs, see the [air-gapped installation guide](air-gapped.md).
58
+
38
59
  ## Verify
39
60
 
40
61
  ```bash
@@ -50,7 +50,7 @@ pipx install specify-cli
50
50
  pip install specify-cli
51
51
  ```
52
52
 
53
- To install a specific release, pin the version — for example `uv tool install specify-cli==0.12.11`. See the [PyPI installation guide](install/pypi.md) for details, including how to upgrade.
53
+ To install a specific release, pin the version — for example `uv tool install specify-cli==0.12.11`. See the [PyPI installation guide](install/pypi.md) for details, including how to upgrade and how to [install from a custom or private package index](install/pypi.md#install-from-a-custom-or-private-package-index).
54
54
 
55
55
  ### One-time Usage
56
56
 
@@ -57,6 +57,8 @@ specify init my-project --integration copilot --preset compliance
57
57
 
58
58
  > **Two resolution axes.** `SPECIFY_INIT_DIR` selects the **project** (which directory contains `.specify/`); `SPECIFY_FEATURE_DIRECTORY` / `.specify/feature.json` select the **feature** within that project. They are independent — project first, then feature.
59
59
 
60
+ > **Version control.** `specify init` scaffolds a managed `.specify/.gitignore` that excludes machine-local state — `feature.json` (the current-feature pointer, rewritten on every feature switch) and per-machine extension `extensions/*/local-config.yml` overrides — while leaving everything else under `.specify/` (constitution, templates, scripts, extension config) shareable so teams stay aligned. Like the rest of `.specify/`'s shared scripts and templates, the file is tracked in the shared-infrastructure manifest: your edits are preserved on re-init and `specify init --here --force` restores the managed content. It is intentionally left in place by `specify integration uninstall`, which only removes the uninstalled agent's own files.
61
+
60
62
  > **Symlinked project roots.** `SPECIFY_INIT_DIR` relocates *where* the project is, not *how* a command treats symlinks: each command keeps its existing cwd-path stance. Commands that traverse and write project files through broad input paths (`bundle`, `workflow run <file>`) refuse a symlinked `.specify/` to preserve write confinement. Other project-scoped commands keep their existing behavior when `SPECIFY_INIT_DIR` points at a project root, which may include following a symlinked `.specify/`.
61
63
 
62
64
  ## Check Installed Tools
@@ -14,6 +14,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
14
14
  | [Cline](https://github.com/cline/cline) | `cline` | IDE-based agent |
15
15
  | [CodeBuddy CLI](https://www.codebuddy.cn/docs/cli/installation) | `codebuddy` | |
16
16
  | [Codex CLI](https://github.com/openai/codex) | `codex` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `$speckit-<command>` |
17
+ | [Command Code](https://commandcode.ai/docs) | `command-code` | Skills-based integration; installs skills into `.commandcode/skills/` and invokes them as `$speckit-<command>` |
17
18
  | [Cursor](https://cursor.sh/) | `cursor-agent` | |
18
19
  | [Devin for Terminal](https://cli.devin.ai/docs) | `devin` | Skills-based integration; installs skills into `.devin/skills/` and invokes them as `/speckit-<command>` |
19
20
  | [Factory Droid](https://docs.factory.ai/cli/getting-started/overview) | `droid` | Skills-based integration; installs skills into `.factory/skills/` and invokes them as `/speckit-<command>` |
@@ -279,6 +280,7 @@ The currently declared multi-install safe integrations are:
279
280
  | `cline` | `.clinerules/workflows` |
280
281
  | `codebuddy` | `.codebuddy/commands` |
281
282
  | `codex` | `.agents/skills` |
283
+ | `command-code` | `.commandcode/skills` |
282
284
  | `cursor-agent` | `.cursor/skills` |
283
285
  | `droid` | `.factory/skills` |
284
286
  | `firebender` | `.firebender/commands` |
@@ -40,12 +40,25 @@ requires:
40
40
  required: boolean # Optional, default: false
41
41
 
42
42
  provides:
43
- commands: # Required, at least one command
43
+ commands: # At least one of commands/templates/scripts/hooks/events required
44
44
  - name: string # Required, pattern: ^speckit\.[a-z0-9-]+\.[a-z0-9-]+$
45
45
  file: string # Required, relative path to command file
46
46
  description: string # Required
47
47
  aliases: [string] # Optional, same pattern as name; namespace must match extension.id and must not shadow core or installed extension commands
48
48
 
49
+ templates: # Optional, array of declared templates. Always resolve
50
+ # as "replace" -- 'strategy' is not an authorable field here.
51
+ - name: string # Required, pattern: ^[a-z0-9-]+$
52
+ file: string # Required, relative path to template file
53
+ description: string # Optional
54
+
55
+ scripts: # Optional, array of declared scripts. Always resolve
56
+ # as "replace" -- 'strategy' is not an authorable field here.
57
+ - name: string # Required, pattern: ^[a-z0-9-]+$
58
+ file: string # Required, relative path to script file
59
+ description: string # Optional
60
+ runtimes: [string] # Optional, subset of: bash, powershell, python
61
+
49
62
  config: # Optional, array of config files
50
63
  - name: string # Config file name
51
64
  template: string # Template file path
@@ -111,6 +124,29 @@ defaults: # Optional, default configuration values
111
124
  - **Examples**: `speckit.jira.specstoissues`, `speckit.linear.sync`
112
125
  - **Invalid**: `jira.specstoissues`, `speckit.command`, `speckit.jira.CreateIssues`
113
126
 
127
+ #### `provides.templates[].name` / `provides.scripts[].name`
128
+
129
+ - **Type**: string
130
+ - **Pattern**: `^[a-z0-9-]+$`
131
+ - **Description**: Unlike commands, templates and scripts are not invoked by
132
+ name, so they use the same plain slug pattern as `extension.id` rather than
133
+ the namespaced command pattern.
134
+ - **Examples**: `myext-template`, `myext-collect`
135
+
136
+ #### `provides.templates[].strategy` / `provides.scripts[].strategy`
137
+
138
+ - Not an authorable field. Extension-contributed templates and scripts are
139
+ always resolved as `replace`; a manifest that includes a `strategy` key on
140
+ one of these entries is rejected with a `ValidationError`. Composable
141
+ strategies (`wrap`/`prepend`/`append`) are preset-only.
142
+
143
+ #### `provides.scripts[].runtimes`
144
+
145
+ - **Type**: array of strings
146
+ - **Values**: `bash`, `powershell`, `python`
147
+ - **Description**: Declares which runtimes the script supports. Purely
148
+ informational metadata — it is not used to select or invoke the script.
149
+
114
150
  #### `hooks`
115
151
 
116
152
  - **Type**: object
@@ -143,6 +179,8 @@ manifest.version # str: Version
143
179
  manifest.description # str: Description
144
180
  manifest.requires_speckit_version # str: Required spec-kit version
145
181
  manifest.commands # List[Dict]: Command definitions
182
+ manifest.templates # List[Dict]: Declared template definitions
183
+ manifest.scripts # List[Dict]: Declared script definitions
146
184
  manifest.hooks # Dict: Hook definitions
147
185
  ```
148
186