specify-cli 0.10.0__tar.gz → 0.10.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 (365) hide show
  1. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/skills/add-community-extension/SKILL.md +7 -2
  2. {specify_cli-0.10.0 → specify_cli-0.10.2}/CHANGELOG.md +29 -0
  3. {specify_cli-0.10.0 → specify_cli-0.10.2}/PKG-INFO +1 -1
  4. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/community/extensions.md +13 -6
  5. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/community/presets.md +1 -1
  6. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/concepts/sdd.md +5 -0
  7. specify_cli-0.10.2/docs/concepts/spec-persistence.md +107 -0
  8. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/integrations.md +21 -0
  9. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/toc.yml +2 -0
  10. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/catalog.community.json +365 -17
  11. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/extension.yml +8 -0
  12. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/catalog.community.json +6 -6
  13. {specify_cli-0.10.0 → specify_cli-0.10.2}/pyproject.toml +2 -2
  14. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/__init__.py +63 -8
  15. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_github_http.py +8 -45
  16. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/authentication/http.py +31 -6
  17. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/extensions.py +221 -37
  18. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integration_state.py +37 -8
  19. specify_cli-0.10.2/src/specify_cli/integration_status.py +663 -0
  20. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/_query_commands.py +84 -2
  21. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/manifest.py +22 -4
  22. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/presets.py +180 -38
  23. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/shared_infra.py +2 -0
  24. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_subcommand.py +885 -0
  25. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_authentication.py +29 -0
  26. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_extension_skills.py +129 -0
  27. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_extensions.py +482 -0
  28. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_github_http.py +1 -1
  29. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_presets.py +554 -2
  30. {specify_cli-0.10.0 → specify_cli-0.10.2}/.devcontainer/devcontainer.json +0 -0
  31. {specify_cli-0.10.0 → specify_cli-0.10.2}/.devcontainer/post-create.sh +0 -0
  32. {specify_cli-0.10.0 → specify_cli-0.10.2}/.editorconfig +0 -0
  33. {specify_cli-0.10.0 → specify_cli-0.10.2}/.gitattributes +0 -0
  34. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/CODEOWNERS +0 -0
  35. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
  36. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  37. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  38. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
  39. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  40. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
  41. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  42. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/aw/actions-lock.json +0 -0
  43. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/dependabot.yml +0 -0
  44. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/RELEASE-PROCESS.md +0 -0
  45. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/add-community-extension.lock.yml +0 -0
  46. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/add-community-extension.md +0 -0
  47. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/add-community-preset.lock.yml +0 -0
  48. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/add-community-preset.md +0 -0
  49. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/catalog-assign.yml +0 -0
  50. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/codeql.yml +0 -0
  51. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/docs.yml +0 -0
  52. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/lint.yml +0 -0
  53. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/release-trigger.yml +0 -0
  54. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/release.yml +0 -0
  55. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/stale.yml +0 -0
  56. {specify_cli-0.10.0 → specify_cli-0.10.2}/.github/workflows/test.yml +0 -0
  57. {specify_cli-0.10.0 → specify_cli-0.10.2}/.gitignore +0 -0
  58. {specify_cli-0.10.0 → specify_cli-0.10.2}/.markdownlint-cli2.jsonc +0 -0
  59. {specify_cli-0.10.0 → specify_cli-0.10.2}/.zenodo.json +0 -0
  60. {specify_cli-0.10.0 → specify_cli-0.10.2}/AGENTS.md +0 -0
  61. {specify_cli-0.10.0 → specify_cli-0.10.2}/CITATION.cff +0 -0
  62. {specify_cli-0.10.0 → specify_cli-0.10.2}/CODE_OF_CONDUCT.md +0 -0
  63. {specify_cli-0.10.0 → specify_cli-0.10.2}/CONTRIBUTING.md +0 -0
  64. {specify_cli-0.10.0 → specify_cli-0.10.2}/DEVELOPMENT.md +0 -0
  65. {specify_cli-0.10.0 → specify_cli-0.10.2}/LICENSE +0 -0
  66. {specify_cli-0.10.0 → specify_cli-0.10.2}/README.md +0 -0
  67. {specify_cli-0.10.0 → specify_cli-0.10.2}/SECURITY.md +0 -0
  68. {specify_cli-0.10.0 → specify_cli-0.10.2}/SUPPORT.md +0 -0
  69. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/.gitignore +0 -0
  70. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/README.md +0 -0
  71. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/community/friends.md +0 -0
  72. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/community/overview.md +0 -0
  73. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/community/walkthroughs.md +0 -0
  74. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/docfx.json +0 -0
  75. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/index.md +0 -0
  76. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/install/air-gapped.md +0 -0
  77. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/install/one-time.md +0 -0
  78. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/install/pipx.md +0 -0
  79. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/install/uv.md +0 -0
  80. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/installation.md +0 -0
  81. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/local-development.md +0 -0
  82. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/quickstart.md +0 -0
  83. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/authentication.md +0 -0
  84. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/core.md +0 -0
  85. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/extensions.md +0 -0
  86. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/overview.md +0 -0
  87. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/presets.md +0 -0
  88. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/reference/workflows.md +0 -0
  89. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/template/public/main.css +0 -0
  90. {specify_cli-0.10.0 → specify_cli-0.10.2}/docs/upgrade.md +0 -0
  91. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  92. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  93. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
  94. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/EXTENSION-USER-GUIDE.md +0 -0
  95. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/README.md +0 -0
  96. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
  97. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/agent-context/README.md +0 -0
  98. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/agent-context/agent-context-config.yml +0 -0
  99. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
  100. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/agent-context/extension.yml +0 -0
  101. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
  102. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
  103. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/bug/README.md +0 -0
  104. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/bug/commands/speckit.bug.assess.md +0 -0
  105. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/bug/commands/speckit.bug.fix.md +0 -0
  106. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/bug/commands/speckit.bug.test.md +0 -0
  107. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/bug/extension.yml +0 -0
  108. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/catalog.json +0 -0
  109. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/README.md +0 -0
  110. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/commands/speckit.git.commit.md +0 -0
  111. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/commands/speckit.git.feature.md +0 -0
  112. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/commands/speckit.git.initialize.md +0 -0
  113. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/commands/speckit.git.remote.md +0 -0
  114. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/commands/speckit.git.validate.md +0 -0
  115. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/config-template.yml +0 -0
  116. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/extension.yml +0 -0
  117. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/git-config.yml +0 -0
  118. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/bash/auto-commit.sh +0 -0
  119. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
  120. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/bash/git-common.sh +0 -0
  121. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
  122. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
  123. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
  124. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
  125. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
  126. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/selftest/commands/selftest.md +0 -0
  127. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/selftest/extension.yml +0 -0
  128. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/.gitignore +0 -0
  129. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/CHANGELOG.md +0 -0
  130. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/EXAMPLE-README.md +0 -0
  131. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/LICENSE +0 -0
  132. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/README.md +0 -0
  133. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/commands/example.md +0 -0
  134. {specify_cli-0.10.0 → specify_cli-0.10.2}/extensions/template/config-template.yml +0 -0
  135. {specify_cli-0.10.0 → specify_cli-0.10.2}/integrations/CONTRIBUTING.md +0 -0
  136. {specify_cli-0.10.0 → specify_cli-0.10.2}/integrations/README.md +0 -0
  137. {specify_cli-0.10.0 → specify_cli-0.10.2}/integrations/catalog.community.json +0 -0
  138. {specify_cli-0.10.0 → specify_cli-0.10.2}/integrations/catalog.json +0 -0
  139. {specify_cli-0.10.0 → specify_cli-0.10.2}/media/bootstrap-claude-code.gif +0 -0
  140. {specify_cli-0.10.0 → specify_cli-0.10.2}/media/logo_large.webp +0 -0
  141. {specify_cli-0.10.0 → specify_cli-0.10.2}/media/logo_small.webp +0 -0
  142. {specify_cli-0.10.0 → specify_cli-0.10.2}/media/spec-kit-video-header.jpg +0 -0
  143. {specify_cli-0.10.0 → specify_cli-0.10.2}/media/specify_cli.gif +0 -0
  144. {specify_cli-0.10.0 → specify_cli-0.10.2}/newsletters/2026-April.md +0 -0
  145. {specify_cli-0.10.0 → specify_cli-0.10.2}/newsletters/2026-February.md +0 -0
  146. {specify_cli-0.10.0 → specify_cli-0.10.2}/newsletters/2026-March.md +0 -0
  147. {specify_cli-0.10.0 → specify_cli-0.10.2}/newsletters/2026-May.md +0 -0
  148. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/ARCHITECTURE.md +0 -0
  149. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/PUBLISHING.md +0 -0
  150. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/README.md +0 -0
  151. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/catalog.json +0 -0
  152. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/README.md +0 -0
  153. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/commands/speckit.constitution.md +0 -0
  154. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/commands/speckit.implement.md +0 -0
  155. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/commands/speckit.plan.md +0 -0
  156. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/commands/speckit.specify.md +0 -0
  157. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/commands/speckit.tasks.md +0 -0
  158. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/lean/preset.yml +0 -0
  159. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/scaffold/README.md +0 -0
  160. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
  161. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/scaffold/commands/speckit.specify.md +0 -0
  162. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/scaffold/preset.yml +0 -0
  163. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/scaffold/templates/myext-template.md +0 -0
  164. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/scaffold/templates/spec-template.md +0 -0
  165. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/commands/speckit.specify.md +0 -0
  166. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/commands/speckit.wrap-test.md +0 -0
  167. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/preset.yml +0 -0
  168. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/templates/agent-file-template.md +0 -0
  169. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/templates/checklist-template.md +0 -0
  170. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/templates/constitution-template.md +0 -0
  171. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/templates/plan-template.md +0 -0
  172. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/templates/spec-template.md +0 -0
  173. {specify_cli-0.10.0 → specify_cli-0.10.2}/presets/self-test/templates/tasks-template.md +0 -0
  174. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/bash/check-prerequisites.sh +0 -0
  175. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/bash/common.sh +0 -0
  176. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/bash/create-new-feature.sh +0 -0
  177. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/bash/setup-plan.sh +0 -0
  178. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/bash/setup-tasks.sh +0 -0
  179. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/powershell/check-prerequisites.ps1 +0 -0
  180. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/powershell/common.ps1 +0 -0
  181. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/powershell/create-new-feature.ps1 +0 -0
  182. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/powershell/setup-plan.ps1 +0 -0
  183. {specify_cli-0.10.0 → specify_cli-0.10.2}/scripts/powershell/setup-tasks.ps1 +0 -0
  184. {specify_cli-0.10.0 → specify_cli-0.10.2}/spec-driven.md +0 -0
  185. {specify_cli-0.10.0 → specify_cli-0.10.2}/spec-kit.code-workspace +0 -0
  186. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_agent_config.py +0 -0
  187. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_assets.py +0 -0
  188. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_console.py +0 -0
  189. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_init_options.py +0 -0
  190. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_utils.py +0 -0
  191. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/_version.py +0 -0
  192. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/agents.py +0 -0
  193. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/authentication/__init__.py +0 -0
  194. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/authentication/azure_devops.py +0 -0
  195. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/authentication/base.py +0 -0
  196. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/authentication/config.py +0 -0
  197. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/authentication/github.py +0 -0
  198. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/catalogs.py +0 -0
  199. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/commands/__init__.py +0 -0
  200. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/commands/init.py +0 -0
  201. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integration_runtime.py +0 -0
  202. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/__init__.py +0 -0
  203. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/_commands.py +0 -0
  204. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/_helpers.py +0 -0
  205. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/_install_commands.py +0 -0
  206. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/_migrate_commands.py +0 -0
  207. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/agy/__init__.py +0 -0
  208. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/amp/__init__.py +0 -0
  209. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/auggie/__init__.py +0 -0
  210. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/base.py +0 -0
  211. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/bob/__init__.py +0 -0
  212. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/catalog.py +0 -0
  213. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/claude/__init__.py +0 -0
  214. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/cline/__init__.py +0 -0
  215. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
  216. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/codex/__init__.py +0 -0
  217. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/copilot/__init__.py +0 -0
  218. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
  219. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/devin/__init__.py +0 -0
  220. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/forge/__init__.py +0 -0
  221. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/gemini/__init__.py +0 -0
  222. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/generic/__init__.py +0 -0
  223. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/goose/__init__.py +0 -0
  224. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/hermes/__init__.py +0 -0
  225. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/iflow/__init__.py +0 -0
  226. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/junie/__init__.py +0 -0
  227. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
  228. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/kimi/__init__.py +0 -0
  229. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
  230. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/lingma/__init__.py +0 -0
  231. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/opencode/__init__.py +0 -0
  232. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/pi/__init__.py +0 -0
  233. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
  234. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/qwen/__init__.py +0 -0
  235. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/roo/__init__.py +0 -0
  236. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
  237. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/shai/__init__.py +0 -0
  238. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
  239. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/trae/__init__.py +0 -0
  240. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/vibe/__init__.py +0 -0
  241. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/integrations/windsurf/__init__.py +0 -0
  242. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/__init__.py +0 -0
  243. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/base.py +0 -0
  244. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/catalog.py +0 -0
  245. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/engine.py +0 -0
  246. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/expressions.py +0 -0
  247. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/__init__.py +0 -0
  248. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
  249. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
  250. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
  251. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
  252. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
  253. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
  254. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
  255. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
  256. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
  257. {specify_cli-0.10.0 → specify_cli-0.10.2}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
  258. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/checklist-template.md +0 -0
  259. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/analyze.md +0 -0
  260. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/checklist.md +0 -0
  261. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/clarify.md +0 -0
  262. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/constitution.md +0 -0
  263. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/implement.md +0 -0
  264. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/plan.md +0 -0
  265. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/specify.md +0 -0
  266. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/tasks.md +0 -0
  267. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/commands/taskstoissues.md +0 -0
  268. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/constitution-template.md +0 -0
  269. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/plan-template.md +0 -0
  270. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/spec-template.md +0 -0
  271. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/tasks-template.md +0 -0
  272. {specify_cli-0.10.0 → specify_cli-0.10.2}/templates/vscode-settings.json +0 -0
  273. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/__init__.py +0 -0
  274. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/auth_helpers.py +0 -0
  275. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/conftest.py +0 -0
  276. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/extensions/__init__.py +0 -0
  277. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/extensions/bug/__init__.py +0 -0
  278. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/extensions/bug/test_bug_extension.py +0 -0
  279. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/extensions/git/__init__.py +0 -0
  280. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/extensions/git/test_git_extension.py +0 -0
  281. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/extensions/test_extension_agent_context.py +0 -0
  282. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/hooks/.specify/extensions.yml +0 -0
  283. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/hooks/TESTING.md +0 -0
  284. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/hooks/plan.md +0 -0
  285. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/hooks/spec.md +0 -0
  286. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/hooks/tasks.md +0 -0
  287. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/http_helpers.py +0 -0
  288. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/__init__.py +0 -0
  289. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/conftest.py +0 -0
  290. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_base.py +0 -0
  291. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_cli.py +0 -0
  292. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_extra_args.py +0 -0
  293. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_agy.py +0 -0
  294. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_amp.py +0 -0
  295. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_auggie.py +0 -0
  296. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_base_markdown.py +0 -0
  297. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_base_skills.py +0 -0
  298. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_base_toml.py +0 -0
  299. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_base_yaml.py +0 -0
  300. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_bob.py +0 -0
  301. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_catalog.py +0 -0
  302. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_claude.py +0 -0
  303. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_cline.py +0 -0
  304. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_codebuddy.py +0 -0
  305. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_codex.py +0 -0
  306. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_copilot.py +0 -0
  307. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_cursor_agent.py +0 -0
  308. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_devin.py +0 -0
  309. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_forge.py +0 -0
  310. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_gemini.py +0 -0
  311. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_generic.py +0 -0
  312. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_goose.py +0 -0
  313. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_hermes.py +0 -0
  314. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_iflow.py +0 -0
  315. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_junie.py +0 -0
  316. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_kilocode.py +0 -0
  317. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_kimi.py +0 -0
  318. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_kiro_cli.py +0 -0
  319. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_lingma.py +0 -0
  320. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_opencode.py +0 -0
  321. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_pi.py +0 -0
  322. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_qodercli.py +0 -0
  323. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_qwen.py +0 -0
  324. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_roo.py +0 -0
  325. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_rovodev.py +0 -0
  326. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_shai.py +0 -0
  327. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_state.py +0 -0
  328. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_tabnine.py +0 -0
  329. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_trae.py +0 -0
  330. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_vibe.py +0 -0
  331. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_integration_windsurf.py +0 -0
  332. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_manifest.py +0 -0
  333. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/integrations/test_registry.py +0 -0
  334. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/self_upgrade_helpers.py +0 -0
  335. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_agent_config_consistency.py +0 -0
  336. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_branch_numbering.py +0 -0
  337. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_check_prerequisites_paths_only.py +0 -0
  338. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_check_tool.py +0 -0
  339. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_cli_version.py +0 -0
  340. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_commands_package.py +0 -0
  341. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_console_imports.py +0 -0
  342. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_extension_registration.py +0 -0
  343. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_extension_update_hardening.py +0 -0
  344. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_merge.py +0 -0
  345. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_ps1_encoding.py +0 -0
  346. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_registrar_path_traversal.py +0 -0
  347. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_self_upgrade_detection.py +0 -0
  348. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_self_upgrade_execution.py +0 -0
  349. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_self_upgrade_guidance.py +0 -0
  350. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_self_upgrade_verification.py +0 -0
  351. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_setup_plan_feature_json.py +0 -0
  352. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_setup_plan_no_overwrite.py +0 -0
  353. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_setup_tasks.py +0 -0
  354. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_timestamp_branches.py +0 -0
  355. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_upgrade.py +0 -0
  356. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_utils_assets_imports.py +0 -0
  357. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_version_imports.py +0 -0
  358. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_workflow_run_without_project.py +0 -0
  359. {specify_cli-0.10.0 → specify_cli-0.10.2}/tests/test_workflows.py +0 -0
  360. {specify_cli-0.10.0 → specify_cli-0.10.2}/workflows/ARCHITECTURE.md +0 -0
  361. {specify_cli-0.10.0 → specify_cli-0.10.2}/workflows/PUBLISHING.md +0 -0
  362. {specify_cli-0.10.0 → specify_cli-0.10.2}/workflows/README.md +0 -0
  363. {specify_cli-0.10.0 → specify_cli-0.10.2}/workflows/catalog.community.json +0 -0
  364. {specify_cli-0.10.0 → specify_cli-0.10.2}/workflows/catalog.json +0 -0
  365. {specify_cli-0.10.0 → specify_cli-0.10.2}/workflows/speckit/workflow.yml +0 -0
