specify-cli 0.12.14__tar.gz → 0.12.16__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.
- {specify_cli-0.12.14 → specify_cli-0.12.16}/CHANGELOG.md +30 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/PKG-INFO +7 -1
- {specify_cli-0.12.14 → specify_cli-0.12.16}/README.md +6 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/community/extensions.md +3 -1
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/community/presets.md +1 -1
- specify_cli-0.12.16/docs/install/pypi.md +83 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/installation.md +27 -4
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/workflows.md +36 -3
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/toc.yml +2 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/catalog.community.json +98 -8
- specify_cli-0.12.16/extensions/git/scripts/python/auto_commit.py +187 -0
- specify_cli-0.12.16/extensions/git/scripts/python/create_new_feature_branch.py +634 -0
- specify_cli-0.12.16/extensions/git/scripts/python/git_common.py +81 -0
- specify_cli-0.12.16/extensions/git/scripts/python/initialize_repo.py +89 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/catalog.community.json +8 -7
- {specify_cli-0.12.14 → specify_cli-0.12.16}/pyproject.toml +1 -1
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_github_http.py +30 -5
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_init_options.py +1 -1
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/lib/yamlio.py +50 -2
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/installer.py +32 -10
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/commands/init.py +27 -15
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/extensions/__init__.py +65 -1
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/base.py +31 -3
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/presets/__init__.py +212 -1
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/presets/_commands.py +9 -0
- specify_cli-0.12.16/src/specify_cli/workflows/_commands.py +3153 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/base.py +3 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/catalog.py +215 -30
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/engine.py +135 -9
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/expressions.py +46 -5
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/do_while/__init__.py +24 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/shell/__init__.py +9 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/while_loop/__init__.py +26 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/contract/test_bundle_cli.py +39 -11
- specify_cli-0.12.16/tests/extensions/git/test_git_extension_python_parity.py +647 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integration/test_bundler_install_flow.py +208 -2
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_cli.py +12 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_base_markdown.py +1 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_base_skills.py +1 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_base_toml.py +1 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_base_yaml.py +31 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_cline.py +1 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_copilot.py +3 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_generic.py +2 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_extensions.py +132 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_github_http.py +38 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_presets.py +690 -44
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_workflows.py +5499 -59
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/README.md +7 -0
- specify_cli-0.12.14/src/specify_cli/workflows/_commands.py +0 -1729
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.devcontainer/post-create.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.editorconfig +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.gitattributes +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/CODEOWNERS +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/aw/actions-lock.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/dependabot.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/bug-fix.lock.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/bug-fix.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/bug-test.lock.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/bug-test.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/codeql.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/docs.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/lint.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/release.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/stale.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.github/workflows/test.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.gitignore +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.pre-commit-config.yaml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/.zenodo.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/AGENTS.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/CITATION.cff +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/CONTRIBUTING.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/DEVELOPMENT.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/LICENSE +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/SECURITY.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/SUPPORT.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/.gitignore +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/community/bundles.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/community/friends.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/community/overview.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/community/walkthroughs.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/concepts/complex-features.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/concepts/sdd.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/docfx.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/guides/monorepo.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/index.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/install/air-gapped.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/install/one-time.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/install/pipx.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/install/uv.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/local-development.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/quickstart.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/authentication.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/bundles.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/core.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/extensions.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/integrations.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/overview.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/reference/presets.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/template/public/main.css +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/docs/upgrade.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/developer/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/agent-context-defaults.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/bug/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/bug/extension.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/catalog.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/config-template.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/extension.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/git-config.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/selftest/extension.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/.gitignore +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/LICENSE +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/commands/example.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/config-template.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/extensions/template/extension.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/integrations/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/integrations/catalog.community.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/integrations/catalog.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/media/logo_large.webp +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/media/logo_small.webp +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/media/specify_cli.gif +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/newsletters/2026-April.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/newsletters/2026-February.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/newsletters/2026-June.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/newsletters/2026-March.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/newsletters/2026-May.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/ARCHITECTURE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/PUBLISHING.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/catalog.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/lean/preset.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/scaffold/README.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/scaffold/preset.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/preset.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/bash/common.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/bash/create-new-feature.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/powershell/setup-plan.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/python/check_prerequisites.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/scripts/python/common.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/spec-driven.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/spec-kit.code-workspace +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_assets.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_console.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_invocation_style.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_project.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_toml_string.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_utils.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/_version.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/agents.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/lib/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/lib/project.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/lib/versioning.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/models/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/models/catalog.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/models/manifest.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/models/records.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/adapters.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/conflict.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/packager.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/primitives.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/references.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/resolver.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/bundler/services/validator.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/commands/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/commands/bundle/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integration_scaffold.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/_install_commands.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/_migrate_commands.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/_query_commands.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/catalog.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/copilot/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/checklist-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/analyze.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/checklist.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/clarify.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/constitution.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/converge.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/implement.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/plan.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/specify.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/tasks.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/constitution-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/plan-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/spec-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/tasks-template.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/templates/vscode-settings.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/auth_helpers.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/bundler_helpers.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/conftest.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/git/test_git_extension.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/hooks/TESTING.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/hooks/plan.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/hooks/spec.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/hooks/tasks.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/http_helpers.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integration/test_bundler_catalog_stack.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integration/test_bundler_init_install.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integration/test_bundler_local_install.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integration/test_bundler_offline.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integration/test_bundler_security_paths.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/__init__.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/conftest.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_base.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_home_isolation.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_catalog.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_forge.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_scaffold.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_subcommand.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_registry.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/self_upgrade_helpers.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_agent_config_consistency.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_authentication.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_branch_numbering.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_check_prerequisites_python_parity.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_check_tool.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_cli_version.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_command_template_py_scripts.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_commands_package.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_console_imports.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_extension_registration.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_extension_skills.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_extension_update_hardening.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_github_workflows.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_init_dir.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_init_dir_cli.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_merge.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_post_process.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_self_upgrade_detection.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_self_upgrade_execution.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_self_upgrade_guidance.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_self_upgrade_verification.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_setup_plan_no_overwrite.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_setup_tasks.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_upgrade.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_utils.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_version_imports.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/test_workflow_run_without_project.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_adapters.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_catalog_config.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_conflict.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_packager.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_primitives.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_records.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_references.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_resolver.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_validator.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/tests/unit/test_bundler_versioning.py +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/ARCHITECTURE.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/PUBLISHING.md +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/catalog.community.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/catalog.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/step-catalog.community.json +0 -0
- {specify_cli-0.12.14 → specify_cli-0.12.16}/workflows/step-catalog.json +0 -0
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [0.12.16] - 2026-07-15
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- fix(workflows): raise a clear error, not a cryptic crash, on non-string filter args (#3522)
|
|
10
|
+
- feat(workflows): expose workflow source directory to steps (#3469)
|
|
11
|
+
- fix(workflows): fan-out max_concurrency .inf falls back to sequential, not crash (#3521)
|
|
12
|
+
- Update Coding Standards Drift Control extension to v0.4.0 (#3540)
|
|
13
|
+
- fix(presets): seed constitution from preset constitution-template (#3272) (#3276)
|
|
14
|
+
- docs: add PyPI as second supported install route (#3425) (#3516)
|
|
15
|
+
- fix(workflows): fail while/do-while steps on non-list steps instead of crashing (#3519)
|
|
16
|
+
- Add PatchWarden Evidence Pack extension to community catalog (#3514)
|
|
17
|
+
- feat(extensions): port git extension scripts to Python (#3400)
|
|
18
|
+
- chore: release 0.12.15, begin 0.12.16.dev0 development (#3513)
|
|
19
|
+
|
|
20
|
+
## [0.12.15] - 2026-07-14
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Update Autonomous Run Governance preset to v0.1.4 (#3511)
|
|
25
|
+
- fix(workflows): raise catalog error, not raw ValueError, on a malformed catalog URL (#3484)
|
|
26
|
+
- fix(workflows): evaluate 'in'/'not in' safely on a non-iterable right operand (#3447) (#3468)
|
|
27
|
+
- fix: add trailing newline to init-options.json output (#3509)
|
|
28
|
+
- feat(workflows): align workflow CLI with extension command surface (#3419)
|
|
29
|
+
- fix(extensions): stop env-var config leaking across prefix-colliding extension IDs (#3497)
|
|
30
|
+
- fix(integrations): escape control characters in goose recipe YAML renderer (#3384)
|
|
31
|
+
- [extension] Update DocGuard — CDD Enforcement extension to v0.32.0 (#3489)
|
|
32
|
+
- [extension] Add Multi-Repo Branch Sync extension to community catalog (#3411)
|
|
33
|
+
- chore: release 0.12.14, begin 0.12.15.dev0 development (#3506)
|
|
34
|
+
|
|
5
35
|
## [0.12.14] - 2026-07-13
|
|
6
36
|
|
|
7
37
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specify-cli
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.16
|
|
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
|
|
@@ -71,6 +71,12 @@ Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md
|
|
|
71
71
|
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
+
Prefer installing from PyPI? The `specify-cli` package is also published there:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
uv tool install specify-cli
|
|
78
|
+
```
|
|
79
|
+
|
|
74
80
|
See the [Installation Guide](./docs/installation.md) for alternative methods, verification, upgrade, and troubleshooting.
|
|
75
81
|
|
|
76
82
|
### 2. Initialize a project
|
|
@@ -51,6 +51,12 @@ Requires **[uv](https://docs.astral.sh/uv/)** ([install uv](./docs/install/uv.md
|
|
|
51
51
|
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@vX.Y.Z
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
Prefer installing from PyPI? The `specify-cli` package is also published there:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
uv tool install specify-cli
|
|
58
|
+
```
|
|
59
|
+
|
|
54
60
|
See the [Installation Guide](./docs/installation.md) for alternative methods, verification, upgrade, and troubleshooting.
|
|
55
61
|
|
|
56
62
|
### 2. Initialize a project
|
|
@@ -51,7 +51,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
51
51
|
| 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) |
|
|
52
52
|
| 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) |
|
|
53
53
|
| Data Model Diagram | Generates Mermaid ER diagrams from Spec Kit data models after planning | `docs` | Read+Write | [spec-kit-data-model-diagram](https://github.com/benizzio/spec-kit-data-model-diagram) |
|
|
54
|
-
| DocGuard — CDD Enforcement |
|
|
54
|
+
| DocGuard — CDD Enforcement | Doc-integrity engine with MCP server, SARIF output, and zero-LLM core. Validates, scores, and traces documentation against code — 24 validators, stable finding codes, spec-kit hooks. Pure Node.js. | `docs` | Read+Write | [spec-kit-docguard](https://github.com/raccioly/docguard) |
|
|
55
55
|
| EARS Requirements Syntax | Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements | `docs` | Read+Write | [spec-kit-ears](https://github.com/dhruv-15-03/spec-kit-ears) |
|
|
56
56
|
| Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) |
|
|
57
57
|
| 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) |
|
|
@@ -84,12 +84,14 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
84
84
|
| MemoryLint | Evidence-driven instruction drift checker: audits agent memory files for boundary, reality, conflict, and redundancy drift. | `process` | Read+Write | [memorylint](https://github.com/RbBtSn0w/spec-kit-extensions/tree/main/memorylint) |
|
|
85
85
|
| Microsoft 365 Integration | Fetch Teams messages, meeting transcripts, and SharePoint/OneDrive files as local Markdown for spec generation | `integration` | Read+Write | [spec-kit-m365](https://github.com/BenBtg/spec-kit-m365) |
|
|
86
86
|
| Multi-Model Review | Cross-model Spec Kit handoffs for spec authoring, implementation routing, and review. | `process` | Read+Write | [multi-model-review](https://github.com/formin/multi-model-review) |
|
|
87
|
+
| Multi-Repo Branch Sync | Creates the feature branch in affected sub-repositories and git submodules via plan/tasks hooks | `process` | Read+Write | [multi-repo-sync](https://github.com/fyloss/spec-kit-multi-repo-sync) |
|
|
87
88
|
| Multi-Sites Spec Kit | Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support | `process` | Read+Write | [spec-kit-multi-sites](https://github.com/teeyo/spec-kit-multi-sites) |
|
|
88
89
|
| .NET Framework to Modern .NET Migration | Orchestrate end-to-end .NET Framework to modern .NET migration across 7 phases, with SDD lifecycle integration | `process` | Read+Write | [spec-kit-fx-to-net](https://github.com/RogerBestMsft/spec-kit-FxToNet) |
|
|
89
90
|
| Onboard | Contextual onboarding and progressive growth for developers new to spec-kit projects. Explains specs, maps dependencies, validates understanding, and guides the next step | `process` | Read+Write | [spec-kit-onboard](https://github.com/dmux/spec-kit-onboard) |
|
|
90
91
|
| Optimize | Audit and optimize AI governance for context efficiency — token budgets, rule health, interpretability, compression, coherence, and echo detection | `process` | Read+Write | [spec-kit-optimize](https://github.com/sakitA/spec-kit-optimize) |
|
|
91
92
|
| Orchestration Task Context Management | Adds subagent work-unit orchestration to generated Spec Kit task files | `process` | Read+Write | [spec-kit-orchestration-task-context-management](https://github.com/benizzio/spec-kit-orchestration-task-context-management) |
|
|
92
93
|
| OWASP LLM Threat Model | OWASP Top 10 for LLM Applications 2025 threat analysis on agent artifacts | `code` | Read-only | [spec-kit-threatmodel](https://github.com/NaviaSamal/spec-kit-threatmodel) |
|
|
94
|
+
| PatchWarden Evidence Pack | Map Spec Kit tasks into a guarded PatchWarden Goal and export bounded, traceable evidence for an accepted lineage. | `process` | Read+Write | [spec-kit-patchwarden](https://github.com/jiezeng2004-design/spec-kit-patchwarden) |
|
|
93
95
|
| Plan Review Gate | Require spec.md and plan.md to be merged via MR/PR before allowing task generation | `process` | Read-only | [spec-kit-plan-review-gate](https://github.com/luno/spec-kit-plan-review-gate) |
|
|
94
96
|
| PR Bridge | Auto-generate pull request descriptions, checklists, and summaries from spec artifacts | `process` | Read-only | [spec-kit-pr-bridge-](https://github.com/Quratulain-bilal/spec-kit-pr-bridge-) |
|
|
95
97
|
| Presetify | Create and validate presets and preset catalogs | `process` | Read+Write | [presetify](https://github.com/mnriem/spec-kit-extensions/tree/main/presetify) |
|
|
@@ -11,7 +11,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
|
|
|
11
11
|
| Agent Parity Governance | Adds shared-guidance parity, audit-ready Spec-Kit run evidence, and agent-neutral model-routing guidance across a project's declared AI-agent instruction surfaces so agent guidance does not drift. | 6 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 software architecture, STRIDE+CAPEC threat modeling, arc42 security cross-cutting concepts, S-ADRs, Zero Trust applicability, OWASP SAMM governance, BSI C3A cloud autonomy, BSI C5 cloud compliance assurance, and audit-ready Spec Kit run evidence | 13 templates, 3 commands | — | [spec-kit-preset-architecture-governance](https://github.com/hindermath/spec-kit-preset-architecture-governance) |
|
|
14
|
-
| Autonomous Run Governance | Adds permission-bounded, evidence-first governance for autonomous Spec Kit delivery, convergence, resume, closeout, and retrospective learning. |
|
|
14
|
+
| Autonomous Run Governance | Adds permission-bounded, evidence-first governance for autonomous Spec Kit delivery, convergence, resume, closeout, and retrospective learning. | 12 templates, 2 commands, 2 scripts | — | [spec-kit-preset-autonomous-run-governance](https://github.com/hindermath/spec-kit-preset-autonomous-run-governance) |
|
|
15
15
|
| Canon Core | Adapts original Spec Kit workflow to work together with Canon extension | 2 templates, 8 commands | — | [spec-kit-canon](https://github.com/maximiliamus/spec-kit-canon) |
|
|
16
16
|
| Claude AskUserQuestion | Upgrades `/speckit.clarify` and `/speckit.checklist` on Claude Code from Markdown-table prompts to the native AskUserQuestion picker, with a recommended option and reasoning on every question | 2 commands | — | [spec-kit-preset-claude-ask-questions](https://github.com/0xrafasec/spec-kit-preset-claude-ask-questions) |
|
|
17
17
|
| Command Density | Compacts the nine core Spec Kit command prompts while preserving scripts, handoffs, placeholders, hook output blocks, and rule structure | 9 commands | — | [spec-kit-preset-command-density](https://github.com/Xopoko/spec-kit-preset-command-density) |
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Installing from PyPI
|
|
2
|
+
|
|
3
|
+
Spec Kit is published to PyPI as [`specify-cli`](https://pypi.org/project/specify-cli/), maintained by the Spec Kit maintainers. Installing from PyPI is the second supported install route alongside installing from the [GitHub source](../installation.md#install-from-source--persistent-installation-recommended). Use whichever fits your workflow — both provide the same `specify` CLI.
|
|
4
|
+
|
|
5
|
+
> [!NOTE]
|
|
6
|
+
> The PyPI release version tracks the GitHub release tags (for example, PyPI `0.12.11` corresponds to the `v0.12.11` tag). `specify version` is only a local version/runtime sanity check — it reports the installed version but not where the `specify` executable came from, so it cannot distinguish a PyPI install from a Git install. To confirm the install source, inspect the source metadata your package manager records: `pipx list --json` reports the exact install specification for each tool, and for uv/pip installs you can check the package's [PEP 610](https://peps.python.org/pep-0610/) `direct_url.json` inside its `*.dist-info` directory (a Git or URL install records the repository/archive URL there, while a plain PyPI index install does not create that file). Note that `pip show specify-cli` only prints package metadata and will not see uv/pipx-managed environments from the host interpreter.
|
|
7
|
+
|
|
8
|
+
## Install Specify CLI
|
|
9
|
+
|
|
10
|
+
Use whichever Python tool you already have:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Using uv (recommended)
|
|
14
|
+
uv tool install specify-cli
|
|
15
|
+
|
|
16
|
+
# Or using pipx
|
|
17
|
+
pipx install specify-cli
|
|
18
|
+
|
|
19
|
+
# Or using pip
|
|
20
|
+
pip install specify-cli
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Install a specific release
|
|
24
|
+
|
|
25
|
+
Pin an exact version for reproducible installs (check [PyPI](https://pypi.org/project/specify-cli/#history) or [Releases](https://github.com/github/spec-kit/releases) for available versions):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Using uv
|
|
29
|
+
uv tool install specify-cli==0.12.11
|
|
30
|
+
|
|
31
|
+
# Or using pipx
|
|
32
|
+
pipx install specify-cli==0.12.11
|
|
33
|
+
|
|
34
|
+
# Or using pip
|
|
35
|
+
pip install specify-cli==0.12.11
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Verify
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
specify version
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Initialize a project
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
specify init <PROJECT_NAME> --integration copilot
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Upgrade
|
|
51
|
+
|
|
52
|
+
Upgrade by reinstalling the package through the same tool you used for the original install. If you originally pinned a version, note that `uv tool upgrade` preserves that pin; to move to the newest PyPI release, use an unpinned install command so you do not keep the existing version pin:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Using uv
|
|
56
|
+
uv tool install --force specify-cli
|
|
57
|
+
|
|
58
|
+
# Or using pipx
|
|
59
|
+
pipx install --force specify-cli
|
|
60
|
+
|
|
61
|
+
# Or using pip
|
|
62
|
+
pip install --upgrade specify-cli
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
> [!NOTE]
|
|
66
|
+
> `specify self upgrade` currently rebuilds `uv tool` and `pipx` installs from the GitHub source release URL rather than preserving a PyPI-based installation. If you want to stay on the PyPI route, use the package-manager commands above. A plain `pip install specify-cli` is treated as an unmanaged install — upgrade it with `pip install --upgrade specify-cli`. See the [Upgrade Guide](../upgrade.md) for details.
|
|
67
|
+
|
|
68
|
+
## Uninstall
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Using uv
|
|
72
|
+
uv tool uninstall specify-cli
|
|
73
|
+
|
|
74
|
+
# Or using pipx
|
|
75
|
+
pipx uninstall specify-cli
|
|
76
|
+
|
|
77
|
+
# Or using pip
|
|
78
|
+
pip uninstall specify-cli
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Next steps
|
|
82
|
+
|
|
83
|
+
Head to the [Quick Start](../quickstart.md) to initialize your first project.
|
|
@@ -11,9 +11,14 @@
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
> [!IMPORTANT]
|
|
14
|
-
>
|
|
14
|
+
> Spec Kit is distributed through two official channels, both published and maintained by the Spec Kit maintainers: the [github/spec-kit](https://github.com/github/spec-kit) GitHub repository (source installs) and the [`specify-cli`](https://pypi.org/project/specify-cli/) package on [PyPI](https://pypi.org/project/specify-cli/). Either route is supported for normal installs — use the commands shown below. After installing, run `specify version` as a local version/runtime sanity check. It confirms that the `specify` command is available and reports its version, but it does not prove whether the executable came from PyPI or GitHub. For offline or air-gapped environments, locally built wheels created from this repository are also valid.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Spec Kit supports two install routes:
|
|
17
|
+
|
|
18
|
+
1. **Install from source (GitHub)** — the recommended route, pinned to a release tag.
|
|
19
|
+
2. **Install from PyPI** — install the published `specify-cli` package with your usual Python tooling.
|
|
20
|
+
|
|
21
|
+
### Install from Source — Persistent Installation (Recommended)
|
|
17
22
|
|
|
18
23
|
Install once and use everywhere. Replace `vX.Y.Z` with a release tag from [Releases](https://github.com/github/spec-kit/releases) — keep the leading `v` (for example, `v0.12.11`, not `0.12.11`):
|
|
19
24
|
|
|
@@ -30,12 +35,30 @@ Then initialize a project:
|
|
|
30
35
|
specify init <PROJECT_NAME> --integration copilot
|
|
31
36
|
```
|
|
32
37
|
|
|
38
|
+
### Install from PyPI
|
|
39
|
+
|
|
40
|
+
Spec Kit is also published to PyPI as [`specify-cli`](https://pypi.org/project/specify-cli/), so you can install it with your preferred Python package manager without referencing the Git URL:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Using uv (recommended)
|
|
44
|
+
uv tool install specify-cli
|
|
45
|
+
|
|
46
|
+
# Or using pipx
|
|
47
|
+
pipx install specify-cli
|
|
48
|
+
|
|
49
|
+
# Or using pip
|
|
50
|
+
pip install specify-cli
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
To install a specific release, pin the version — for example `uv tool install specify-cli==0.12.11`. See the [PyPI installation guide](install/pypi.md) for details, including how to upgrade.
|
|
54
|
+
|
|
33
55
|
### One-time Usage
|
|
34
56
|
|
|
35
57
|
Run directly without installing — see the [One-time usage (uvx)](install/one-time.md) guide.
|
|
36
58
|
|
|
37
59
|
### Alternative Package Managers
|
|
38
60
|
|
|
61
|
+
- **PyPI** — see the [PyPI installation guide](install/pypi.md)
|
|
39
62
|
- **pipx** — see the [pipx installation guide](install/pipx.md)
|
|
40
63
|
- **Enterprise / Air-Gapped** — see the [air-gapped installation guide](install/air-gapped.md)
|
|
41
64
|
|
|
@@ -81,13 +104,13 @@ specify init <project_name> --integration claude --ignore-agent-tools
|
|
|
81
104
|
|
|
82
105
|
## Verification
|
|
83
106
|
|
|
84
|
-
After installation, run the following command
|
|
107
|
+
After installation, run the following command as a local version/runtime check:
|
|
85
108
|
|
|
86
109
|
```bash
|
|
87
110
|
specify version
|
|
88
111
|
```
|
|
89
112
|
|
|
90
|
-
This
|
|
113
|
+
This confirms that the `specify` command is available and reporting the expected version. It does not prove whether that executable came from PyPI or GitHub.
|
|
91
114
|
|
|
92
115
|
**Stay current:** Run `specify self check` periodically to learn whether a newer release is available — it is read-only and never modifies your installation. When you are ready to upgrade, follow the [Upgrade Guide](./upgrade.md).
|
|
93
116
|
|
|
@@ -86,8 +86,30 @@ Lists workflows installed in the current project.
|
|
|
86
86
|
specify workflow add <source>
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
| Option | Description |
|
|
90
|
+
| --------------- | ------------------------------------------------------ |
|
|
91
|
+
| `--dev` | Install from a local workflow YAML file or directory |
|
|
92
|
+
| `--from <url>` | Install from a custom URL (`<source>` names the expected workflow ID) |
|
|
93
|
+
|
|
89
94
|
Installs a workflow from the catalog, a URL (HTTPS required), or a local file path.
|
|
90
95
|
|
|
96
|
+
## Update Workflows
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
specify workflow update [workflow_id]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Updates one installed catalog workflow — or all of them when no ID is given — to the latest catalog version. Prompts for confirmation and keeps the installed copy if a download or validation fails.
|
|
103
|
+
|
|
104
|
+
## Enable or Disable a Workflow
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
specify workflow enable <workflow_id>
|
|
108
|
+
specify workflow disable <workflow_id>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Disabled workflows stay installed and listed (marked `[disabled]`) but refuse to run until re-enabled.
|
|
112
|
+
|
|
91
113
|
## Remove a Workflow
|
|
92
114
|
|
|
93
115
|
```bash
|
|
@@ -102,9 +124,10 @@ Removes an installed workflow from the project.
|
|
|
102
124
|
specify workflow search [query]
|
|
103
125
|
```
|
|
104
126
|
|
|
105
|
-
| Option
|
|
106
|
-
|
|
|
107
|
-
| `--tag`
|
|
127
|
+
| Option | Description |
|
|
128
|
+
| ---------- | ----------------- |
|
|
129
|
+
| `--tag` | Filter by tag |
|
|
130
|
+
| `--author` | Filter by author |
|
|
108
131
|
|
|
109
132
|
Searches all active catalogs for workflows matching the query.
|
|
110
133
|
|
|
@@ -282,6 +305,8 @@ Steps can reference inputs and previous step outputs using `{{ expression }}` sy
|
|
|
282
305
|
| `inputs.spec` | Workflow input values |
|
|
283
306
|
| `steps.specify.output.file` | Output from a previous step |
|
|
284
307
|
| `item` | Current item in a fan-out iteration |
|
|
308
|
+
| `context.run_id` | Current workflow run ID |
|
|
309
|
+
| `context.workflow_dir` | Resolved absolute path to the workflow source directory. Empty string for string-loaded workflows. |
|
|
285
310
|
|
|
286
311
|
Available filters: `default`, `join`, `contains`, `map`, `from_json`.
|
|
287
312
|
|
|
@@ -293,6 +318,14 @@ args: "{{ inputs.spec }}"
|
|
|
293
318
|
message: "{{ status | default('pending') }}"
|
|
294
319
|
```
|
|
295
320
|
|
|
321
|
+
## Shell Step Environment Variables
|
|
322
|
+
|
|
323
|
+
Shell steps automatically receive the following environment variables:
|
|
324
|
+
|
|
325
|
+
| Variable | Description |
|
|
326
|
+
| -------- | ----------- |
|
|
327
|
+
| `SPECKIT_WORKFLOW_DIR` | Resolved absolute path to the workflow source directory (same value as `{{ context.workflow_dir }}`). Not set when the workflow has no source path. |
|
|
328
|
+
|
|
296
329
|
## Input Types
|
|
297
330
|
|
|
298
331
|
| Type | Coercion |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-07-
|
|
3
|
+
"updated_at": "2026-07-15T00:00:00Z",
|
|
4
4
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
|
5
5
|
"extensions": {
|
|
6
6
|
"aide": {
|
|
@@ -809,8 +809,8 @@
|
|
|
809
809
|
"id": "coding-standards-drift-control",
|
|
810
810
|
"description": "Generate coding-standards drift reports and remediation tasks for active Spec Kit features",
|
|
811
811
|
"author": "Igor Benicio de Mesquita",
|
|
812
|
-
"version": "0.
|
|
813
|
-
"download_url": "https://github.com/benizzio/spec-kit-coding-standards-drift-control/archive/refs/tags/v0.
|
|
812
|
+
"version": "0.4.0",
|
|
813
|
+
"download_url": "https://github.com/benizzio/spec-kit-coding-standards-drift-control/archive/refs/tags/v0.4.0.zip",
|
|
814
814
|
"repository": "https://github.com/benizzio/spec-kit-coding-standards-drift-control",
|
|
815
815
|
"homepage": "https://github.com/benizzio/spec-kit-coding-standards-drift-control",
|
|
816
816
|
"documentation": "https://github.com/benizzio/spec-kit-coding-standards-drift-control#readme",
|
|
@@ -835,7 +835,7 @@
|
|
|
835
835
|
"downloads": 0,
|
|
836
836
|
"stars": 0,
|
|
837
837
|
"created_at": "2026-06-11T00:00:00Z",
|
|
838
|
-
"updated_at": "2026-
|
|
838
|
+
"updated_at": "2026-07-15T00:00:00Z"
|
|
839
839
|
},
|
|
840
840
|
"companion": {
|
|
841
841
|
"name": "SpecKit Companion",
|
|
@@ -1106,10 +1106,10 @@
|
|
|
1106
1106
|
"docguard": {
|
|
1107
1107
|
"name": "DocGuard — CDD Enforcement",
|
|
1108
1108
|
"id": "docguard",
|
|
1109
|
-
"description": "
|
|
1109
|
+
"description": "Doc-integrity engine with MCP server, SARIF output, and zero-LLM core. Validates, scores, and traces documentation against code — 24 validators, stable finding codes, spec-kit hooks. Pure Node.js.",
|
|
1110
1110
|
"author": "raccioly",
|
|
1111
|
-
"version": "0.
|
|
1112
|
-
"download_url": "https://github.com/raccioly/docguard/releases/download/v0.
|
|
1111
|
+
"version": "0.32.0",
|
|
1112
|
+
"download_url": "https://github.com/raccioly/docguard/releases/download/v0.32.0/spec-kit-docguard-v0.32.0.zip",
|
|
1113
1113
|
"repository": "https://github.com/raccioly/docguard",
|
|
1114
1114
|
"homepage": "https://www.npmjs.com/package/docguard-cli",
|
|
1115
1115
|
"documentation": "https://github.com/raccioly/docguard/blob/main/extensions/spec-kit-docguard/README.md",
|
|
@@ -1124,6 +1124,14 @@
|
|
|
1124
1124
|
"name": "node",
|
|
1125
1125
|
"version": ">=18.0.0",
|
|
1126
1126
|
"required": true
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"name": "npx",
|
|
1130
|
+
"required": true
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"name": "specify",
|
|
1134
|
+
"required": false
|
|
1127
1135
|
}
|
|
1128
1136
|
]
|
|
1129
1137
|
},
|
|
@@ -1145,7 +1153,7 @@
|
|
|
1145
1153
|
"downloads": 0,
|
|
1146
1154
|
"stars": 0,
|
|
1147
1155
|
"created_at": "2026-03-13T00:00:00Z",
|
|
1148
|
-
"updated_at": "2026-07-
|
|
1156
|
+
"updated_at": "2026-07-13T00:00:00Z"
|
|
1149
1157
|
},
|
|
1150
1158
|
"doctor": {
|
|
1151
1159
|
"name": "Project Health Check",
|
|
@@ -2458,6 +2466,48 @@
|
|
|
2458
2466
|
"created_at": "2026-05-04T02:51:52Z",
|
|
2459
2467
|
"updated_at": "2026-06-18T00:00:00Z"
|
|
2460
2468
|
},
|
|
2469
|
+
"multi-repo-sync": {
|
|
2470
|
+
"name": "Multi-Repo Branch Sync",
|
|
2471
|
+
"id": "multi-repo-sync",
|
|
2472
|
+
"description": "Creates the feature branch in affected sub-repositories and git submodules via plan/tasks hooks",
|
|
2473
|
+
"author": "Fyloss",
|
|
2474
|
+
"version": "1.0.0",
|
|
2475
|
+
"download_url": "https://github.com/fyloss/spec-kit-multi-repo-sync/releases/download/v1.0.0/spec-kit-multi-repo-sync.zip",
|
|
2476
|
+
"sha256": "12a5c7392145b4424b20715aaa3d8b6a8218c143dea596873e344146c1a76ba0",
|
|
2477
|
+
"repository": "https://github.com/fyloss/spec-kit-multi-repo-sync",
|
|
2478
|
+
"homepage": "https://github.com/fyloss/spec-kit-multi-repo-sync",
|
|
2479
|
+
"documentation": "https://github.com/fyloss/spec-kit-multi-repo-sync/blob/main/README.md",
|
|
2480
|
+
"changelog": "https://github.com/fyloss/spec-kit-multi-repo-sync/blob/main/CHANGELOG.md",
|
|
2481
|
+
"license": "MIT",
|
|
2482
|
+
"category": "process",
|
|
2483
|
+
"effect": "read-write",
|
|
2484
|
+
"requires": {
|
|
2485
|
+
"speckit_version": ">=0.2.0",
|
|
2486
|
+
"tools": [
|
|
2487
|
+
{
|
|
2488
|
+
"name": "git",
|
|
2489
|
+
"version": ">=2.31",
|
|
2490
|
+
"required": true
|
|
2491
|
+
}
|
|
2492
|
+
]
|
|
2493
|
+
},
|
|
2494
|
+
"provides": {
|
|
2495
|
+
"commands": 3,
|
|
2496
|
+
"hooks": 2
|
|
2497
|
+
},
|
|
2498
|
+
"tags": [
|
|
2499
|
+
"git",
|
|
2500
|
+
"branching",
|
|
2501
|
+
"multi-repo",
|
|
2502
|
+
"submodules",
|
|
2503
|
+
"workflow"
|
|
2504
|
+
],
|
|
2505
|
+
"verified": false,
|
|
2506
|
+
"downloads": 0,
|
|
2507
|
+
"stars": 0,
|
|
2508
|
+
"created_at": "2026-07-13T00:00:00Z",
|
|
2509
|
+
"updated_at": "2026-07-13T00:00:00Z"
|
|
2510
|
+
},
|
|
2461
2511
|
"multi-sites": {
|
|
2462
2512
|
"name": "Multi-Sites Spec Kit",
|
|
2463
2513
|
"id": "multi-sites",
|
|
@@ -2627,6 +2677,46 @@
|
|
|
2627
2677
|
"created_at": "2026-04-24T14:00:00Z",
|
|
2628
2678
|
"updated_at": "2026-04-24T14:00:00Z"
|
|
2629
2679
|
},
|
|
2680
|
+
"patchwarden-evidence": {
|
|
2681
|
+
"name": "PatchWarden Evidence Pack",
|
|
2682
|
+
"id": "patchwarden-evidence",
|
|
2683
|
+
"description": "Map Spec Kit tasks into a guarded PatchWarden Goal and export bounded, traceable evidence for an accepted lineage.",
|
|
2684
|
+
"author": "Zengjie",
|
|
2685
|
+
"version": "1.0.1",
|
|
2686
|
+
"download_url": "https://github.com/jiezeng2004-design/spec-kit-patchwarden/archive/refs/tags/v1.0.1.zip",
|
|
2687
|
+
"repository": "https://github.com/jiezeng2004-design/spec-kit-patchwarden",
|
|
2688
|
+
"homepage": "https://github.com/jiezeng2004-design/spec-kit-patchwarden",
|
|
2689
|
+
"documentation": "https://github.com/jiezeng2004-design/spec-kit-patchwarden/blob/main/README.md",
|
|
2690
|
+
"changelog": "https://github.com/jiezeng2004-design/spec-kit-patchwarden/blob/main/CHANGELOG.md",
|
|
2691
|
+
"license": "MIT",
|
|
2692
|
+
"category": "process",
|
|
2693
|
+
"effect": "read-write",
|
|
2694
|
+
"requires": {
|
|
2695
|
+
"speckit_version": ">=0.1.0",
|
|
2696
|
+
"tools": [
|
|
2697
|
+
{
|
|
2698
|
+
"name": "patchwarden",
|
|
2699
|
+
"version": ">=1.5.1",
|
|
2700
|
+
"required": true
|
|
2701
|
+
}
|
|
2702
|
+
]
|
|
2703
|
+
},
|
|
2704
|
+
"provides": {
|
|
2705
|
+
"commands": 2,
|
|
2706
|
+
"hooks": 2
|
|
2707
|
+
},
|
|
2708
|
+
"tags": [
|
|
2709
|
+
"verification",
|
|
2710
|
+
"evidence",
|
|
2711
|
+
"traceability",
|
|
2712
|
+
"security"
|
|
2713
|
+
],
|
|
2714
|
+
"verified": false,
|
|
2715
|
+
"downloads": 0,
|
|
2716
|
+
"stars": 0,
|
|
2717
|
+
"created_at": "2026-07-14T00:00:00Z",
|
|
2718
|
+
"updated_at": "2026-07-14T00:00:00Z"
|
|
2719
|
+
},
|
|
2630
2720
|
"plan-review-gate": {
|
|
2631
2721
|
"name": "Plan Review Gate",
|
|
2632
2722
|
"id": "plan-review-gate",
|