specify-cli 1.0.0__tar.gz → 1.0.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 (583) hide show
  1. {specify_cli-1.0.0 → specify_cli-1.0.2}/.devcontainer/devcontainer.json +2 -5
  2. {specify_cli-1.0.0 → specify_cli-1.0.2}/.devcontainer/post-create.sh +54 -29
  3. specify_cli-1.0.2/.editorconfig +28 -0
  4. specify_cli-1.0.2/.gitattributes +7 -0
  5. specify_cli-1.0.2/.github/CODEOWNERS +7 -0
  6. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/agent_request.yml +141 -0
  7. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/bug_report.yml +137 -0
  8. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/bundle_submission.yml +295 -0
  9. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/config.yml +17 -0
  10. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/extension_submission.yml +282 -0
  11. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/feature_request.yml +123 -0
  12. specify_cli-1.0.2/.github/ISSUE_TEMPLATE/preset_submission.yml +199 -0
  13. specify_cli-1.0.2/.github/PULL_REQUEST_TEMPLATE.md +21 -0
  14. specify_cli-1.0.2/.github/aw/actions-lock.json +44 -0
  15. specify_cli-1.0.2/.github/dependabot.yml +17 -0
  16. specify_cli-1.0.2/.github/scripts/check_security_requirements.py +123 -0
  17. specify_cli-1.0.2/.github/security-audit-requirements.txt +253 -0
  18. specify_cli-1.0.2/.github/skills/add-community-extension/SKILL.md +174 -0
  19. specify_cli-1.0.2/.github/workflows/RELEASE-PROCESS.md +191 -0
  20. specify_cli-1.0.2/.github/workflows/add-community-bundle.lock.yml +1746 -0
  21. specify_cli-1.0.2/.github/workflows/add-community-bundle.md +288 -0
  22. specify_cli-1.0.2/.github/workflows/add-community-extension.lock.yml +1726 -0
  23. specify_cli-1.0.2/.github/workflows/add-community-extension.md +292 -0
  24. specify_cli-1.0.2/.github/workflows/add-community-preset.lock.yml +1726 -0
  25. specify_cli-1.0.2/.github/workflows/add-community-preset.md +340 -0
  26. specify_cli-1.0.2/.github/workflows/bug-assess.lock.yml +1622 -0
  27. specify_cli-1.0.2/.github/workflows/bug-assess.md +239 -0
  28. specify_cli-1.0.2/.github/workflows/bug-fix.lock.yml +1732 -0
  29. specify_cli-1.0.2/.github/workflows/bug-fix.md +312 -0
  30. specify_cli-1.0.2/.github/workflows/bug-test.lock.yml +1655 -0
  31. specify_cli-1.0.2/.github/workflows/bug-test.md +360 -0
  32. specify_cli-1.0.2/.github/workflows/catalog-assign.yml +45 -0
  33. specify_cli-1.0.2/.github/workflows/codeql.yml +32 -0
  34. {specify_cli-1.0.0 → specify_cli-1.0.2}/.github/workflows/docs.yml +7 -6
  35. specify_cli-1.0.2/.github/workflows/feature-assess.lock.yml +1677 -0
  36. specify_cli-1.0.2/.github/workflows/feature-assess.md +298 -0
  37. specify_cli-1.0.2/.github/workflows/lint.yml +69 -0
  38. specify_cli-1.0.2/.github/workflows/publish-pypi.yml +80 -0
  39. specify_cli-1.0.2/.github/workflows/release-trigger.yml +178 -0
  40. specify_cli-1.0.2/.github/workflows/release.yml +88 -0
  41. specify_cli-1.0.2/.github/workflows/security.yml +78 -0
  42. specify_cli-1.0.2/.github/workflows/stale.yml +43 -0
  43. specify_cli-1.0.2/.github/workflows/test.yml +55 -0
  44. specify_cli-1.0.2/.gitignore +62 -0
  45. {specify_cli-1.0.0 → specify_cli-1.0.2}/.markdownlint-cli2.jsonc +4 -2
  46. specify_cli-1.0.2/.pre-commit-config.yaml +12 -0
  47. specify_cli-1.0.2/.zenodo.json +29 -0
  48. specify_cli-1.0.2/AGENTS.md +599 -0
  49. specify_cli-1.0.2/CHANGELOG.md +2777 -0
  50. specify_cli-1.0.2/CITATION.cff +31 -0
  51. specify_cli-1.0.2/CONTRIBUTING.md +292 -0
  52. specify_cli-1.0.2/DEVELOPMENT.md +24 -0
  53. {specify_cli-1.0.0 → specify_cli-1.0.2}/LICENSE +0 -1
  54. specify_cli-1.0.2/PKG-INFO +491 -0
  55. specify_cli-1.0.2/README.md +471 -0
  56. specify_cli-1.0.2/README.zh-CN.md +361 -0
  57. specify_cli-1.0.2/SUPPORT.md +18 -0
  58. specify_cli-1.0.2/bundles/catalog.community.json +57 -0
  59. {specify_cli-1.0.0 → specify_cli-1.0.2}/docs/.gitignore +0 -1
  60. specify_cli-1.0.2/docs/community/bundles.md +58 -0
  61. specify_cli-1.0.2/docs/community/extensions.md +191 -0
  62. specify_cli-1.0.2/docs/community/friends.md +20 -0
  63. specify_cli-1.0.2/docs/community/overview.md +33 -0
  64. specify_cli-1.0.2/docs/community/presets.md +45 -0
  65. specify_cli-1.0.2/docs/community/walkthroughs.md +20 -0
  66. specify_cli-1.0.2/docs/concepts/complex-features.md +87 -0
  67. specify_cli-1.0.0/docs/index.md → specify_cli-1.0.2/docs/concepts/sdd.md +7 -22
  68. specify_cli-1.0.2/docs/concepts/spec-of-specs.md +171 -0
  69. specify_cli-1.0.2/docs/concepts/spec-persistence.md +107 -0
  70. {specify_cli-1.0.0 → specify_cli-1.0.2}/docs/docfx.json +15 -3
  71. specify_cli-1.0.2/docs/guides/evolving-specs.md +96 -0
  72. specify_cli-1.0.2/docs/guides/existing-projects.md +106 -0
  73. specify_cli-1.0.2/docs/guides/monorepo.md +123 -0
  74. specify_cli-1.0.2/docs/history.md +173 -0
  75. specify_cli-1.0.2/docs/index.md +172 -0
  76. specify_cli-1.0.2/docs/install/air-gapped.md +59 -0
  77. specify_cli-1.0.2/docs/install/one-time.md +33 -0
  78. specify_cli-1.0.2/docs/install/pipx.md +38 -0
  79. specify_cli-1.0.2/docs/install/pypi.md +104 -0
  80. specify_cli-1.0.2/docs/install/uv.md +60 -0
  81. specify_cli-1.0.2/docs/installation.md +145 -0
  82. {specify_cli-1.0.0 → specify_cli-1.0.2}/docs/local-development.md +50 -26
  83. specify_cli-1.0.2/docs/quickstart.md +143 -0
  84. specify_cli-1.0.2/docs/reference/agentic-bugfix.md +52 -0
  85. specify_cli-1.0.2/docs/reference/agentic-sdd.md +123 -0
  86. specify_cli-1.0.2/docs/reference/authentication.md +208 -0
  87. specify_cli-1.0.2/docs/reference/bundles.md +163 -0
  88. specify_cli-1.0.2/docs/reference/core.md +97 -0
  89. specify_cli-1.0.2/docs/reference/extensions.md +280 -0
  90. specify_cli-1.0.2/docs/reference/integrations.md +322 -0
  91. specify_cli-1.0.2/docs/reference/overview.md +55 -0
  92. specify_cli-1.0.2/docs/reference/presets.md +226 -0
  93. specify_cli-1.0.2/docs/reference/workflows.md +651 -0
  94. specify_cli-1.0.2/docs/template/public/main.css +278 -0
  95. specify_cli-1.0.2/docs/toc.yml +92 -0
  96. specify_cli-1.0.2/docs/upgrade.md +550 -0
  97. specify_cli-1.0.2/examples/bundles/business-analyst/README.md +22 -0
  98. specify_cli-1.0.2/examples/bundles/business-analyst/bundle.yml +33 -0
  99. specify_cli-1.0.2/examples/bundles/developer/README.md +22 -0
  100. specify_cli-1.0.2/examples/bundles/developer/bundle.yml +33 -0
  101. specify_cli-1.0.2/examples/bundles/product-manager/README.md +22 -0
  102. specify_cli-1.0.2/examples/bundles/product-manager/bundle.yml +35 -0
  103. specify_cli-1.0.2/examples/bundles/security-researcher/README.md +23 -0
  104. specify_cli-1.0.2/examples/bundles/security-researcher/bundle.yml +33 -0
  105. specify_cli-1.0.2/extensions/EXTENSION-API-REFERENCE.md +896 -0
  106. specify_cli-1.0.2/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +794 -0
  107. specify_cli-1.0.2/extensions/EXTENSION-PUBLISHING-GUIDE.md +366 -0
  108. specify_cli-1.0.2/extensions/EXTENSION-USER-GUIDE.md +1025 -0
  109. specify_cli-1.0.2/extensions/README.md +123 -0
  110. specify_cli-1.0.2/extensions/RFC-EXTENSION-SYSTEM.md +1962 -0
  111. specify_cli-1.0.2/extensions/agent-context/README.md +63 -0
  112. specify_cli-1.0.2/extensions/agent-context/agent-context-config.yml +24 -0
  113. specify_cli-1.0.2/extensions/agent-context/agent-context-defaults.json +42 -0
  114. specify_cli-1.0.2/extensions/agent-context/commands/speckit.agent-context.update.md +27 -0
  115. specify_cli-1.0.2/extensions/agent-context/extension.yml +34 -0
  116. specify_cli-1.0.2/extensions/agent-context/scripts/bash/update-agent-context.sh +453 -0
  117. specify_cli-1.0.2/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +509 -0
  118. specify_cli-1.0.2/extensions/agent-context/scripts/python/update_agent_context.py +368 -0
  119. specify_cli-1.0.2/extensions/assess/README.md +105 -0
  120. specify_cli-1.0.2/extensions/assess/commands/speckit.assess.decide.md +97 -0
  121. specify_cli-1.0.2/extensions/assess/commands/speckit.assess.define.md +85 -0
  122. specify_cli-1.0.2/extensions/assess/commands/speckit.assess.intake.md +120 -0
  123. specify_cli-1.0.2/extensions/assess/commands/speckit.assess.research.md +102 -0
  124. specify_cli-1.0.2/extensions/assess/commands/speckit.assess.shape.md +82 -0
  125. specify_cli-1.0.2/extensions/assess/extension.yml +40 -0
  126. specify_cli-1.0.2/extensions/bug/README.md +80 -0
  127. specify_cli-1.0.2/extensions/bug/commands/speckit.bug.assess.md +173 -0
  128. specify_cli-1.0.2/extensions/bug/commands/speckit.bug.fix.md +112 -0
  129. specify_cli-1.0.2/extensions/bug/commands/speckit.bug.test.md +117 -0
  130. specify_cli-1.0.2/extensions/bug/extension.yml +31 -0
  131. specify_cli-1.0.2/extensions/catalog.community.json +6015 -0
  132. specify_cli-1.0.2/extensions/catalog.json +67 -0
  133. specify_cli-1.0.2/extensions/git/README.md +119 -0
  134. specify_cli-1.0.2/extensions/git/commands/speckit.git.commit.md +63 -0
  135. specify_cli-1.0.2/extensions/git/commands/speckit.git.feature.md +82 -0
  136. specify_cli-1.0.2/extensions/git/commands/speckit.git.initialize.md +49 -0
  137. specify_cli-1.0.2/extensions/git/commands/speckit.git.remote.md +45 -0
  138. specify_cli-1.0.2/extensions/git/commands/speckit.git.validate.md +49 -0
  139. specify_cli-1.0.2/extensions/git/config-template.yml +79 -0
  140. specify_cli-1.0.2/extensions/git/extension.yml +142 -0
  141. specify_cli-1.0.2/extensions/git/git-config.yml +79 -0
  142. specify_cli-1.0.2/extensions/git/scripts/bash/auto-commit.sh +211 -0
  143. specify_cli-1.0.2/extensions/git/scripts/bash/create-new-feature-branch.sh +626 -0
  144. specify_cli-1.0.2/extensions/git/scripts/bash/git-common.sh +56 -0
  145. specify_cli-1.0.2/extensions/git/scripts/bash/initialize-repo.sh +54 -0
  146. specify_cli-1.0.2/extensions/git/scripts/powershell/auto-commit.ps1 +230 -0
  147. specify_cli-1.0.2/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +592 -0
  148. specify_cli-1.0.2/extensions/git/scripts/powershell/git-common.ps1 +52 -0
  149. specify_cli-1.0.2/extensions/git/scripts/powershell/initialize-repo.ps1 +69 -0
  150. specify_cli-1.0.2/extensions/git/scripts/python/auto_commit.py +195 -0
  151. specify_cli-1.0.2/extensions/git/scripts/python/create_new_feature_branch.py +634 -0
  152. specify_cli-1.0.2/extensions/git/scripts/python/git_common.py +81 -0
  153. specify_cli-1.0.2/extensions/git/scripts/python/initialize_repo.py +89 -0
  154. specify_cli-1.0.2/extensions/selftest/commands/selftest.md +69 -0
  155. specify_cli-1.0.2/extensions/selftest/extension.yml +16 -0
  156. specify_cli-1.0.2/extensions/template/.gitignore +39 -0
  157. specify_cli-1.0.2/extensions/template/CHANGELOG.md +39 -0
  158. specify_cli-1.0.2/extensions/template/EXAMPLE-README.md +158 -0
  159. specify_cli-1.0.2/extensions/template/LICENSE +21 -0
  160. specify_cli-1.0.2/extensions/template/README.md +79 -0
  161. specify_cli-1.0.2/extensions/template/commands/example.md +210 -0
  162. specify_cli-1.0.2/extensions/template/config-template.yml +75 -0
  163. specify_cli-1.0.2/extensions/template/extension.yml +113 -0
  164. specify_cli-1.0.2/integrations/CONTRIBUTING.md +142 -0
  165. specify_cli-1.0.2/integrations/README.md +129 -0
  166. specify_cli-1.0.2/integrations/catalog.community.json +6 -0
  167. specify_cli-1.0.2/integrations/catalog.json +349 -0
  168. specify_cli-1.0.2/media/logo_large.webp +0 -0
  169. specify_cli-1.0.2/newsletters/2026-April.md +147 -0
  170. specify_cli-1.0.2/newsletters/2026-February.md +54 -0
  171. specify_cli-1.0.2/newsletters/2026-July.md +152 -0
  172. specify_cli-1.0.2/newsletters/2026-June.md +156 -0
  173. specify_cli-1.0.2/newsletters/2026-March.md +78 -0
  174. specify_cli-1.0.2/newsletters/2026-May.md +138 -0
  175. specify_cli-1.0.2/presets/ARCHITECTURE.md +187 -0
  176. specify_cli-1.0.2/presets/PUBLISHING.md +363 -0
  177. specify_cli-1.0.2/presets/README.md +168 -0
  178. specify_cli-1.0.2/presets/catalog.community.json +969 -0
  179. specify_cli-1.0.2/presets/catalog.json +53 -0
  180. specify_cli-1.0.2/presets/constitution-sync/README.md +135 -0
  181. specify_cli-1.0.2/presets/constitution-sync/commands/speckit.constitution.md +54 -0
  182. specify_cli-1.0.2/presets/constitution-sync/preset.yml +30 -0
  183. specify_cli-1.0.2/presets/lean/README.md +45 -0
  184. specify_cli-1.0.2/presets/lean/commands/speckit.constitution.md +33 -0
  185. specify_cli-1.0.2/presets/lean/commands/speckit.implement.md +22 -0
  186. specify_cli-1.0.2/presets/lean/commands/speckit.plan.md +19 -0
  187. specify_cli-1.0.2/presets/lean/commands/speckit.specify.md +23 -0
  188. specify_cli-1.0.2/presets/lean/commands/speckit.tasks.md +19 -0
  189. specify_cli-1.0.2/presets/lean/preset.yml +51 -0
  190. specify_cli-1.0.2/presets/scaffold/README.md +46 -0
  191. specify_cli-1.0.2/presets/scaffold/commands/speckit.myext.myextcmd.md +20 -0
  192. specify_cli-1.0.2/presets/scaffold/commands/speckit.specify.md +23 -0
  193. specify_cli-1.0.2/presets/scaffold/preset.yml +120 -0
  194. specify_cli-1.0.2/presets/scaffold/templates/myext-template.md +24 -0
  195. specify_cli-1.0.2/presets/scaffold/templates/spec-template.md +18 -0
  196. specify_cli-1.0.2/presets/self-test/commands/speckit.specify.md +15 -0
  197. specify_cli-1.0.2/presets/self-test/commands/speckit.wrap-test.md +14 -0
  198. specify_cli-1.0.2/presets/self-test/preset.yml +60 -0
  199. specify_cli-1.0.2/presets/self-test/templates/checklist-template.md +15 -0
  200. specify_cli-1.0.2/presets/self-test/templates/constitution-template.md +15 -0
  201. specify_cli-1.0.2/presets/self-test/templates/plan-template.md +22 -0
  202. specify_cli-1.0.2/presets/self-test/templates/spec-template.md +23 -0
  203. specify_cli-1.0.2/presets/self-test/templates/tasks-template.md +17 -0
  204. specify_cli-1.0.2/pyproject.toml +90 -0
  205. {specify_cli-1.0.0 → specify_cli-1.0.2}/scripts/bash/check-prerequisites.sh +87 -23
  206. specify_cli-1.0.2/scripts/bash/common.sh +918 -0
  207. specify_cli-1.0.2/scripts/bash/create-new-feature.sh +407 -0
  208. specify_cli-1.0.2/scripts/bash/resolve-template.sh +57 -0
  209. specify_cli-1.0.2/scripts/bash/setup-plan.sh +85 -0
  210. specify_cli-1.0.2/scripts/bash/setup-tasks.sh +94 -0
  211. {specify_cli-1.0.0 → specify_cli-1.0.2}/scripts/powershell/check-prerequisites.ps1 +55 -29
  212. specify_cli-1.0.2/scripts/powershell/common.ps1 +796 -0
  213. specify_cli-1.0.2/scripts/powershell/create-new-feature.ps1 +319 -0
  214. specify_cli-1.0.2/scripts/powershell/resolve-template.ps1 +38 -0
  215. specify_cli-1.0.2/scripts/powershell/setup-plan.ps1 +83 -0
  216. specify_cli-1.0.2/scripts/powershell/setup-tasks.ps1 +93 -0
  217. specify_cli-1.0.2/scripts/python/check_prerequisites.py +275 -0
  218. specify_cli-1.0.2/scripts/python/common.py +554 -0
  219. specify_cli-1.0.2/scripts/python/create_new_feature.py +441 -0
  220. specify_cli-1.0.2/scripts/python/resolve_template.py +63 -0
  221. specify_cli-1.0.2/scripts/python/setup_plan.py +97 -0
  222. specify_cli-1.0.2/scripts/python/setup_tasks.py +175 -0
  223. {specify_cli-1.0.0 → specify_cli-1.0.2}/spec-driven.md +7 -1
  224. specify_cli-1.0.2/spec-kit.code-workspace +8 -0
  225. specify_cli-1.0.2/src/specify_cli/__init__.py +601 -0
  226. specify_cli-1.0.2/src/specify_cli/_agent_config.py +56 -0
  227. specify_cli-1.0.2/src/specify_cli/_assets.py +121 -0
  228. specify_cli-1.0.2/src/specify_cli/_console.py +273 -0
  229. specify_cli-1.0.2/src/specify_cli/_download_security.py +1275 -0
  230. specify_cli-1.0.2/src/specify_cli/_github_http.py +201 -0
  231. specify_cli-1.0.2/src/specify_cli/_init_options.py +83 -0
  232. specify_cli-1.0.2/src/specify_cli/_invocation_style.py +80 -0
  233. specify_cli-1.0.2/src/specify_cli/_project.py +53 -0
  234. specify_cli-1.0.2/src/specify_cli/_toml_string.py +60 -0
  235. specify_cli-1.0.2/src/specify_cli/_utils.py +336 -0
  236. specify_cli-1.0.2/src/specify_cli/_version.py +1447 -0
  237. specify_cli-1.0.2/src/specify_cli/agents.py +1360 -0
  238. specify_cli-1.0.2/src/specify_cli/authentication/__init__.py +50 -0
  239. specify_cli-1.0.2/src/specify_cli/authentication/azure_devops.py +188 -0
  240. specify_cli-1.0.2/src/specify_cli/authentication/base.py +57 -0
  241. specify_cli-1.0.2/src/specify_cli/authentication/config.py +240 -0
  242. specify_cli-1.0.2/src/specify_cli/authentication/github.py +24 -0
  243. specify_cli-1.0.2/src/specify_cli/authentication/http.py +223 -0
  244. specify_cli-1.0.2/src/specify_cli/bundler/__init__.py +19 -0
  245. specify_cli-1.0.2/src/specify_cli/bundler/commands_impl/__init__.py +2 -0
  246. specify_cli-1.0.2/src/specify_cli/bundler/commands_impl/catalog_config.py +232 -0
  247. specify_cli-1.0.2/src/specify_cli/bundler/lib/__init__.py +2 -0
  248. specify_cli-1.0.2/src/specify_cli/bundler/lib/project.py +102 -0
  249. specify_cli-1.0.2/src/specify_cli/bundler/lib/versioning.py +99 -0
  250. specify_cli-1.0.2/src/specify_cli/bundler/lib/yamlio.py +202 -0
  251. specify_cli-1.0.2/src/specify_cli/bundler/models/__init__.py +2 -0
  252. specify_cli-1.0.2/src/specify_cli/bundler/models/catalog.py +323 -0
  253. specify_cli-1.0.2/src/specify_cli/bundler/models/manifest.py +290 -0
  254. specify_cli-1.0.2/src/specify_cli/bundler/models/records.py +239 -0
  255. specify_cli-1.0.2/src/specify_cli/bundler/services/__init__.py +2 -0
  256. specify_cli-1.0.2/src/specify_cli/bundler/services/adapters.py +244 -0
  257. specify_cli-1.0.2/src/specify_cli/bundler/services/catalog_stack.py +122 -0
  258. specify_cli-1.0.2/src/specify_cli/bundler/services/conflict.py +54 -0
  259. specify_cli-1.0.2/src/specify_cli/bundler/services/installer.py +257 -0
  260. specify_cli-1.0.2/src/specify_cli/bundler/services/packager.py +153 -0
  261. specify_cli-1.0.2/src/specify_cli/bundler/services/primitives.py +444 -0
  262. specify_cli-1.0.2/src/specify_cli/bundler/services/references.py +127 -0
  263. specify_cli-1.0.2/src/specify_cli/bundler/services/resolver.py +132 -0
  264. specify_cli-1.0.2/src/specify_cli/bundler/services/validator.py +60 -0
  265. specify_cli-1.0.2/src/specify_cli/catalogs.py +197 -0
  266. specify_cli-1.0.2/src/specify_cli/commands/__init__.py +7 -0
  267. specify_cli-1.0.2/src/specify_cli/commands/bundle/__init__.py +1103 -0
  268. specify_cli-1.0.2/src/specify_cli/commands/event.py +61 -0
  269. specify_cli-1.0.2/src/specify_cli/commands/init.py +1153 -0
  270. specify_cli-1.0.2/src/specify_cli/events.py +2579 -0
  271. specify_cli-1.0.2/src/specify_cli/extensions/__init__.py +5393 -0
  272. specify_cli-1.0.2/src/specify_cli/extensions/_commands.py +2782 -0
  273. specify_cli-1.0.2/src/specify_cli/integration_runtime.py +113 -0
  274. specify_cli-1.0.2/src/specify_cli/integration_scaffold.py +281 -0
  275. specify_cli-1.0.2/src/specify_cli/integration_state.py +252 -0
  276. specify_cli-1.0.2/src/specify_cli/integration_status.py +663 -0
  277. specify_cli-1.0.2/src/specify_cli/integrations/__init__.py +130 -0
  278. specify_cli-1.0.2/src/specify_cli/integrations/_commands.py +35 -0
  279. specify_cli-1.0.2/src/specify_cli/integrations/_helpers.py +549 -0
  280. specify_cli-1.0.2/src/specify_cli/integrations/_install_commands.py +329 -0
  281. specify_cli-1.0.2/src/specify_cli/integrations/_migrate_commands.py +903 -0
  282. specify_cli-1.0.2/src/specify_cli/integrations/_query_commands.py +573 -0
  283. specify_cli-1.0.2/src/specify_cli/integrations/_scaffold_commands.py +54 -0
  284. specify_cli-1.0.2/src/specify_cli/integrations/agy/__init__.py +130 -0
  285. specify_cli-1.0.2/src/specify_cli/integrations/alquimia/__init__.py +189 -0
  286. specify_cli-1.0.2/src/specify_cli/integrations/amp/__init__.py +20 -0
  287. specify_cli-1.0.2/src/specify_cli/integrations/auggie/__init__.py +21 -0
  288. specify_cli-1.0.2/src/specify_cli/integrations/base.py +1827 -0
  289. specify_cli-1.0.2/src/specify_cli/integrations/bob/__init__.py +283 -0
  290. specify_cli-1.0.2/src/specify_cli/integrations/catalog.py +878 -0
  291. specify_cli-1.0.2/src/specify_cli/integrations/claude/__init__.py +239 -0
  292. specify_cli-1.0.2/src/specify_cli/integrations/cline/__init__.py +184 -0
  293. specify_cli-1.0.2/src/specify_cli/integrations/codebuddy/__init__.py +21 -0
  294. specify_cli-1.0.2/src/specify_cli/integrations/codex/__init__.py +72 -0
  295. specify_cli-1.0.2/src/specify_cli/integrations/command_code/__init__.py +41 -0
  296. specify_cli-1.0.2/src/specify_cli/integrations/copilot/__init__.py +659 -0
  297. specify_cli-1.0.2/src/specify_cli/integrations/cursor_agent/__init__.py +123 -0
  298. specify_cli-1.0.2/src/specify_cli/integrations/devin/__init__.py +91 -0
  299. specify_cli-1.0.2/src/specify_cli/integrations/droid/__init__.py +135 -0
  300. specify_cli-1.0.2/src/specify_cli/integrations/firebender/__init__.py +32 -0
  301. specify_cli-1.0.2/src/specify_cli/integrations/forge/__init__.py +218 -0
  302. specify_cli-1.0.2/src/specify_cli/integrations/gemini/__init__.py +49 -0
  303. specify_cli-1.0.2/src/specify_cli/integrations/generic/__init__.py +147 -0
  304. specify_cli-1.0.2/src/specify_cli/integrations/goose/__init__.py +103 -0
  305. specify_cli-1.0.2/src/specify_cli/integrations/grok/__init__.py +60 -0
  306. specify_cli-1.0.2/src/specify_cli/integrations/hermes/__init__.py +307 -0
  307. specify_cli-1.0.2/src/specify_cli/integrations/junie/__init__.py +178 -0
  308. specify_cli-1.0.2/src/specify_cli/integrations/kilocode/__init__.py +22 -0
  309. specify_cli-1.0.2/src/specify_cli/integrations/kimi/__init__.py +380 -0
  310. specify_cli-1.0.2/src/specify_cli/integrations/kiro_cli/__init__.py +36 -0
  311. specify_cli-1.0.2/src/specify_cli/integrations/lingma/__init__.py +41 -0
  312. specify_cli-1.0.2/src/specify_cli/integrations/manifest.py +522 -0
  313. specify_cli-1.0.2/src/specify_cli/integrations/omp/__init__.py +45 -0
  314. specify_cli-1.0.2/src/specify_cli/integrations/opencode/__init__.py +67 -0
  315. specify_cli-1.0.2/src/specify_cli/integrations/pi/__init__.py +21 -0
  316. specify_cli-1.0.2/src/specify_cli/integrations/qodercli/__init__.py +28 -0
  317. specify_cli-1.0.2/src/specify_cli/integrations/qwen/__init__.py +44 -0
  318. specify_cli-1.0.2/src/specify_cli/integrations/rovodev/__init__.py +248 -0
  319. specify_cli-1.0.2/src/specify_cli/integrations/shai/__init__.py +21 -0
  320. specify_cli-1.0.2/src/specify_cli/integrations/tabnine/__init__.py +47 -0
  321. specify_cli-1.0.2/src/specify_cli/integrations/trae/__init__.py +40 -0
  322. specify_cli-1.0.2/src/specify_cli/integrations/vibe/__init__.py +196 -0
  323. specify_cli-1.0.2/src/specify_cli/integrations/zcode/__init__.py +42 -0
  324. specify_cli-1.0.2/src/specify_cli/integrations/zed/__init__.py +33 -0
  325. specify_cli-1.0.2/src/specify_cli/presets/__init__.py +5927 -0
  326. specify_cli-1.0.2/src/specify_cli/presets/_commands.py +869 -0
  327. specify_cli-1.0.2/src/specify_cli/shared_infra.py +765 -0
  328. specify_cli-1.0.2/src/specify_cli/workflows/__init__.py +211 -0
  329. specify_cli-1.0.2/src/specify_cli/workflows/_commands.py +3880 -0
  330. specify_cli-1.0.2/src/specify_cli/workflows/base.py +146 -0
  331. specify_cli-1.0.2/src/specify_cli/workflows/catalog.py +1501 -0
  332. specify_cli-1.0.2/src/specify_cli/workflows/engine.py +1788 -0
  333. specify_cli-1.0.2/src/specify_cli/workflows/expressions.py +1213 -0
  334. specify_cli-1.0.2/src/specify_cli/workflows/overlays/__init__.py +95 -0
  335. specify_cli-1.0.2/src/specify_cli/workflows/overlays/_commands.py +452 -0
  336. specify_cli-1.0.2/src/specify_cli/workflows/overlays/composer.py +97 -0
  337. specify_cli-1.0.2/src/specify_cli/workflows/overlays/layer_sources.py +250 -0
  338. specify_cli-1.0.2/src/specify_cli/workflows/overlays/merge.py +407 -0
  339. specify_cli-1.0.2/src/specify_cli/workflows/overlays/schema.py +181 -0
  340. specify_cli-1.0.2/src/specify_cli/workflows/steps/__init__.py +1 -0
  341. specify_cli-1.0.2/src/specify_cli/workflows/steps/command/__init__.py +279 -0
  342. specify_cli-1.0.2/src/specify_cli/workflows/steps/do_while/__init__.py +139 -0
  343. specify_cli-1.0.2/src/specify_cli/workflows/steps/fan_in/__init__.py +132 -0
  344. specify_cli-1.0.2/src/specify_cli/workflows/steps/fan_out/__init__.py +107 -0
  345. specify_cli-1.0.2/src/specify_cli/workflows/steps/gate/__init__.py +340 -0
  346. specify_cli-1.0.2/src/specify_cli/workflows/steps/if_then/__init__.py +129 -0
  347. specify_cli-1.0.2/src/specify_cli/workflows/steps/init/__init__.py +321 -0
  348. specify_cli-1.0.2/src/specify_cli/workflows/steps/prompt/__init__.py +301 -0
  349. specify_cli-1.0.2/src/specify_cli/workflows/steps/shell/__init__.py +169 -0
  350. specify_cli-1.0.2/src/specify_cli/workflows/steps/switch/__init__.py +141 -0
  351. specify_cli-1.0.2/src/specify_cli/workflows/steps/while_loop/__init__.py +148 -0
  352. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/checklist-template.md +11 -6
  353. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/commands/analyze.md +75 -7
  354. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/commands/checklist.md +95 -13
  355. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/commands/clarify.md +126 -19
  356. specify_cli-1.0.2/templates/commands/constitution.md +177 -0
  357. specify_cli-1.0.2/templates/commands/converge.md +273 -0
  358. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/commands/implement.md +101 -17
  359. specify_cli-1.0.2/templates/commands/plan.md +170 -0
  360. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/commands/specify.md +142 -58
  361. specify_cli-1.0.2/templates/commands/tasks.md +219 -0
  362. specify_cli-1.0.2/templates/commands/taskstoissues.md +106 -0
  363. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/plan-template.md +23 -14
  364. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/spec-template.md +21 -5
  365. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/tasks-template.md +6 -5
  366. {specify_cli-1.0.0 → specify_cli-1.0.2}/templates/vscode-settings.json +0 -1
  367. specify_cli-1.0.2/tests/__init__.py +1 -0
  368. specify_cli-1.0.2/tests/auth_helpers.py +21 -0
  369. specify_cli-1.0.2/tests/bundler_helpers.py +125 -0
  370. specify_cli-1.0.2/tests/conftest.py +166 -0
  371. specify_cli-1.0.2/tests/contract/test_bundle_cli.py +1074 -0
  372. specify_cli-1.0.2/tests/contract/test_catalog_schema.py +323 -0
  373. specify_cli-1.0.2/tests/contract/test_manifest_schema.py +225 -0
  374. specify_cli-1.0.2/tests/contract/test_wheel_bundled_presets.py +53 -0
  375. specify_cli-1.0.2/tests/contract/test_wheel_core_pack_scripts.py +40 -0
  376. specify_cli-1.0.2/tests/extensions/__init__.py +1 -0
  377. specify_cli-1.0.2/tests/extensions/assess/__init__.py +0 -0
  378. specify_cli-1.0.2/tests/extensions/assess/test_assess_extension.py +124 -0
  379. specify_cli-1.0.2/tests/extensions/bug/__init__.py +0 -0
  380. specify_cli-1.0.2/tests/extensions/bug/test_bug_extension.py +113 -0
  381. specify_cli-1.0.2/tests/extensions/git/__init__.py +1 -0
  382. specify_cli-1.0.2/tests/extensions/git/test_git_extension.py +2082 -0
  383. specify_cli-1.0.2/tests/extensions/git/test_git_extension_python_parity.py +673 -0
  384. specify_cli-1.0.2/tests/extensions/test_agent_context_cli_free.py +57 -0
  385. specify_cli-1.0.2/tests/extensions/test_extension_agent_context.py +989 -0
  386. specify_cli-1.0.2/tests/extensions/test_update_agent_context_feature_json.py +210 -0
  387. specify_cli-1.0.2/tests/extensions/test_update_agent_context_python_parity.py +564 -0
  388. specify_cli-1.0.2/tests/hooks/TESTING.md +30 -0
  389. specify_cli-1.0.2/tests/hooks/plan.md +3 -0
  390. specify_cli-1.0.2/tests/hooks/spec.md +1 -0
  391. specify_cli-1.0.2/tests/hooks/tasks.md +1 -0
  392. specify_cli-1.0.2/tests/http_helpers.py +46 -0
  393. specify_cli-1.0.2/tests/integration/test_bundler_catalog_stack.py +141 -0
  394. specify_cli-1.0.2/tests/integration/test_bundler_init_install.py +106 -0
  395. specify_cli-1.0.2/tests/integration/test_bundler_install_flow.py +506 -0
  396. specify_cli-1.0.2/tests/integration/test_bundler_local_install.py +311 -0
  397. specify_cli-1.0.2/tests/integration/test_bundler_offline.py +97 -0
  398. specify_cli-1.0.2/tests/integration/test_bundler_security_paths.py +236 -0
  399. specify_cli-1.0.2/tests/integrations/__init__.py +0 -0
  400. specify_cli-1.0.2/tests/integrations/conftest.py +58 -0
  401. specify_cli-1.0.2/tests/integrations/test_base.py +721 -0
  402. specify_cli-1.0.2/tests/integrations/test_cli.py +3066 -0
  403. specify_cli-1.0.2/tests/integrations/test_events.py +2774 -0
  404. specify_cli-1.0.2/tests/integrations/test_extra_args.py +676 -0
  405. specify_cli-1.0.2/tests/integrations/test_home_isolation.py +25 -0
  406. specify_cli-1.0.2/tests/integrations/test_integration_agy.py +154 -0
  407. specify_cli-1.0.2/tests/integrations/test_integration_alquimia.py +702 -0
  408. specify_cli-1.0.2/tests/integrations/test_integration_amp.py +10 -0
  409. specify_cli-1.0.2/tests/integrations/test_integration_auggie.py +10 -0
  410. specify_cli-1.0.2/tests/integrations/test_integration_base_markdown.py +315 -0
  411. specify_cli-1.0.2/tests/integrations/test_integration_base_skills.py +577 -0
  412. specify_cli-1.0.2/tests/integrations/test_integration_base_toml.py +601 -0
  413. specify_cli-1.0.2/tests/integrations/test_integration_base_yaml.py +515 -0
  414. specify_cli-1.0.2/tests/integrations/test_integration_bob.py +927 -0
  415. specify_cli-1.0.2/tests/integrations/test_integration_catalog.py +1950 -0
  416. specify_cli-1.0.2/tests/integrations/test_integration_claude.py +956 -0
  417. specify_cli-1.0.2/tests/integrations/test_integration_cline.py +226 -0
  418. specify_cli-1.0.2/tests/integrations/test_integration_codebuddy.py +21 -0
  419. specify_cli-1.0.2/tests/integrations/test_integration_codex.py +193 -0
  420. specify_cli-1.0.2/tests/integrations/test_integration_command_code.py +47 -0
  421. specify_cli-1.0.2/tests/integrations/test_integration_copilot.py +978 -0
  422. specify_cli-1.0.2/tests/integrations/test_integration_cursor_agent.py +233 -0
  423. specify_cli-1.0.2/tests/integrations/test_integration_devin.py +74 -0
  424. specify_cli-1.0.2/tests/integrations/test_integration_droid.py +276 -0
  425. specify_cli-1.0.2/tests/integrations/test_integration_firebender.py +44 -0
  426. specify_cli-1.0.2/tests/integrations/test_integration_forge.py +518 -0
  427. specify_cli-1.0.2/tests/integrations/test_integration_gemini.py +10 -0
  428. specify_cli-1.0.2/tests/integrations/test_integration_generic.py +424 -0
  429. specify_cli-1.0.2/tests/integrations/test_integration_goose.py +183 -0
  430. specify_cli-1.0.2/tests/integrations/test_integration_grok.py +187 -0
  431. specify_cli-1.0.2/tests/integrations/test_integration_hermes.py +390 -0
  432. specify_cli-1.0.2/tests/integrations/test_integration_junie.py +229 -0
  433. specify_cli-1.0.2/tests/integrations/test_integration_kilocode.py +76 -0
  434. specify_cli-1.0.2/tests/integrations/test_integration_kimi.py +404 -0
  435. specify_cli-1.0.2/tests/integrations/test_integration_kiro_cli.py +151 -0
  436. specify_cli-1.0.2/tests/integrations/test_integration_lingma.py +18 -0
  437. specify_cli-1.0.2/tests/integrations/test_integration_omp.py +36 -0
  438. specify_cli-1.0.2/tests/integrations/test_integration_opencode.py +199 -0
  439. specify_cli-1.0.2/tests/integrations/test_integration_pi.py +18 -0
  440. specify_cli-1.0.2/tests/integrations/test_integration_qodercli.py +39 -0
  441. specify_cli-1.0.2/tests/integrations/test_integration_qwen.py +10 -0
  442. specify_cli-1.0.2/tests/integrations/test_integration_rovodev.py +295 -0
  443. specify_cli-1.0.2/tests/integrations/test_integration_scaffold.py +238 -0
  444. specify_cli-1.0.2/tests/integrations/test_integration_shai.py +10 -0
  445. specify_cli-1.0.2/tests/integrations/test_integration_state.py +114 -0
  446. specify_cli-1.0.2/tests/integrations/test_integration_subcommand.py +4499 -0
  447. specify_cli-1.0.2/tests/integrations/test_integration_tabnine.py +10 -0
  448. specify_cli-1.0.2/tests/integrations/test_integration_trae.py +10 -0
  449. specify_cli-1.0.2/tests/integrations/test_integration_vibe.py +336 -0
  450. specify_cli-1.0.2/tests/integrations/test_integration_zcode.py +36 -0
  451. specify_cli-1.0.2/tests/integrations/test_integration_zed.py +167 -0
  452. specify_cli-1.0.2/tests/integrations/test_manifest.py +578 -0
  453. specify_cli-1.0.2/tests/integrations/test_registry.py +311 -0
  454. specify_cli-1.0.2/tests/integrations/test_skill_frontmatter_quoting.py +243 -0
  455. specify_cli-1.0.2/tests/parity_helpers.py +194 -0
  456. specify_cli-1.0.2/tests/self_upgrade_helpers.py +65 -0
  457. specify_cli-1.0.2/tests/test_agent_config_consistency.py +441 -0
  458. specify_cli-1.0.2/tests/test_authentication.py +1475 -0
  459. specify_cli-1.0.2/tests/test_branch_numbering.py +24 -0
  460. specify_cli-1.0.2/tests/test_check_prerequisites_paths_only.py +519 -0
  461. specify_cli-1.0.2/tests/test_check_prerequisites_python_parity.py +601 -0
  462. specify_cli-1.0.2/tests/test_check_tool.py +149 -0
  463. specify_cli-1.0.2/tests/test_cli_version.py +79 -0
  464. specify_cli-1.0.2/tests/test_command_template_py_scripts.py +232 -0
  465. specify_cli-1.0.2/tests/test_commands_package.py +100 -0
  466. specify_cli-1.0.2/tests/test_console_imports.py +107 -0
  467. specify_cli-1.0.2/tests/test_create_new_feature_python_parity.py +1067 -0
  468. specify_cli-1.0.2/tests/test_download_security.py +1435 -0
  469. specify_cli-1.0.2/tests/test_event_command.py +145 -0
  470. specify_cli-1.0.2/tests/test_extension_add_path_traversal.py +401 -0
  471. specify_cli-1.0.2/tests/test_extension_registration.py +497 -0
  472. specify_cli-1.0.2/tests/test_extension_skills.py +3587 -0
  473. specify_cli-1.0.2/tests/test_extension_update_hardening.py +2225 -0
  474. specify_cli-1.0.2/tests/test_extensions.py +11636 -0
  475. specify_cli-1.0.2/tests/test_github_http.py +445 -0
  476. specify_cli-1.0.2/tests/test_github_workflows.py +169 -0
  477. specify_cli-1.0.2/tests/test_init_dir.py +605 -0
  478. specify_cli-1.0.2/tests/test_init_dir_cli.py +294 -0
  479. specify_cli-1.0.2/tests/test_init_output_markup.py +176 -0
  480. specify_cli-1.0.2/tests/test_live_transient_windows.py +93 -0
  481. specify_cli-1.0.2/tests/test_merge.py +240 -0
  482. specify_cli-1.0.2/tests/test_post_process.py +302 -0
  483. specify_cli-1.0.2/tests/test_presets.py +14015 -0
  484. specify_cli-1.0.2/tests/test_ps1_encoding.py +54 -0
  485. specify_cli-1.0.2/tests/test_registrar_path_traversal.py +425 -0
  486. specify_cli-1.0.2/tests/test_resolve_template_python_parity.py +753 -0
  487. specify_cli-1.0.2/tests/test_security_workflow.py +365 -0
  488. specify_cli-1.0.2/tests/test_self_upgrade_detection.py +888 -0
  489. specify_cli-1.0.2/tests/test_self_upgrade_execution.py +543 -0
  490. specify_cli-1.0.2/tests/test_self_upgrade_guidance.py +185 -0
  491. specify_cli-1.0.2/tests/test_self_upgrade_verification.py +670 -0
  492. specify_cli-1.0.2/tests/test_setup_plan_feature_json.py +262 -0
  493. specify_cli-1.0.2/tests/test_setup_plan_no_overwrite.py +272 -0
  494. specify_cli-1.0.2/tests/test_setup_plan_python_parity.py +374 -0
  495. specify_cli-1.0.2/tests/test_setup_tasks.py +1042 -0
  496. specify_cli-1.0.2/tests/test_setup_tasks_python_parity.py +270 -0
  497. specify_cli-1.0.2/tests/test_shared_infra_gitignore.py +103 -0
  498. specify_cli-1.0.2/tests/test_shared_infra_integrity.py +101 -0
  499. specify_cli-1.0.2/tests/test_skill_placeholder_py.py +152 -0
  500. specify_cli-1.0.2/tests/test_specify_template_numbering.py +39 -0
  501. specify_cli-1.0.2/tests/test_timestamp_branches.py +1432 -0
  502. specify_cli-1.0.2/tests/test_upgrade.py +449 -0
  503. specify_cli-1.0.2/tests/test_utils.py +21 -0
  504. specify_cli-1.0.2/tests/test_utils_assets_imports.py +19 -0
  505. specify_cli-1.0.2/tests/test_version_imports.py +40 -0
  506. specify_cli-1.0.2/tests/test_workflow_run_without_project.py +408 -0
  507. specify_cli-1.0.2/tests/test_workflows.py +17182 -0
  508. specify_cli-1.0.2/tests/unit/test_bundle_download_url.py +162 -0
  509. specify_cli-1.0.2/tests/unit/test_bundler_adapters.py +203 -0
  510. specify_cli-1.0.2/tests/unit/test_bundler_catalog_config.py +315 -0
  511. specify_cli-1.0.2/tests/unit/test_bundler_conflict.py +54 -0
  512. specify_cli-1.0.2/tests/unit/test_bundler_packager.py +236 -0
  513. specify_cli-1.0.2/tests/unit/test_bundler_primitives.py +336 -0
  514. specify_cli-1.0.2/tests/unit/test_bundler_records.py +211 -0
  515. specify_cli-1.0.2/tests/unit/test_bundler_references.py +112 -0
  516. specify_cli-1.0.2/tests/unit/test_bundler_resolver.py +107 -0
  517. specify_cli-1.0.2/tests/unit/test_bundler_validator.py +32 -0
  518. specify_cli-1.0.2/tests/unit/test_bundler_versioning.py +68 -0
  519. specify_cli-1.0.2/tests/unit/test_bundler_yamlio.py +58 -0
  520. specify_cli-1.0.2/tests/unit/test_condition_expression_block.py +758 -0
  521. specify_cli-1.0.2/tests/workflows/conftest.py +26 -0
  522. specify_cli-1.0.2/tests/workflows/test_overlay_commands.py +895 -0
  523. specify_cli-1.0.2/tests/workflows/test_overlay_composer.py +153 -0
  524. specify_cli-1.0.2/tests/workflows/test_overlay_layer_sources.py +327 -0
  525. specify_cli-1.0.2/tests/workflows/test_overlay_merge.py +735 -0
  526. specify_cli-1.0.2/tests/workflows/test_overlay_schema.py +315 -0
  527. specify_cli-1.0.2/tests/workflows/test_overlay_security.py +321 -0
  528. specify_cli-1.0.2/tests/workflows/test_resolver_integration.py +567 -0
  529. specify_cli-1.0.2/workflows/ARCHITECTURE.md +214 -0
  530. specify_cli-1.0.2/workflows/PUBLISHING.md +298 -0
  531. specify_cli-1.0.2/workflows/README.md +486 -0
  532. specify_cli-1.0.2/workflows/catalog.community.json +50 -0
  533. specify_cli-1.0.2/workflows/catalog.json +16 -0
  534. specify_cli-1.0.2/workflows/speckit/workflow.yml +78 -0
  535. specify_cli-1.0.2/workflows/step-catalog.community.json +6 -0
  536. specify_cli-1.0.2/workflows/step-catalog.json +6 -0
  537. specify_cli-1.0.0/.gitattributes +0 -1
  538. specify_cli-1.0.0/.github/CODEOWNERS +0 -3
  539. specify_cli-1.0.0/.github/workflows/lint.yml +0 -20
  540. specify_cli-1.0.0/.github/workflows/pypi.yml +0 -45
  541. specify_cli-1.0.0/.github/workflows/release.yml +0 -60
  542. specify_cli-1.0.0/.github/workflows/scripts/check-release-exists.sh +0 -21
  543. specify_cli-1.0.0/.github/workflows/scripts/create-github-release.sh +0 -54
  544. specify_cli-1.0.0/.github/workflows/scripts/create-release-packages.ps1 +0 -424
  545. specify_cli-1.0.0/.github/workflows/scripts/create-release-packages.sh +0 -273
  546. specify_cli-1.0.0/.github/workflows/scripts/generate-release-notes.sh +0 -40
  547. specify_cli-1.0.0/.github/workflows/scripts/get-next-version.sh +0 -24
  548. specify_cli-1.0.0/.github/workflows/scripts/update-version.sh +0 -23
  549. specify_cli-1.0.0/.gitignore +0 -46
  550. specify_cli-1.0.0/AGENTS.md +0 -413
  551. specify_cli-1.0.0/CHANGELOG.md +0 -183
  552. specify_cli-1.0.0/CONTRIBUTING.md +0 -150
  553. specify_cli-1.0.0/PKG-INFO +0 -12
  554. specify_cli-1.0.0/README.md +0 -654
  555. specify_cli-1.0.0/SUPPORT.md +0 -19
  556. specify_cli-1.0.0/docs/installation.md +0 -92
  557. specify_cli-1.0.0/docs/quickstart.md +0 -164
  558. specify_cli-1.0.0/docs/toc.yml +0 -19
  559. specify_cli-1.0.0/docs/upgrade.md +0 -444
  560. specify_cli-1.0.0/pyproject.toml +0 -24
  561. specify_cli-1.0.0/scripts/bash/common.sh +0 -156
  562. specify_cli-1.0.0/scripts/bash/create-new-feature.sh +0 -297
  563. specify_cli-1.0.0/scripts/bash/setup-plan.sh +0 -61
  564. specify_cli-1.0.0/scripts/bash/update-agent-context.sh +0 -799
  565. specify_cli-1.0.0/scripts/powershell/common.ps1 +0 -137
  566. specify_cli-1.0.0/scripts/powershell/create-new-feature.ps1 +0 -283
  567. specify_cli-1.0.0/scripts/powershell/setup-plan.ps1 +0 -61
  568. specify_cli-1.0.0/scripts/powershell/update-agent-context.ps1 +0 -448
  569. specify_cli-1.0.0/src/specify_cli/__init__.py +0 -1369
  570. specify_cli-1.0.0/templates/agent-file-template.md +0 -28
  571. specify_cli-1.0.0/templates/commands/constitution.md +0 -82
  572. specify_cli-1.0.0/templates/commands/plan.md +0 -95
  573. specify_cli-1.0.0/templates/commands/tasks.md +0 -140
  574. specify_cli-1.0.0/templates/commands/taskstoissues.md +0 -33
  575. {specify_cli-1.0.0 → specify_cli-1.0.2}/CODE_OF_CONDUCT.md +0 -0
  576. {specify_cli-1.0.0 → specify_cli-1.0.2}/SECURITY.md +0 -0
  577. {specify_cli-1.0.0 → specify_cli-1.0.2}/docs/README.md +0 -0
  578. /specify_cli-1.0.0/media/logo_large.webp → /specify_cli-1.0.2/docs/images/spec-kit-logo.webp +0 -0
  579. {specify_cli-1.0.0 → specify_cli-1.0.2}/media/bootstrap-claude-code.gif +0 -0
  580. {specify_cli-1.0.0 → specify_cli-1.0.2}/media/logo_small.webp +0 -0
  581. {specify_cli-1.0.0 → specify_cli-1.0.2}/media/spec-kit-video-header.jpg +0 -0
  582. {specify_cli-1.0.0 → specify_cli-1.0.2}/media/specify_cli.gif +0 -0
  583. /specify_cli-1.0.0/memory/constitution.md → /specify_cli-1.0.2/templates/constitution-template.md +0 -0