@@ -70,6 +70,8 @@ Use the existing entries as the format template. Required fields:
70
70
  "documentation": "<documentation>",
71
71
  "changelog": "<changelog>",
72
72
  "license": "<license>",
73
+ "category": "<category>",
74
+ "effect": "<effect>",
73
75
  "requires": {
74
76
  "speckit_version": "<speckit_version>"
75
77
  },
@@ -87,6 +89,9 @@ Use the existing entries as the format template. Required fields:
87
89
  }
88
90
  ```
89
91
 
92
+ **Category** — free-form string; common values: `docs`, `code`, `process`, `integration`, `visibility`
93
+ **Effect** — one of: `read-only`, `read-write`
94
+
90
95
  If the extension has optional tool dependencies, add a `"tools"` array inside `"requires"`:
91
96
 
92
97
  ```json
@@ -113,8 +118,8 @@ Determine the category and effect from the extension's behavior:
113
118
  | <Name> | <Description> | `<category>` | <Effect> | [<repo-name>](<repository-url>) |
114
119
  ```
115
120
 
116
- **Category** — one of: `docs`, `code`, `process`, `integration`, `visibility`
117
- **Effect** — `Read-only` (produces reports only) or `Read+Write` (modifies project files)
121
+ **Category** — free-form; common values: `docs`, `code`, `process`, `integration`, `visibility`
122
+ **Effect** — write canonical values `read-only` or `read-write` in `extension.yml` and `catalog.community.json`; use `Read-only`/`Read+Write` only for the docs table display
118
123
 
119
124
  ### 6. Commit, push, and open PR
120
125
 
@@ -2,6 +2,35 @@
2
2
 
3
3
  <!-- insert new changelog below this comment -->
4
4
 
5
+ ## [0.10.2] - 2026-06-11
6
+
7
+ ### Changed
8
+
9
+ - Add Research Harness extension to community catalog (#2935)
10
+ - Add Coding Standards Drift Control extension to community catalog (#2934)
11
+ - Add Spec Trace extension to community catalog (#2527)
12
+ - fix(extensions): preserve argument-hint in extension Claude SKILL.md (#2916)
13
+ - fix(presets): harden preset URL installs against unsafe redirects (#2911)
14
+ - fix: skip recovered files during refresh_managed overwrite check (#2918) (#2919)
15
+ - Update multi-model-review extension to v0.1.1 (#2900)
16
+ - feat: add category and effect as first-class fields in extension schema (#2899)
17
+ - chore(catalog): add Jira Integration (Sync Engine) extension (#2895)
18
+ - chore: release 0.10.1, begin 0.10.2.dev0 development (#2910)
19
+
20
+ ## [0.10.1] - 2026-06-09
21
+
22
+ ### Changed
23
+
24
+ - Update DocGuard — CDD Enforcement extension to v0.25.1 (#2909)
25
+ - Update a11y-governance preset to v0.3.0 (#2867)
26
+ - docs: document spec persistence models (#2856)
27
+ - chore(catalog): bump Linear Integration to v0.3.0 (repo renamed to spec-kit-linear-sync) (#2893)
28
+ - chore: update DocGuard extension to v0.25.0 (#2707)
29
+ - chore: remove unused open_github_url/_StripAuthOnRedirect from _github_http.py (#2883)
30
+ - fix(catalogs): validate extension and preset catalog payload shape (#2621)
31
+ - feat(integration): add status reporting (#2674)
32
+ - chore: release 0.10.0, begin 0.10.1.dev0 development (#2904)
33
+
5
34
  ## [0.10.0] - 2026-06-09
6
35
 
7
36
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specify-cli
3
- Version: 0.10.0
3
+ Version: 0.10.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
@@ -7,7 +7,7 @@
7
7
 
8
8
  The following community-contributed extensions are available in [`catalog.community.json`](https://github.com/github/spec-kit/blob/main/extensions/catalog.community.json):
9
9
 
10
- **Categories:**
10
+ **Categories** (common values, but any string is allowed):
11
11
 
12
12
  - `docs` — reads, validates, or generates spec artifacts
13
13
  - `code` — reviews, validates, or modifies source code
@@ -15,10 +15,13 @@ The following community-contributed extensions are available in [`catalog.commun
15
15
  - `integration` — syncs with external platforms
16
16
  - `visibility` — reports on project health or progress
17
17
 
18
- **Effect:**
18
+ **Effect** (canonical `extension.yml`/catalog values):
19
19
 
20
- - `Read-only` — produces reports without modifying files
21
- - `Read+Write` — modifies files, creates artifacts, or updates specs
20
+ - `read-only` — produces reports without modifying files (displayed as `Read-only` in the table)
21
+ - `read-write` — modifies files, creates artifacts, or updates specs (displayed as `Read+Write` in the table)
22
+
23
+ > [!TIP]
24
+ > Extension authors can declare `category` and `effect` in their `extension.yml` under the `extension:` block. These fields are also available in `catalog.community.json` for tooling and the CLI (`specify extension info`).
22
25
 
23
26
  | Extension | Purpose | Category | Effect | URL |
24
27
  |-----------|---------|----------|--------|-----|
@@ -41,10 +44,11 @@ The following community-contributed extensions are available in [`catalog.commun
41
44
  | CI Guard | Spec compliance gates for CI/CD — verify specs exist, check drift, and block merges on gaps | `process` | Read-only | [spec-kit-ci-guard](https://github.com/Quratulain-bilal/spec-kit-ci-guard) |
42
45
  | Checkpoint Extension | Commit the changes made during the middle of the implementation, so you don't end up with just one very large commit at the end | `code` | Read+Write | [spec-kit-checkpoint](https://github.com/aaronrsun/spec-kit-checkpoint) |
43
46
  | Cleanup Extension | Post-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues | `code` | Read+Write | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
47
+ | Coding Standards Drift Control | Generate coding-standards drift reports and remediation tasks for active Spec Kit features | `code` | Read+Write | [spec-kit-coding-standards-drift-control](https://github.com/benizzio/spec-kit-coding-standards-drift-control) |
44
48
  | Conduct Extension | Orchestrates spec-kit phases via sub-agent delegation to reduce context pollution. | `process` | Read+Write | [spec-kit-conduct-ext](https://github.com/twbrandon7/spec-kit-conduct-ext) |
45
49
  | Confluence Extension | Create a doc in Confluence summarizing the specifications and planning files | `integration` | Read+Write | [spec-kit-confluence](https://github.com/aaronrsun/spec-kit-confluence) |
46
50
  | Cost Tracker | Track real LLM dollar cost across SDD workflows — per-feature budgets, per-integration comparison, and finance-ready exports | `visibility` | Read+Write | [spec-kit-cost](https://github.com/Quratulain-bilal/spec-kit-cost) |
47
- | DocGuard — CDD Enforcement | Canonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. Zero NPM runtime dependencies. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) |
51
+ | DocGuard — CDD Enforcement | Canonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. One pinned runtime dependency; pure Node.js otherwise. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) |
48
52
  | Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) |
49
53
  | Fix Findings | Automated analyze-fix-reanalyze loop that resolves spec findings until clean | `code` | Read+Write | [spec-kit-fix-findings](https://github.com/Quratulain-bilal/spec-kit-fix-findings) |
50
54
  | FixIt Extension | Spec-aware bug fixing — maps bugs to spec artifacts, proposes a plan, applies minimal changes | `code` | Read+Write | [spec-kit-fixit](https://github.com/speckit-community/spec-kit-fixit) |
@@ -55,8 +59,9 @@ The following community-contributed extensions are available in [`catalog.commun
55
59
  | Intelligent Agent Orchestrator | Cross-catalog agent discovery and intelligent prompt-to-command routing | `process` | Read+Write | [spec-kit-orchestrator](https://github.com/pragya247/spec-kit-orchestrator) |
56
60
  | 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) |
57
61
  | 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) |