@@ -48,10 +48,6 @@
48
48
  "openai.chatgpt",
49
49
  // Kilo Code
50
50
  "kilocode.Kilo-Code",
51
- // Roo Code
52
- "RooVeterinaryInc.roo-cline",
53
- // Amazon Developer Q
54
- "AmazonWebServices.amazon-q-vscode",
55
51
  // Claude Code
56
52
  "anthropic.claude-code"
57
53
  ],
@@ -69,7 +65,8 @@
69
65
  },
70
66
  "chat.tools.terminal.autoApprove": {
71
67
  ".specify/scripts/bash/": true,
72
- ".specify/scripts/powershell/": true
68
+ ".specify/scripts/powershell/": true,
69
+ ".specify/scripts/python/": true
73
70
  }
74
71
  }
75
72
  }
@@ -8,15 +8,15 @@ run_command() {
8
8
  local command_to_run="$*"
9
9
  local output
10
10
  local exit_code
11
-
11
+
12
12
  # Capture all output (stdout and stderr)
13
13
  output=$(eval "$command_to_run" 2>&1) || exit_code=$?
14
14
  exit_code=${exit_code:-0}
15
-
15
+
16
16
  if [ $exit_code -ne 0 ]; then
17
17
  echo -e "\033[0;31m[ERROR] Command failed (Exit Code $exit_code): $command_to_run\033[0m" >&2
18
18
  echo -e "\033[0;31m$output\033[0m" >&2
19
-
19
+
20
20
  exit $exit_code
21
21
  fi
22
22
  }