62
+ | 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) |
58
63
  | 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) |
59
- | Linear Integration | Mirror spec-kit feature directories into Linear (filesystem → Linear, reconcile-based, unidirectional). | `integration` | Read+Write | [spec-kit-linear](https://github.com/ashbrener/spec-kit-linear) |
64
+ | 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) |
60
65
  | MAQA — Multi-Agent & Quality Assurance | Coordinator → feature → QA agent workflow with parallel worktree-based implementation. Language-agnostic. Auto-detects installed board plugins. Optional CI gate. | `process` | Read+Write | [spec-kit-maqa-ext](https://github.com/GenieRobot/spec-kit-maqa-ext) |
61
66
  | MAQA Azure DevOps Integration | Azure DevOps Boards integration for MAQA — syncs User Stories and Task children as features progress | `integration` | Read+Write | [spec-kit-maqa-azure-devops](https://github.com/GenieRobot/spec-kit-maqa-azure-devops) |
62
67
  | MAQA CI/CD Gate | Auto-detects GitHub Actions, CircleCI, GitLab CI, and Bitbucket Pipelines. Blocks QA handoff until pipeline is green. | `process` | Read+Write | [spec-kit-maqa-ci](https://github.com/GenieRobot/spec-kit-maqa-ci) |
@@ -88,6 +93,7 @@ The following community-contributed extensions are available in [`catalog.commun
88
93
  | Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss-Projects/spec-kit-ralph) |
89
94
  | Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
90
95
  | Red Team | Adversarial review of specs before /speckit.plan — parallel lens agents surface risks that clarify/analyze structurally can't (prompt injection, integrity gaps, cross-spec drift, silent failures). Produces a structured findings report; no auto-edits to specs. | `docs` | Read+Write | [spec-kit-red-team](https://github.com/ashbrener/spec-kit-red-team) |
96
+ | Research Harness | State-externalizing research harness: budgeted exploration, evidence curation, and claim verification for spec-driven development | `process` | Read+Write | [spec-kit-harness](https://github.com/formin/spec-kit-harness) |
91
97
  | Repository Index | Generate index for existing repo for overview, architecture and module level. | `docs` | Read-only | [spec-kit-repoindex](https://github.com/liuyiyu/spec-kit-repoindex) |
92
98
  | Reqnroll BDD | Adds Reqnroll BDD planning, Gherkin generation, traceability, safe task injection, handoff, and verification to Spec Kit | `process` | Read+Write | [spec-kit-reqnroll-bdd](https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd) |
93
99
  | Retro Extension | Sprint retrospective analysis with metrics, spec accuracy assessment, and improvement suggestions | `process` | Read+Write | [spec-kit-retro](https://github.com/arunt14/spec-kit-retro) |
@@ -107,6 +113,7 @@ The following community-contributed extensions are available in [`catalog.commun
107
113
  | Spec Refine | Update specs in-place, propagate changes to plan and tasks, and diff impact across artifacts | `process` | Read+Write | [spec-kit-refine](https://github.com/Quratulain-bilal/spec-kit-refine) |
108
114
  | Spec Scope | Effort estimation and scope tracking — estimate work, detect creep, and budget time per phase | `process` | Read-only | [spec-kit-scope-](https://github.com/Quratulain-bilal/spec-kit-scope-) |
109
115
  | Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | `docs` | Read+Write | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
116
+ | Spec Trace | Build a requirement → test traceability matrix from spec.md and the test suite — surface untested requirements and orphan tests | `code` | Read+Write | [spec-kit-trace](https://github.com/Quratulain-bilal/spec-kit-trace) |
110
117
  | Spec Validate | Comprehension validation, review gating, and approval state for spec-kit artifacts — staged quizzes, peer review SLA, and a hard gate before /speckit.implement | `process` | Read+Write | [spec-kit-spec-validate](https://github.com/aeltayeb/spec-kit-spec-validate) |
111
118
  | Spec2Cloud | Spec-driven workflow tuned for shipping to Azure | `process` | Read+Write | [spec2cloud](https://github.com/Azure-Samples/Spec2Cloud) |
112
119
  | SpecTest | Auto-generate test scaffolds from spec criteria, map coverage, and find untested requirements | `code` | Read+Write | [spec-kit-spectest](https://github.com/Quratulain-bilal/spec-kit-spectest) |
@@ -7,7 +7,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
7
7
 
8
8
  | Preset | Purpose | Provides | Requires | URL |
9
9
  |--------|---------|----------|----------|-----|
10
- | A11Y Governance | Adds WCAG 2.2 AA accessibility checks, bilingual DE/EN delivery, CEFR-B2 readability, CLI accessibility, and inclusive-content guidance | 9 templates, 3 commands | — | [spec-kit-preset-a11y-governance](https://github.com/hindermath/spec-kit-preset-a11y-governance) |
10
+ | A11Y Governance | Adds WCAG 2.2 AA accessibility checks, bilingual DE/EN delivery, CEFR-B2 readability, CLI accessibility, inclusive-content guidance, and didactic inline-code-comment review | 10 templates, 3 commands | — | [spec-kit-preset-a11y-governance](https://github.com/hindermath/spec-kit-preset-a11y-governance) |
11
11
  | Agent Parity Governance | Keeps shared AI-agent instructions aligned and adds agent-neutral Spec Kit model-routing guidance across project-defined agent guidance surfaces | 9 templates, 3 commands | — | [spec-kit-preset-agent-parity-governance](https://github.com/hindermath/spec-kit-preset-agent-parity-governance) |
12
12
  | AIDE In-Place Migration | Adapts the AIDE extension workflow for in-place technology migrations (X → Y pattern) — adds migration objectives, verification gates, knowledge documents, and behavioral equivalence criteria | 2 templates, 8 commands | AIDE extension | [spec-kit-presets](https://github.com/mnriem/spec-kit-presets) |
13
13
  | Architecture Governance | Adds secure architecture governance: trust boundaries, threat modeling, STRIDE/CAPEC, S-ADRs, Zero Trust applicability, and OWASP SAMM | 11 templates, 3 commands | — | [spec-kit-preset-architecture-governance](https://github.com/hindermath/spec-kit-preset-architecture-governance) |
@@ -11,6 +11,11 @@ Spec-Driven Development is a structured process that emphasizes:
11
11
  - **Multi-step refinement** rather than one-shot code generation from prompts
12
12
  - **Heavy reliance** on advanced AI model capabilities for specification interpretation
13
13
 
14
+ Spec Kit does not prescribe how teams preserve or mutate `spec.md`, `plan.md`,
15
+ and `tasks.md` after requirements change. See
16
+ [Spec Persistence Models](spec-persistence.md) for three common ways to manage
17
+ those artifacts over time.
18
+
14
19
  ## Development Phases
15
20
 
16
21
  | Phase | Focus | Key Activities |
@@ -0,0 +1,107 @@
1
+ # Spec Persistence Models
2
+
3
+ Spec Kit intentionally leaves teams in control of what happens to `spec.md`,
4
+ `plan.md`, and `tasks.md` after requirements change. The toolkit gives you a
5
+ repeatable workflow, but it does not force one artifact maintenance strategy.
6
+
7
+ This page names three common models so teams can make that choice explicit.
8
+ None is the default, and none is required by Spec Kit.
9
+
10
+ ## Two Separate Questions
11
+
12
+ Spec-driven development has a temporal question: how long should the
13
+ specification matter? One
14
+ [overview of SDD tooling](https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html)
15
+ frames that lifecycle in three levels:
16
+
17
+ - **Spec-first**: write a spec before coding, then allow it to be discarded.
18
+ - **Spec-anchored**: keep the spec after implementation and use it for future
19
+ changes.
20
+ - **Spec-as-source**: treat the spec as the only human-edited source and
21
+ regenerate implementation artifacts from it.
22
+
23
+ Spec Kit also exposes a second question: what happens to the artifact set when
24
+ requirements change? The models below describe that mutation strategy.
25
+
26
+ ## Flow-Back Spec
27
+
28
+ Use flow-back when `spec.md`, `plan.md`, `tasks.md`, and the implementation are
29
+ all allowed to inform each other.
30
+
31
+ In this model, edits can begin in any artifact. A developer might update
32
+ `tasks.md` during implementation, revise `plan.md` after a technical discovery,
33
+ or adjust `spec.md` after a product clarification. The team then reconciles the
34
+ artifact set manually so the final project history still makes sense.
35
+
36
+ Flow-back works well when:
37
+
38
+ - the team is small enough to notice and reconcile drift quickly
39
+ - implementation discoveries are expected to reshape the original plan
40
+ - speed matters more than preserving each intermediate decision as immutable
41
+ history
42
+
43
+ The main risk is silent divergence. If the team changes lower-level artifacts
44
+ without reflecting the decision back into `spec.md`, future contributors may
45
+ not know which artifact to trust.
46
+
47
+ ## Flow-Forward Spec
48
+
49
+ Use flow-forward when each feature directory should remain a historical record.
50
+
51
+ In this model, completed artifacts are treated as immutable. When requirements
52
+ change, the team creates a new feature directory instead of mutating the
53
+ existing `spec.md`, `plan.md`, or `tasks.md`. The older directory remains useful
54
+ for audit, comparison, or explaining how the project reached its current state.
55
+
56
+ Flow-forward works well when:
57
+
58
+ - auditability and traceability matter
59
+ - features are well-scoped and rarely revisited in place
60
+ - the team wants a clear sequence of requirement changes over time
61
+
62
+ The main tradeoff is duplication. Related decisions can be spread across
63
+ multiple feature directories, so teams need naming, linking, or review habits
64
+ that make the lineage easy to follow.
65
+
66
+ ## Living Spec
67
+
68
+ Use living spec when `spec.md` is the contract and the other artifacts are
69
+ derived from it.
70
+
71
+ In this model, teams update `spec.md` first and then regenerate or revise
72
+ `plan.md` and `tasks.md` from that source. The plan and task list are still
73
+ valuable, but they are treated as disposable derivations rather than permanent
74
+ sources of truth.
75
+
76
+ Living spec works well when:
77
+
78
+ - the product contract is stable enough to own the workflow
79
+ - the team is comfortable regenerating derived artifacts after spec changes
80
+ - consistency between requirements and implementation matters more than keeping
81
+ every intermediate plan intact
82
+
83
+ The main risk is losing useful implementation rationale if derived artifacts are
84
+ discarded without preserving important decisions elsewhere.
85
+
86
+ ## Choosing a Model
87
+
88
+ The model is a team convention, not a CLI setting. A project can even use
89
+ different models in different areas, as long as contributors know which one
90
+ applies.
91
+
92
+ | Model | Mutation rule | Best fit | Watch out for |
93
+ |---|---|---|---|
94
+ | Flow-back spec | Edit any artifact, then reconcile | Fast iteration and close collaboration | Silent drift between artifacts |
95
+ | Flow-forward spec | Create a new feature directory for new requirements | Audit trails and historical clarity | Duplicate or fragmented context |
96
+ | Living spec | Edit `spec.md`; regenerate derived artifacts | Spec as contract | Lost rationale in regenerated files |
97
+
98
+ If your team has not chosen a model yet, start by answering two questions:
99
+
100
+ 1. Should completed feature directories be historical records or editable work
101
+ areas?
102
+ 2. Is `spec.md` the single source of truth, or are `plan.md` and `tasks.md`
103
+ allowed to become co-equal sources?
104
+
105
+ Once those answers are clear, document the convention in your project
106
+ constitution or team onboarding notes so future contributors know how to handle
107
+ changes.
@@ -126,6 +126,27 @@ specify integration upgrade [<key>]
126
126
 
127
127
  Reinstalls an installed integration with updated templates and commands (e.g., after upgrading Spec Kit). Defaults to the default integration; if a key is provided, it must be one of the installed integrations. Detects locally modified files and blocks the upgrade unless `--force` is used. Stale files from the previous install that are no longer needed are removed automatically. Shared templates stay aligned with the default integration even when upgrading a non-default integration.
128
128
 
129
+ ## Report Integration Status
130
+
131
+ ```bash
132
+ specify integration status
133
+ specify integration status --json
134
+ ```
135
+
136
+ Reports the current project's integration status without changing files. The
137
+ status report includes the default integration, installed integrations,
138
+ multi-install safety, missing managed files, modified managed files, invalid
139
+ manifest paths, shared Spec Kit infrastructure health, unchecked manifests, and
140
+ the target integration for default-sensitive shared templates. The JSON form is
141
+ intended for CI and coding agents that need stable machine-readable status data;
142
+ it also reports the raw recorded integrations and the integration manifests that
143
+ were checked when state repair heuristics differ from the recorded file.
144
+ The command exits 0 when the report status is `ok` or `warning`; it exits 1
145
+ only when the report status is `error`. In JSON output, `multi_install_safe`
146
+ is `null` when no installed integration set can be evaluated, such as when the
147
+ integration state is missing, unreadable, lacks a valid recorded integration
148
+ list, or records no installed integrations.
149
+
129
150
  ## Integration-Specific Options
130
151
 
131
152
  Some integrations accept additional options via `--integration-options`:
@@ -41,6 +41,8 @@
41
41
  items:
42
42
  - name: What is SDD?
43
43
  href: concepts/sdd.md
44
+ - name: Spec Persistence Models
45
+ href: concepts/spec-persistence.md
44
46
 
45
47
  # Development workflows
46
48
  - name: Development