@@ -51,38 +51,63 @@ echo -e "\n🤖 Installing OpenCode CLI..."
51
51
  run_command "npm install -g opencode-ai@latest"
52
52
  echo "✅ Done"
53
53
 
54
- echo -e "\n🤖 Installing Amazon Q CLI..."
55
- # 👉🏾 https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-verify-download.html
56
-
57
- run_command "curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip' -o 'q.zip'"
58
- run_command "curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip.sig' -o 'q.zip.sig'"
59
- cat > amazonq-public-key.asc << 'EOF'
60
- -----BEGIN PGP PUBLIC KEY BLOCK-----
61
-
62
- mDMEZig60RYJKwYBBAHaRw8BAQdAy/+G05U5/EOA72WlcD4WkYn5SInri8pc4Z6D
63
- BKNNGOm0JEFtYXpvbiBRIENMSSBUZWFtIDxxLWNsaUBhbWF6b24uY29tPoiZBBMW
64
- CgBBFiEEmvYEF+gnQskUPgPsUNx6jcJMVmcFAmYoOtECGwMFCQPCZwAFCwkIBwIC
65
- IgIGFQoJCAsCBBYCAwECHgcCF4AACgkQUNx6jcJMVmef5QD/QWWEGG/cOnbDnp68
66
- SJXuFkwiNwlH2rPw9ZRIQMnfAS0A/0V6ZsGB4kOylBfc7CNfzRFGtovdBBgHqA6P
67
- zQ/PNscGuDgEZig60RIKKwYBBAGXVQEFAQEHQC4qleONMBCq3+wJwbZSr0vbuRba
68
- D1xr4wUPn4Avn4AnAwEIB4h+BBgWCgAmFiEEmvYEF+gnQskUPgPsUNx6jcJMVmcF
69
- AmYoOtECGwwFCQPCZwAACgkQUNx6jcJMVmchMgEA6l3RveCM0YHAGQaSFMkguoAo
70
- vK6FgOkDawgP0NPIP2oA/jIAO4gsAntuQgMOsPunEdDeji2t+AhV02+DQIsXZpoB
71
- =f8yY
72
- -----END PGP PUBLIC KEY BLOCK-----
73
- EOF
74
- run_command "gpg --batch --import amazonq-public-key.asc"
75
- run_command "gpg --verify q.zip.sig q.zip"
76
- run_command "unzip -q q.zip"
77
- run_command "chmod +x ./q/install.sh"
78
- run_command "./q/install.sh --no-confirm"
79
- run_command "rm -rf ./q q.zip q.zip.sig amazonq-public-key.asc"
54
+ echo -e "\n🤖 Installing Junie CLI..."
55
+ run_command "npm install -g @jetbrains/junie-cli@latest"
56
+ echo "✅ Done"
57
+
58
+ echo -e "\n🤖 Installing Pi Coding Agent..."
59
+ run_command "npm install -g @earendil-works/pi-coding-agent@latest"
60
+ echo "✅ Done"
61
+
62
+ echo -e "\n🤖 Installing Kiro CLI..."
63
+ # https://kiro.dev/docs/cli/
64
+ KIRO_INSTALLER_URL="https://kiro.dev/install.sh"
65
+ KIRO_INSTALLER_SHA256="7487a65cf310b7fb59b357c4b5e6e3f3259d383f4394ecedb39acf70f307cffb"
66
+ KIRO_INSTALLER_PATH="$(mktemp)"
67
+
68
+ cleanup_kiro_installer() {
69
+ rm -f "$KIRO_INSTALLER_PATH"
70
+ }
71
+ trap cleanup_kiro_installer EXIT
72
+
73
+ run_command "curl -fsSL \"$KIRO_INSTALLER_URL\" -o \"$KIRO_INSTALLER_PATH\""
74
+ run_command "echo \"$KIRO_INSTALLER_SHA256 $KIRO_INSTALLER_PATH\" | sha256sum -c -"
75
+
76
+ run_command "bash \"$KIRO_INSTALLER_PATH\""
77
+
78
+ kiro_binary=""
79
+ if command -v kiro-cli >/dev/null 2>&1; then
80
+ kiro_binary="kiro-cli"
81
+ elif command -v kiro >/dev/null 2>&1; then
82
+ kiro_binary="kiro"
83
+ else
84
+ echo -e "\033[0;31m[ERROR] Kiro CLI installation did not create 'kiro-cli' or 'kiro' in PATH.\033[0m" >&2
85
+ exit 1
86
+ fi
87
+
88
+ run_command "$kiro_binary --help > /dev/null"
89
+ echo "✅ Done"
90
+
91
+ echo -e "\n🤖 Installing Kimi Code CLI..."
92
+ # https://code.kimi.com
93
+ run_command "npm install -g @moonshot-ai/kimi-code@latest"
80
94
  echo "✅ Done"
81
95
 
82
96
  echo -e "\n🤖 Installing CodeBuddy CLI..."
83
97
  run_command "npm install -g @tencent-ai/codebuddy-code@latest"
84
98
  echo "✅ Done"
85
99
 
100
+ echo -e "\n🤖 Installing Factory Droid CLI..."
101
+ run_command "npm install -g droid@latest"
102
+
103
+ if ! command -v droid >/dev/null 2>&1; then
104
+ echo -e "\033[0;31m[ERROR] Droid CLI installation did not create 'droid' in PATH.\033[0m" >&2
105
+ exit 1
106
+ fi
107
+
108
+ run_command "droid --version > /dev/null"
109
+ echo "✅ Done"
110
+
86
111
  # Installing UV (Python package manager)
87
112
  echo -e "\n🐍 Installing UV - Python Package Manager..."
88
113
  run_command "pipx install uv"
@@ -0,0 +1,28 @@
1
+ root = true
2
+
3
+ [*]
4
+ end_of_line = lf
5
+ insert_final_newline = true
6
+ trim_trailing_whitespace = true
7
+ charset = utf-8
8
+ indent_style = space
9
+ indent_size = 4
10
+
11
+ [*.{yml,yaml}]
12
+ indent_size = 2
13
+
14
+ [*.{json,jsonc}]
15
+ indent_size = 2
16
+
17
+ [*.md]
18
+ indent_size = 2
19
+ trim_trailing_whitespace = false
20
+
21
+ [*.{sh,bash}]
22
+ indent_size = 4
23
+
24
+ [*.{ps1,psm1,psd1}]
25
+ indent_size = 4
26
+
27
+ [Makefile]
28
+ indent_style = tab
@@ -0,0 +1,7 @@
1
+ * text=auto eol=lf
2
+
3
+ .github/workflows/*.lock.yml linguist-generated=true merge=ours -whitespace
4
+ # The project constitution is the one dogfooding artifact carried forward.
5
+ # Keep it exempt from git's whitespace checks (git diff --check / CI) since its
6
+ # generated formatting is not hand-edited.
7
+ .specify/memory/constitution.md -whitespace
@@ -0,0 +1,7 @@
1
+ # Global code owner
2
+ * @mnriem
3
+
4
+ # Community catalog files — explicit ownership for when global ownership expands
5
+ /extensions/catalog.community.json @mnriem
6
+ /integrations/catalog.community.json @mnriem
7
+ /presets/catalog.community.json @mnriem
@@ -0,0 +1,141 @@
1
+ name: Agent Request
2
+ description: Request support for a new AI agent/assistant in Spec Kit
3
+ title: "[Agent]: Add support for "
4
+ labels: ["agent-request", "enhancement", "needs-triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
10
+
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
+
13
+ - type: input
14
+ id: agent-name
15
+ attributes:
16
+ label: Agent Name
17
+ description: What is the name of the AI agent/assistant?
18
+ placeholder: "e.g., SuperCoder AI"
19
+ validations:
20
+ required: true
21
+
22
+ - type: input
23
+ id: website
24
+ attributes:
25
+ label: Official Website
26
+ description: Link to the agent's official website or documentation
27
+ placeholder: "https://..."
28
+ validations:
29
+ required: true
30
+
31
+ - type: dropdown
32
+ id: agent-type
33
+ attributes:
34
+ label: Agent Type
35
+ description: How is the agent accessed?
36
+ options:
37
+ - CLI tool (command-line interface)
38
+ - IDE extension/plugin
39
+ - Both CLI and IDE
40
+ - Other
41
+ validations:
42
+ required: true
43
+
44
+ - type: input
45
+ id: cli-command
46
+ attributes:
47
+ label: CLI Command (if applicable)
48
+ description: What command is used to invoke the agent from terminal?
49
+ placeholder: "e.g., supercode, ai-assistant"
50
+
51
+ - type: input
52
+ id: install-method
53
+ attributes:
54
+ label: Installation Method
55
+ description: How is the agent installed?
56
+ placeholder: "e.g., npm install -g supercode, pip install supercode, IDE marketplace"
57
+ validations:
58
+ required: true
59
+
60
+ - type: textarea
61
+ id: command-structure
62
+ attributes:
63
+ label: Command/Workflow Structure
64
+ description: How does the agent define custom commands or workflows?
65
+ placeholder: |
66
+ - Command file format (Markdown, YAML, TOML, etc.)
67
+ - Directory location (e.g., .supercode/commands/)
68
+ - Example command file structure
69
+ validations:
70
+ required: true
71
+
72
+ - type: textarea
73
+ id: argument-pattern
74
+ attributes:
75
+ label: Argument Passing Pattern
76
+ description: How does the agent handle arguments in commands?
77
+ placeholder: |
78
+ e.g., Uses {{args}}, $ARGUMENTS, %ARGS%, or other placeholder format
79
+ Example: "Run test suite with {{args}}"
80
+
81
+ - type: dropdown
82
+ id: popularity
83
+ attributes:
84
+ label: Popularity/Usage
85
+ description: How widely is this agent used?
86
+ options:
87
+ - Widely used (thousands+ of users)
88
+ - Growing adoption (hundreds of users)
89
+ - New/emerging (less than 100 users)
90
+ - Unknown
91
+ validations:
92
+ required: true
93
+
94
+ - type: textarea
95
+ id: documentation
96
+ attributes:
97
+ label: Documentation Links
98
+ description: Links to relevant documentation for custom commands/workflows
99
+ placeholder: |
100
+ - Command documentation: https://...
101
+ - API/CLI reference: https://...
102
+ - Examples: https://...
103
+
104
+ - type: textarea
105
+ id: use-case
106
+ attributes:
107
+ label: Use Case
108
+ description: Why do you want this agent supported in Spec Kit?
109
+ placeholder: Explain your workflow and how this agent fits into your development process
110
+ validations:
111
+ required: true
112
+
113
+ - type: textarea
114
+ id: example-command
115
+ attributes:
116
+ label: Example Command File
117
+ description: If possible, provide an example of a command file for this agent
118
+ render: markdown
119
+ placeholder: |
120
+ ```toml
121
+ description = "Example command"
122
+ prompt = "Do something with {{args}}"
123
+ ```
124
+
125
+ - type: checkboxes
126
+ id: contribution
127
+ attributes:
128
+ label: Contribution
129
+ description: Are you willing to help implement support for this agent?
130
+ options:
131
+ - label: I can help test the integration
132
+ - label: I can provide example command files
133
+ - label: I can help with documentation
134
+ - label: I can submit a pull request for the integration
135
+
136
+ - type: textarea
137
+ id: context
138
+ attributes:
139
+ label: Additional Context
140
+ description: Any other relevant information about this agent
141
+ placeholder: Screenshots, community links, comparison to existing agents, etc.
@@ -0,0 +1,137 @@
1
+ name: Bug Report
2
+ description: Report a bug or unexpected behavior in Specify CLI or Spec Kit
3
+ title: "[Bug]: "
4
+ labels: ["bug", "needs-triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to report a bug! Please fill out the sections below to help us diagnose and fix the issue.
10
+
11
+ - type: textarea
12
+ id: description
13
+ attributes:
14
+ label: Bug Description
15
+ description: A clear and concise description of what the bug is.
16
+ placeholder: What went wrong?
17
+ validations:
18
+ required: true
19
+
20
+ - type: textarea
21
+ id: reproduce
22
+ attributes:
23
+ label: Steps to Reproduce
24
+ description: Steps to reproduce the behavior
25
+ placeholder: |
26
+ 1. Run command '...'
27
+ 2. Execute script '...'
28
+ 3. See error
29
+ validations:
30
+ required: true
31
+
32
+ - type: textarea
33
+ id: expected
34
+ attributes:
35
+ label: Expected Behavior
36
+ description: What did you expect to happen?
37
+ placeholder: Describe the expected outcome
38
+ validations:
39
+ required: true
40
+
41
+ - type: textarea
42
+ id: actual
43
+ attributes:
44
+ label: Actual Behavior
45
+ description: What actually happened?
46
+ placeholder: Describe what happened instead
47
+ validations:
48
+ required: true
49
+
50
+ - type: input
51
+ id: version
52
+ attributes:
53
+ label: Specify CLI Version
54
+ description: "Run `specify version` or `pip show spec-kit`"
55
+ placeholder: "e.g., 1.3.0"
56
+ validations:
57
+ required: true
58
+
59
+ - type: dropdown
60
+ id: ai-agent
61
+ attributes:
62
+ label: AI Agent
63
+ description: Which AI agent are you using?
64
+ options:
65
+ - Alquimia AI
66
+ - Amp
67
+ - Antigravity
68
+ - Auggie CLI
69
+ - Claude Code
70
+ - Cline
71
+ - CodeBuddy
72
+ - Codex CLI
73
+ - Command Code
74
+ - Cursor
75
+ - Devin for Terminal
76
+ - Factory Droid
77
+ - Firebender
78
+ - Forge
79
+ - Gemini CLI
80
+ - GitHub Copilot
81
+ - Goose
82
+ - Grok Build
83
+ - Hermes Agent
84
+ - IBM Bob
85
+ - Junie
86
+ - Kilo Code
87
+ - Kimi Code
88
+ - Kiro CLI
89
+ - Lingma
90
+ - Mistral Vibe
91
+ - Oh My Pi
92
+ - opencode
93
+ - Pi Coding Agent
94
+ - Qoder CLI
95
+ - Qwen Code
96
+ - RovoDev ACLI
97
+ - SHAI
98
+ - Tabnine CLI
99
+ - Trae
100
+ - ZCode
101
+ - Zed
102
+ - Not applicable
103
+ validations:
104
+ required: true
105
+
106
+ - type: input
107
+ id: os
108
+ attributes:
109
+ label: Operating System
110
+ description: Your operating system and version
111
+ placeholder: "e.g., macOS 14.2, Ubuntu 22.04, Windows 11"
112
+ validations:
113
+ required: true
114
+
115
+ - type: input
116
+ id: python
117
+ attributes:
118
+ label: Python Version
119
+ description: "Run `python --version` or `python3 --version`"
120
+ placeholder: "e.g., Python 3.11.5"
121
+ validations:
122
+ required: true
123
+
124
+ - type: textarea
125
+ id: logs
126
+ attributes:
127
+ label: Error Logs
128
+ description: Please paste any relevant error messages or logs
129
+ render: shell
130
+ placeholder: Paste error output here
131
+
132
+ - type: textarea
133
+ id: context
134
+ attributes:
135
+ label: Additional Context
136
+ description: Add any other context about the problem
137
+ placeholder: Screenshots, related issues, workarounds attempted, etc.