specify-cli 0.12.0__tar.gz → 0.12.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.
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/lint.yml +13 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/test.yml +3 -3
- {specify_cli-0.12.0 → specify_cli-0.12.2}/AGENTS.md +11 -11
- {specify_cli-0.12.0 → specify_cli-0.12.2}/CHANGELOG.md +31 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/PKG-INFO +2 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/README.md +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/community/extensions.md +3 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/index.md +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/installation.md +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/integrations.md +77 -7
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/upgrade.md +5 -5
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/agent-context-defaults.json +0 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/scripts/bash/update-agent-context.sh +14 -7
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/catalog.community.json +51 -11
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/bash/create-new-feature-branch.sh +4 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/bash/initialize-repo.sh +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +4 -3
- {specify_cli-0.12.0 → specify_cli-0.12.2}/integrations/catalog.json +0 -18
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/ARCHITECTURE.md +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/catalog.community.json +5 -5
- {specify_cli-0.12.0 → specify_cli-0.12.2}/pyproject.toml +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/bash/check-prerequisites.sh +8 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/bash/common.sh +14 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/bash/create-new-feature.sh +5 -3
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/powershell/check-prerequisites.ps1 +8 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/powershell/common.ps1 +12 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/powershell/setup-plan.ps1 +8 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_console.py +4 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/catalogs.py +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/commands/bundle/__init__.py +4 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/__init__.py +0 -4
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/goose/__init__.py +2 -2
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/presets/__init__.py +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/base.py +7 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/engine.py +289 -54
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/contract/test_bundle_cli.py +15 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/git/test_git_extension.py +4 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_catalog.py +6 -5
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_devin.py +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_forge.py +8 -8
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_registry.py +1 -1
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_agent_config_consistency.py +0 -24
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_check_prerequisites_paths_only.py +121 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_presets.py +6 -5
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_setup_plan_no_overwrite.py +24 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_workflows.py +206 -2
- specify_cli-0.12.0/src/specify_cli/integrations/iflow/__init__.py +0 -21
- specify_cli-0.12.0/src/specify_cli/integrations/windsurf/__init__.py +0 -21
- specify_cli-0.12.0/tests/integrations/test_integration_iflow.py +0 -10
- specify_cli-0.12.0/tests/integrations/test_integration_windsurf.py +0 -10
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.devcontainer/post-create.sh +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.editorconfig +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.gitattributes +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/CODEOWNERS +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/aw/actions-lock.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/dependabot.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/codeql.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/docs.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/release.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.github/workflows/stale.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.gitignore +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/.zenodo.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/CITATION.cff +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/CONTRIBUTING.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/DEVELOPMENT.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/LICENSE +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/SECURITY.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/SUPPORT.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/.gitignore +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/community/bundles.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/community/friends.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/community/overview.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/community/presets.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/community/walkthroughs.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/concepts/complex-features.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/concepts/sdd.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/docfx.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/guides/monorepo.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/install/air-gapped.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/install/one-time.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/install/pipx.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/install/uv.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/local-development.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/quickstart.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/authentication.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/bundles.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/core.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/extensions.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/overview.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/presets.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/reference/workflows.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/template/public/main.css +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/docs/toc.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/developer/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/bug/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/bug/extension.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/catalog.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/config-template.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/extension.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/git-config.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/selftest/extension.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/.gitignore +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/LICENSE +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/commands/example.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/config-template.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/extensions/template/extension.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/integrations/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/integrations/catalog.community.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/media/logo_large.webp +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/media/logo_small.webp +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/media/specify_cli.gif +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/newsletters/2026-April.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/newsletters/2026-February.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/newsletters/2026-March.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/newsletters/2026-May.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/PUBLISHING.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/catalog.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/lean/preset.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/scaffold/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/scaffold/preset.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/preset.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/templates/agent-file-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/spec-driven.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/spec-kit.code-workspace +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_assets.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_github_http.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_invocation_style.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_utils.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/_version.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/agents.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/lib/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/lib/project.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/lib/versioning.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/lib/yamlio.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/models/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/models/catalog.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/models/manifest.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/models/records.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/adapters.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/conflict.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/installer.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/packager.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/primitives.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/references.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/resolver.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/bundler/services/validator.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/commands/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/commands/init.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integration_scaffold.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/_install_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/_migrate_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/_query_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/base.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/catalog.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/copilot/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/roo/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/catalog.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/expressions.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/checklist-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/analyze.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/checklist.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/clarify.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/constitution.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/converge.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/implement.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/plan.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/specify.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/tasks.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/constitution-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/plan-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/spec-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/tasks-template.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/templates/vscode-settings.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/auth_helpers.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/bundler_helpers.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/conftest.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/hooks/TESTING.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/hooks/plan.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/hooks/spec.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/hooks/tasks.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/http_helpers.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integration/test_bundler_catalog_stack.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integration/test_bundler_init_install.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integration/test_bundler_install_flow.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integration/test_bundler_local_install.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integration/test_bundler_offline.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integration/test_bundler_security_paths.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/__init__.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/conftest.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_base.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_cli.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_base_yaml.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_cline.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_copilot.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_roo.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_scaffold.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_subcommand.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/self_upgrade_helpers.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_authentication.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_branch_numbering.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_check_tool.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_cli_version.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_commands_package.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_console_imports.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_extension_registration.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_extension_skills.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_extension_update_hardening.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_extensions.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_github_http.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_github_workflows.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_init_dir.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_merge.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_self_upgrade_detection.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_self_upgrade_execution.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_self_upgrade_guidance.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_self_upgrade_verification.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_setup_tasks.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_upgrade.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_utils.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_version_imports.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/test_workflow_run_without_project.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_adapters.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_catalog_config.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_conflict.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_packager.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_primitives.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_records.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_references.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_resolver.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_validator.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/tests/unit/test_bundler_versioning.py +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/ARCHITECTURE.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/PUBLISHING.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/README.md +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/catalog.community.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/catalog.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/step-catalog.community.json +0 -0
- {specify_cli-0.12.0 → specify_cli-0.12.2}/workflows/step-catalog.json +0 -0
|
@@ -8,7 +8,7 @@ body:
|
|
|
8
8
|
value: |
|
|
9
9
|
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
|
|
10
10
|
|
|
11
|
-
**Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob,
|
|
11
|
+
**Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, 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, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
|
|
12
12
|
|
|
13
13
|
- type: input
|
|
14
14
|
id: agent-name
|
|
@@ -54,3 +54,16 @@ jobs:
|
|
|
54
54
|
# (notably SC2155). Tighten in a follow-up after cleanup.
|
|
55
55
|
- name: Run shellcheck on shell scripts
|
|
56
56
|
run: git ls-files -z -- '*.sh' | xargs -0 shellcheck --severity=error
|
|
57
|
+
|
|
58
|
+
# macOS ships bash 3.2, where bash 4+ case-modification parameter
|
|
59
|
+
# expansions error with "bad substitution". shellcheck assumes bash 4+
|
|
60
|
+
# from the shebang and cannot flag these, so guard explicitly; use tr
|
|
61
|
+
# for portable case conversion.
|
|
62
|
+
- name: Reject bash 4+ case-modification expansions
|
|
63
|
+
run: |
|
|
64
|
+
matches=$(git ls-files -z -- '*.sh' | xargs -0 grep -nE '\$\{[A-Za-z_][A-Za-z0-9_]*(\[[^]]*\])?(\^\^?|,,?|~~?|@[UuLl])[^}]*\}' || true)
|
|
65
|
+
if [ -n "$matches" ]; then
|
|
66
|
+
echo "Found bash 4+ case-modification expansion(s); use tr for portability (macOS ships bash 3.2):"
|
|
67
|
+
echo "$matches"
|
|
68
|
+
exit 1
|
|
69
|
+
fi
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
- name: Set up Python
|
|
22
22
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
|
23
23
|
with:
|
|
24
|
-
python-version: "3.
|
|
24
|
+
python-version: "3.14"
|
|
25
25
|
|
|
26
26
|
- name: Run ruff check
|
|
27
27
|
run: uvx ruff check src/
|
|
@@ -30,8 +30,8 @@ jobs:
|
|
|
30
30
|
runs-on: ${{ matrix.os }}
|
|
31
31
|
strategy:
|
|
32
32
|
matrix:
|
|
33
|
-
os: [ubuntu-latest, windows-latest]
|
|
34
|
-
python-version: ["3.
|
|
33
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
34
|
+
python-version: ["3.13", "3.14"]
|
|
35
35
|
steps:
|
|
36
36
|
- name: Checkout
|
|
37
37
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
@@ -23,7 +23,7 @@ src/specify_cli/integrations/
|
|
|
23
23
|
│ └── __init__.py # ClaudeIntegration class
|
|
24
24
|
├── gemini/ # Example: TomlIntegration subclass
|
|
25
25
|
│ └── __init__.py
|
|
26
|
-
├──
|
|
26
|
+
├── kilocode/ # Example: MarkdownIntegration subclass
|
|
27
27
|
│ └── __init__.py
|
|
28
28
|
├── copilot/ # Example: IntegrationBase subclass (custom setup)
|
|
29
29
|
│ └── __init__.py
|
|
@@ -52,25 +52,25 @@ Most agents only need `MarkdownIntegration` — a minimal subclass with zero met
|
|
|
52
52
|
|
|
53
53
|
Create `src/specify_cli/integrations/<package_dir>/__init__.py`, where `<package_dir>` is the Python-safe directory name derived from `<key>`: use the key as-is when it contains no hyphens (e.g., key `"gemini"` → `gemini/`), or replace hyphens with underscores when it does (e.g., key `"kiro-cli"` → `kiro_cli/`). The `IntegrationBase.key` class attribute always retains the original hyphenated value, since that is what the CLI and registry use. For CLI-based integrations (`requires_cli: True`), the `key` should match the actual CLI tool name (the executable users install and run) so CLI checks can resolve it correctly. For IDE-based integrations (`requires_cli: False`), use the canonical integration identifier instead.
|
|
54
54
|
|
|
55
|
-
**Minimal example — Markdown agent (
|
|
55
|
+
**Minimal example — Markdown agent (Kilo Code):**
|
|
56
56
|
|
|
57
57
|
```python
|
|
58
|
-
"""
|
|
58
|
+
"""Kilo Code IDE integration."""
|
|
59
59
|
|
|
60
60
|
from ..base import MarkdownIntegration
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
class
|
|
64
|
-
key = "
|
|
63
|
+
class KilocodeIntegration(MarkdownIntegration):
|
|
64
|
+
key = "kilocode"
|
|
65
65
|
config = {
|
|
66
|
-
"name": "
|
|
67
|
-
"folder": ".
|
|
66
|
+
"name": "Kilo Code",
|
|
67
|
+
"folder": ".kilocode/",
|
|
68
68
|
"commands_subdir": "workflows",
|
|
69
69
|
"install_url": None,
|
|
70
70
|
"requires_cli": False,
|
|
71
71
|
}
|
|
72
72
|
registrar_config = {
|
|
73
|
-
"dir": ".
|
|
73
|
+
"dir": ".kilocode/workflows",
|
|
74
74
|
"format": "markdown",
|
|
75
75
|
"args": "$ARGUMENTS",
|
|
76
76
|
"extension": ".md",
|
|
@@ -148,7 +148,7 @@ class CodexIntegration(SkillsIntegration):
|
|
|
148
148
|
| `config` | Class attribute (dict) | Agent metadata: `name`, `folder`, `commands_subdir`, `install_url`, `requires_cli` |
|
|
149
149
|
| `registrar_config` | Class attribute (dict) | Command output config: `dir`, `format`, `args` placeholder, file `extension` |
|
|
150
150
|
|
|
151
|
-
**Key design rule:** For CLI-based integrations (`requires_cli: True`), `key` must be the actual executable name (e.g., `"cursor-agent"` not `"cursor"`). This ensures `shutil.which(key)` works for CLI-tool checks without special-case mappings. IDE-based integrations (`requires_cli: False`) should use their canonical identifier (e.g., `"
|
|
151
|
+
**Key design rule:** For CLI-based integrations (`requires_cli: True`), `key` must be the actual executable name (e.g., `"cursor-agent"` not `"cursor"`). This ensures `shutil.which(key)` works for CLI-tool checks without special-case mappings. IDE-based integrations (`requires_cli: False`) should use their canonical identifier (e.g., `"kilocode"`, `"copilot"`).
|
|
152
152
|
|
|
153
153
|
### 3. Register it
|
|
154
154
|
|
|
@@ -201,8 +201,8 @@ Only add custom setup logic when the agent needs non-standard behavior. Integrat
|
|
|
201
201
|
specify init my-project --integration <key>
|
|
202
202
|
|
|
203
203
|
# Verify files were created in the commands directory configured by
|
|
204
|
-
# config["folder"] + config["commands_subdir"] (for example, .
|
|
205
|
-
ls -R my-project/.
|
|
204
|
+
# config["folder"] + config["commands_subdir"] (for example, .kilocode/workflows/)
|
|
205
|
+
ls -R my-project/.kilocode/workflows/
|
|
206
206
|
|
|
207
207
|
# Uninstall cleanly
|
|
208
208
|
cd my-project && specify integration uninstall <key>
|
|
@@ -2,6 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [0.12.2] - 2026-06-30
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- fix(scripts): portable uppercase for branch-name acronym retention (bash 3.2) (#3192)
|
|
10
|
+
- chore: retire Windsurf integration — absorbed into Cognition Devin (#3168) (#3213)
|
|
11
|
+
- [extension] Update Intake extension to v0.1.3 (#3254)
|
|
12
|
+
- feat(workflows): honor max_concurrency in fan-out via a bounded thread pool (#3224)
|
|
13
|
+
- Update Architecture Workflow extension to v1.2.2 (#3255)
|
|
14
|
+
- Add Repository Governance extension to community catalog (#3252)
|
|
15
|
+
- Update Workflow Preset to v1.3.11 (#3251)
|
|
16
|
+
- chore: retire iflow integration — product discontinued (#3166) (#3211)
|
|
17
|
+
- docs(codebuddy): fix dead install links and CodeBuddy capitalization (#3172) (#3216)
|
|
18
|
+
- fix: reject host-less catalog URLs in base and preset validators (#3209) (#3227)
|
|
19
|
+
- chore: release 0.12.1, begin 0.12.2.dev0 development (#3253)
|
|
20
|
+
|
|
21
|
+
## [0.12.1] - 2026-06-30
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- chore: align CI Python matrix with devguide lifecycle + fix bash 3.2 portability (#3244)
|
|
26
|
+
- fix: stop check-prerequisites --paths-only from writing feature.json (#3025) (#3190)
|
|
27
|
+
- docs: document integration catalog subcommands (#3206)
|
|
28
|
+
- fix(scripts): use ASCII [OK] marker in initialize-repo.sh (parity with PowerShell twin) (#3231)
|
|
29
|
+
- docs: document integration `search`/`info`/`scaffold` subcommands (#3174) (#3194)
|
|
30
|
+
- docs: remove Cursor from `specify check` agent list (#3178) (#3193)
|
|
31
|
+
- fix(goose): repoint install_url and docs to goose-docs.ai (#3171) (#3215)
|
|
32
|
+
- fix(scripts): route 'Plan template not found' per --json in setup-plan.ps1 (parity with bash) (#3241)
|
|
33
|
+
- fix(bundle): send command errors to stderr so --json stdout stays parseable (#3235)
|
|
34
|
+
- chore: release 0.12.0, begin 0.12.1.dev0 development (#3243)
|
|
35
|
+
|
|
5
36
|
## [0.12.0] - 2026-06-29
|
|
6
37
|
|
|
7
38
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specify-cli
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.2
|
|
4
4
|
Summary: Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD).
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -426,7 +426,7 @@ specify init . --force --integration copilot
|
|
|
426
426
|
specify init --here --force --integration copilot
|
|
427
427
|
```
|
|
428
428
|
|
|
429
|
-
The CLI will check
|
|
429
|
+
The CLI will check that your selected agent's CLI tool is installed (for integrations that require a CLI), such as Claude Code, Gemini CLI, Qwen Code, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi Coding Agent, Oh My Pi, Forge, Goose, Mistral Vibe, or ZCode. If you don't have the required tool installed, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
|
|
430
430
|
|
|
431
431
|
```bash
|
|
432
432
|
specify init <project_name> --integration copilot --ignore-agent-tools
|
|
@@ -406,7 +406,7 @@ specify init . --force --integration copilot
|
|
|
406
406
|
specify init --here --force --integration copilot
|
|
407
407
|
```
|
|
408
408
|
|
|
409
|
-
The CLI will check
|
|
409
|
+
The CLI will check that your selected agent's CLI tool is installed (for integrations that require a CLI), such as Claude Code, Gemini CLI, Qwen Code, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi Coding Agent, Oh My Pi, Forge, Goose, Mistral Vibe, or ZCode. If you don't have the required tool installed, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
|
|
410
410
|
|
|
411
411
|
```bash
|
|
412
412
|
specify init <project_name> --integration copilot --ignore-agent-tools
|
|
@@ -31,7 +31,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
31
31
|
| API Evolve | Managed API contract evolution — breaking-change detection, semver enforcement, deprecation orchestration, and lifecycle gates across REST, GraphQL, and gRPC | `process` | Read+Write | [spec-kit-api-evolve](https://github.com/Quratulain-bilal/spec-kit-api-evolve) |
|
|
32
32
|
| Architect Impact Previewer | Predicts architectural impact, complexity, and risks of proposed changes before implementation. | `visibility` | Read-only | [spec-kit-architect-preview](https://github.com/UmmeHabiba1312/spec-kit-architect-preview) |
|
|
33
33
|
| Architecture Guard | Framework-agnostic architecture review extension for validating implementation against governance and architecture constitutions, detecting architectural drift, and generating non-blocking refactor tasks | `process` | Read+Write | [spec-kit-architecture-guard](https://github.com/DyanGalih/spec-kit-architecture-guard) |
|
|
34
|
-
| Architecture Workflow | Generate or reverse project-level 4+1 architecture views
|
|
34
|
+
| Architecture Workflow | Generate or reverse project-level 4+1 architecture views with per-view and full-workflow commands | `docs` | Read+Write | [spec-kit-arch](https://github.com/bigsmartben/spec-kit-arch) |
|
|
35
35
|
| Archive Extension | Archive merged features into main project memory. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
|
|
36
36
|
| Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | `integration` | Read+Write | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
|
|
37
37
|
| Blueprint | Stay code-literate in AI-driven development: review a complete code blueprint for every task from spec artifacts before /speckit.implement runs | `docs` | Read+Write | [spec-kit-blueprint](https://github.com/chordpli/spec-kit-blueprint) |
|
|
@@ -58,7 +58,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
58
58
|
| GitHub Issues Integration 2 | Creates and syncs local specs from an existing GitHub issue | `integration` | Read+Write | [spec-kit-issue](https://github.com/aaronrsun/spec-kit-issue) |
|
|
59
59
|
| Golden Demo | Extracts acceptance criteria from specs, builds test vectors, and produces a behavioral drift report — complementary to Architecture Guard and CDD | `docs` | Read+Write | [spec-kit-golden-demo](https://github.com/jasstt/spec-kit-golden-demo) |
|
|
60
60
|
| Improve Extension | Audits any codebase as a senior advisor and writes prioritized, self-contained spec prompts under specs/ that the spec-kit lifecycle can process | `process` | Read+Write | [spec-kit-improve](https://github.com/d0whc3r/spec-kit-improve) |
|
|
61
|
-
| Intake | Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts | `docs` | Read+Write | [spec-kit-intake](https://github.com/bigsmartben/spec-kit-intake) |
|
|
61
|
+
| Intake | Normalize PRD, design, HTML SSOT, and test-case evidence into SDD-ready intake artifacts. | `docs` | Read+Write | [spec-kit-intake](https://github.com/bigsmartben/spec-kit-intake) |
|
|
62
62
|
| Intelligent Agent Orchestrator | Cross-catalog agent discovery and intelligent prompt-to-command routing | `process` | Read+Write | [spec-kit-orchestrator](https://github.com/pragya247/spec-kit-orchestrator) |
|
|
63
63
|
| Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building | `docs` | Read+Write | [spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate) |
|
|
64
64
|
| Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | `integration` | Read+Write | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
|
|
@@ -98,6 +98,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
98
98
|
| Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
|
|
99
99
|
| Red Team | Adversarial review of specs before /speckit.plan — parallel lens agents surface risks that clarify/analyze structurally can't (prompt injection, integrity gaps, cross-spec drift, silent failures). Produces a structured findings report; no auto-edits to specs. | `docs` | Read+Write | [spec-kit-red-team](https://github.com/ashbrener/spec-kit-red-team) |
|
|
100
100
|
| Research Harness | State-externalizing research harness: budgeted exploration, evidence curation, and claim verification for spec-driven development | `process` | Read+Write | [spec-kit-harness](https://github.com/formin/spec-kit-harness) |
|
|
101
|
+
| Repository Governance | Generate project-governance projections from Spec Kit metadata | `process` | Read+Write | [spec-kit-agent-governance](https://github.com/bigsmartben/spec-kit-agent-governance) |
|
|
101
102
|
| Repository Index | Generate index for existing repo for overview, architecture and module level. | `docs` | Read-only | [spec-kit-repoindex](https://github.com/liuyiyu/spec-kit-repoindex) |
|
|
102
103
|
| Reqnroll BDD | Adds Reqnroll BDD planning, Gherkin generation, traceability, safe task injection, handoff, and verification to Spec Kit | `process` | Read+Write | [spec-kit-reqnroll-bdd](https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd) |
|
|
103
104
|
| Retro Extension | Sprint retrospective analysis with metrics, spec accuracy assessment, and improvement suggestions | `process` | Read+Write | [spec-kit-retro](https://github.com/arunt14/spec-kit-retro) |
|
|
@@ -31,7 +31,7 @@ Define what to build before building it. Rich templates, quality checklists, and
|
|
|
31
31
|
|
|
32
32
|
### Use any coding agent
|
|
33
33
|
|
|
34
|
-
<span class="pillar-stat">30+ integrations</span> — Copilot, Gemini, Codex,
|
|
34
|
+
<span class="pillar-stat">30+ integrations</span> — Copilot, Gemini, Codex, Kilo Code, Zed, Claude, Forge, Kiro, and more. Switch freely between agents with a single command. No lock-in.
|
|
35
35
|
|
|
36
36
|
Run `specify init` with your agent of choice and Spec Kit sets up the right command files, context rules, and directory structures automatically. If your agent isn't listed, the `generic` integration is an escape hatch for any tool.
|
|
37
37
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Prerequisites
|
|
4
4
|
|
|
5
5
|
- **Linux/macOS** (or Windows; PowerShell scripts now supported without WSL)
|
|
6
|
-
- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), [
|
|
6
|
+
- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), [CodeBuddy CLI](https://www.codebuddy.cn/docs/cli/installation), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Pi Coding Agent](https://pi.dev), or [Oh My Pi](https://www.npmjs.com/package/@oh-my-pi/pi-coding-agent)
|
|
7
7
|
- [uv](https://docs.astral.sh/uv/) for package management (recommended) or [pipx](https://pipx.pypa.io/) for persistent installation
|
|
8
8
|
- [Python 3.11+](https://www.python.org/downloads/)
|
|
9
9
|
- [Git](https://git-scm.com/downloads) _(optional — required only when the git extension is enabled)_
|
|
@@ -11,7 +11,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
|
|
|
11
11
|
| [Auggie CLI](https://docs.augmentcode.com/cli/overview) | `auggie` | |
|
|
12
12
|
| [Claude Code](https://www.anthropic.com/claude-code) | `claude` | Skills-based integration; installs skills in `.claude/skills` |
|
|
13
13
|
| [Cline](https://github.com/cline/cline) | `cline` | IDE-based agent |
|
|
14
|
-
| [CodeBuddy CLI](https://www.codebuddy.
|
|
14
|
+
| [CodeBuddy CLI](https://www.codebuddy.cn/docs/cli/installation) | `codebuddy` | |
|
|
15
15
|
| [Codex CLI](https://github.com/openai/codex) | `codex` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `$speckit-<command>` |
|
|
16
16
|
| [Cursor](https://cursor.sh/) | `cursor-agent` | |
|
|
17
17
|
| [Devin for Terminal](https://cli.devin.ai/docs) | `devin` | Skills-based integration; installs skills into `.devin/skills/` and invokes them as `/speckit-<command>` |
|
|
@@ -19,10 +19,9 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
|
|
|
19
19
|
| [Forge](https://forgecode.dev/) | `forge` | |
|
|
20
20
|
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | |
|
|
21
21
|
| [GitHub Copilot](https://code.visualstudio.com/) | `copilot` | |
|
|
22
|
-
| [Goose](https://
|
|
22
|
+
| [Goose](https://goose-docs.ai/) | `goose` | Uses YAML recipe format in `.goose/recipes/` |
|
|
23
23
|
| [Hermes](https://github.com/NousResearch/hermes-agent) | `hermes` | Skills-based integration; installs skills globally into `~/.hermes/skills/` |
|
|
24
24
|
| [IBM Bob](https://www.ibm.com/products/bob) | `bob` | IDE-based agent |
|
|
25
|
-
| [iFlow CLI](https://docs.iflow.cn/en/cli/quickstart) | `iflow` | |
|
|
26
25
|
| [Junie](https://junie.jetbrains.com/) | `junie` | |
|
|
27
26
|
| [Kilo Code](https://github.com/Kilo-Org/kilocode) | `kilocode` | |
|
|
28
27
|
| [Kimi Code](https://code.kimi.com/) | `kimi` | Skills-based integration; installs into `.kimi-code/skills/`. `--migrate-legacy` moves old `.kimi/skills/` installs to the new paths, and (when the `agent-context` extension is enabled) migrates `KIMI.md` context into `AGENTS.md` |
|
|
@@ -39,7 +38,6 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
|
|
|
39
38
|
| [SHAI (OVHcloud)](https://github.com/ovh/shai) | `shai` | |
|
|
40
39
|
| [Tabnine CLI](https://docs.tabnine.com/main/getting-started/tabnine-cli) | `tabnine` | |
|
|
41
40
|
| [Trae](https://www.trae.ai/) | `trae` | Skills-based integration; skills are installed automatically |
|
|
42
|
-
| [Windsurf](https://windsurf.com/) | `windsurf` | |
|
|
43
41
|
| [ZCode](https://zcode.z.ai/) | `zcode` | Skills-based integration; installs skills into `.zcode/skills/` and invokes them as `$speckit-<command>` |
|
|
44
42
|
| [Zed](https://zed.dev/) | `zed` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `/speckit-<command>` |
|
|
45
43
|
| Generic | `generic` | Bring your own agent — use `--integration generic --integration-options="--commands-dir <path>"` for AI coding agents not listed above |
|
|
@@ -54,6 +52,27 @@ Shows all available integrations, which one is currently installed, and whether
|
|
|
54
52
|
When multiple integrations are installed, the list marks the default integration separately from the other installed integrations.
|
|
55
53
|
The list also shows whether each built-in integration is declared multi-install safe.
|
|
56
54
|
|
|
55
|
+
## Search Available Integrations
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
specify integration search [query]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
| Option | Description |
|
|
62
|
+
| ---------- | ------------------ |
|
|
63
|
+
| `--tag` | Filter by tag |
|
|
64
|
+
| `--author` | Filter by author |
|
|
65
|
+
|
|
66
|
+
Searches the active catalog stack for integrations matching the query. Without a query, lists all available integrations. Must be run inside a Spec Kit project.
|
|
67
|
+
|
|
68
|
+
## Integration Info
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
specify integration info <integration_id>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Shows catalog details for a single integration, including its description, author, license, tags, source catalog, repository (when available), and whether it is currently active. Must be run inside a Spec Kit project.
|
|
75
|
+
|
|
57
76
|
## Install an Integration
|
|
58
77
|
|
|
59
78
|
```bash
|
|
@@ -152,6 +171,47 @@ is `null` when no installed integration set can be evaluated, such as when the
|
|
|
152
171
|
integration state is missing, unreadable, lacks a valid recorded integration
|
|
153
172
|
list, or records no installed integrations.
|
|
154
173
|
|
|
174
|
+
## Catalog Management
|
|
175
|
+
|
|
176
|
+
Integration catalogs control where the discovery commands (`search` and `info`) look for integrations. Catalogs are checked in priority order.
|
|
177
|
+
|
|
178
|
+
### List Catalogs
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
specify integration catalog list
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Shows the active catalog sources. Project-level sources (when configured) are removable by index; otherwise the active sources are shown as non-removable.
|
|
185
|
+
|
|
186
|
+
### Add a Catalog
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
specify integration catalog add <url>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
| Option | Description |
|
|
193
|
+
| --------------- | ----------------------------- |
|
|
194
|
+
| `--name <name>` | Optional name for the catalog |
|
|
195
|
+
|
|
196
|
+
Adds a custom catalog URL to the project's `.specify/integration-catalogs.yml`. The URL must use HTTPS (except `http://localhost`, `http://127.0.0.1`, or `http://[::1]` for local testing).
|
|
197
|
+
|
|
198
|
+
### Remove a Catalog
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
specify integration catalog remove <index>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Removes a project catalog source by its 0-based index in `catalog list`.
|
|
205
|
+
|
|
206
|
+
### Catalog Resolution Order
|
|
207
|
+
|
|
208
|
+
Catalogs are resolved in this order (first match wins):
|
|
209
|
+
|
|
210
|
+
1. **Environment variable** — `SPECKIT_INTEGRATION_CATALOG_URL` overrides all catalogs
|
|
211
|
+
2. **Project config** — `.specify/integration-catalogs.yml`
|
|
212
|
+
3. **User config** — `~/.specify/integration-catalogs.yml`
|
|
213
|
+
4. **Built-in defaults** — official catalog + community catalog
|
|
214
|
+
|
|
155
215
|
## Integration-Specific Options
|
|
156
216
|
|
|
157
217
|
Some integrations accept additional options via `--integration-options`:
|
|
@@ -167,6 +227,18 @@ Example:
|
|
|
167
227
|
specify integration install generic --integration-options="--commands-dir .myagent/cmds"
|
|
168
228
|
```
|
|
169
229
|
|
|
230
|
+
## Scaffold a New Integration
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
specify integration scaffold <key>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Creates a minimal built-in integration package and a matching test skeleton in the Spec Kit repository, then prints the next steps for wiring it up. Run this command from the Spec Kit repository root. The `<key>` must be lowercase kebab-case (for example, `my-agent`).
|
|
237
|
+
|
|
238
|
+
| Option | Description |
|
|
239
|
+
| -------- | ---------------------------------------------------------------- |
|
|
240
|
+
| `--type` | Scaffold template to use: `markdown` (default), `skills`, `toml`, or `yaml` |
|
|
241
|
+
|
|
170
242
|
## FAQ
|
|
171
243
|
|
|
172
244
|
### Can I install multiple integrations in the same project?
|
|
@@ -191,7 +263,6 @@ The currently declared multi-install safe integrations are:
|
|
|
191
263
|
| `cursor-agent` | `.cursor/skills`, `.cursor/rules/specify-rules.mdc` |
|
|
192
264
|
| `firebender` | `.firebender/commands`, `.firebender/rules/specify-rules.mdc` |
|
|
193
265
|
| `gemini` | `.gemini/commands`, `GEMINI.md` |
|
|
194
|
-
| `iflow` | `.iflow/commands`, `IFLOW.md` |
|
|
195
266
|
| `junie` | `.junie/commands`, `.junie/AGENTS.md` |
|
|
196
267
|
| `kilocode` | `.kilocode/workflows`, `.kilocode/rules/specify-rules.md` |
|
|
197
268
|
| `qodercli` | `.qoder/commands`, `QODER.md` |
|
|
@@ -200,7 +271,6 @@ The currently declared multi-install safe integrations are:
|
|
|
200
271
|
| `shai` | `.shai/commands`, `SHAI.md` |
|
|
201
272
|
| `tabnine` | `.tabnine/agent/commands`, `TABNINE.md` |
|
|
202
273
|
| `trae` | `.trae/skills`, `.trae/rules/project_rules.md` |
|
|
203
|
-
| `windsurf` | `.windsurf/workflows`, `.windsurf/rules/specify-rules.md` |
|
|
204
274
|
| `zcode` | `.zcode/skills`, `ZCODE.md` |
|
|
205
275
|
|
|
206
276
|
Integrations that share a context file or command directory with another integration, require dynamic install paths such as `--commands-dir`, or merge shared tool settings are not declared safe by default. They can still be installed alongside another integration with `--force`.
|
|
@@ -215,7 +285,7 @@ Run `specify integration list` to see all available integrations with their keys
|
|
|
215
285
|
|
|
216
286
|
### Do I need the AI coding agent installed to use an integration?
|
|
217
287
|
|
|
218
|
-
CLI-based integrations (like Claude Code, Gemini CLI) require the tool to be installed. IDE-based integrations (like
|
|
288
|
+
CLI-based integrations (like Claude Code, Gemini CLI) require the tool to be installed. IDE-based integrations (like Cursor) work through the IDE itself. Some agents like GitHub Copilot support both IDE and CLI usage. `specify integration list` shows which type each integration is.
|
|
219
289
|
|
|
220
290
|
### When should I use `upgrade` vs `switch`?
|
|
221
291
|
|
|
@@ -185,7 +185,7 @@ cp -r .specify/scripts .specify/scripts-backup
|
|
|
185
185
|
|
|
186
186
|
### 3. Duplicate slash commands (IDE-based agents)
|
|
187
187
|
|
|
188
|
-
Some IDE-based agents (like Kilo Code,
|
|
188
|
+
Some IDE-based agents (like Kilo Code, Roo Code) may show **duplicate slash commands** after upgrading—both old and new versions appear.
|
|
189
189
|
|
|
190
190
|
**Solution:** Manually delete the old command files from your agent's folder.
|
|
191
191
|
|
|
@@ -193,7 +193,7 @@ Some IDE-based agents (like Kilo Code, Windsurf) may show **duplicate slash comm
|
|
|
193
193
|
|
|
194
194
|
```bash
|
|
195
195
|
# Navigate to the agent's commands folder
|
|
196
|
-
cd .kilocode/
|
|
196
|
+
cd .kilocode/workflows/
|
|
197
197
|
|
|
198
198
|
# List files and identify duplicates
|
|
199
199
|
ls -la
|
|
@@ -242,11 +242,11 @@ mv /tmp/constitution-backup.md .specify/memory/constitution.md
|
|
|
242
242
|
|
|
243
243
|
### Scenario 3: "I see duplicate slash commands in my IDE"
|
|
244
244
|
|
|
245
|
-
This happens with IDE-based agents (Kilo Code,
|
|
245
|
+
This happens with IDE-based agents (Kilo Code, Roo Code, Cline, etc.).
|
|
246
246
|
|
|
247
247
|
```bash
|
|
248
|
-
# Find the agent folder (example: .kilocode/
|
|
249
|
-
cd .kilocode/
|
|
248
|
+
# Find the agent folder (example: .kilocode/workflows/)
|
|
249
|
+
cd .kilocode/workflows/
|
|
250
250
|
|
|
251
251
|
# List all files
|
|
252
252
|
ls -la
|
|
@@ -59,6 +59,13 @@ case "$(uname -s 2>/dev/null || true)" in
|
|
|
59
59
|
esac
|
|
60
60
|
|
|
61
61
|
# Parse extension config once; emit context files as JSON, followed by marker strings.
|
|
62
|
+
#
|
|
63
|
+
# NOTE (bash 3.2 / macOS portability): the embedded Python heredocs below run
|
|
64
|
+
# inside $(...) command substitution. bash 3.2 (the system /bin/bash on macOS)
|
|
65
|
+
# mis-parses a single-quote/apostrophe in a heredoc body nested in $(...),
|
|
66
|
+
# failing with "unexpected EOF while looking for matching `''". Keep these
|
|
67
|
+
# $(...)-nested heredoc bodies free of apostrophes (use double quotes in Python
|
|
68
|
+
# string literals and avoid contractions in comments).
|
|
62
69
|
if ! _raw_opts="$("$_python" - "$EXT_CONFIG" "$_case_insensitive_context_files" "$PROJECT_ROOT" <<'PY'
|
|
63
70
|
import json
|
|
64
71
|
import sys
|
|
@@ -113,11 +120,11 @@ if isinstance(raw_files, list):
|
|
|
113
120
|
if not context_files:
|
|
114
121
|
add_context_file(get_str(data, "context_file"))
|
|
115
122
|
if not context_files:
|
|
116
|
-
# Self-seed: the agent-context extension
|
|
117
|
-
#
|
|
118
|
-
# recorded in init-options.json,
|
|
119
|
-
#
|
|
120
|
-
# design
|
|
123
|
+
# Self-seed: the agent-context extension manages its own lifecycle, so when
|
|
124
|
+
# its config declares no target, it derives one from the active integration
|
|
125
|
+
# recorded in init-options.json, mapped through the bundled
|
|
126
|
+
# agent-context-defaults.json file. This is independent of the Specify CLI
|
|
127
|
+
# by design; nothing here imports specify_cli.
|
|
121
128
|
project_root = sys.argv[3] if len(sys.argv) > 3 else "."
|
|
122
129
|
integration_key = ""
|
|
123
130
|
try:
|
|
@@ -144,7 +151,7 @@ if not context_files:
|
|
|
144
151
|
except Exception:
|
|
145
152
|
print(
|
|
146
153
|
"agent-context: unable to read %s; cannot self-seed the context "
|
|
147
|
-
"file. Set
|
|
154
|
+
"file. Set context_file in the extension config." % defaults_path,
|
|
148
155
|
file=sys.stderr,
|
|
149
156
|
)
|
|
150
157
|
mapping = {}
|
|
@@ -152,7 +159,7 @@ if not context_files:
|
|
|
152
159
|
if not context_files:
|
|
153
160
|
print(
|
|
154
161
|
"agent-context: no default context file is known for integration "
|
|
155
|
-
"
|
|
162
|
+
"%s. Set context_file in the extension config to choose one."
|
|
156
163
|
% integration_key,
|
|
157
164
|
file=sys.stderr,
|
|
158
165
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-06-
|
|
3
|
+
"updated_at": "2026-06-30T00:00:00Z",
|
|
4
4
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
|
5
5
|
"extensions": {
|
|
6
6
|
"aide": {
|
|
@@ -187,10 +187,10 @@
|
|
|
187
187
|
"arch": {
|
|
188
188
|
"name": "Architecture Workflow",
|
|
189
189
|
"id": "arch",
|
|
190
|
-
"description": "Generate or reverse project-level 4+1 architecture views
|
|
190
|
+
"description": "Generate or reverse project-level 4+1 architecture views with per-view and full-workflow commands",
|
|
191
191
|
"author": "bigsmartben",
|
|
192
|
-
"version": "1.2.
|
|
193
|
-
"download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.2.
|
|
192
|
+
"version": "1.2.2",
|
|
193
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.2.2.zip",
|
|
194
194
|
"repository": "https://github.com/bigsmartben/spec-kit-arch",
|
|
195
195
|
"homepage": "https://github.com/bigsmartben/spec-kit-arch",
|
|
196
196
|
"documentation": "https://github.com/bigsmartben/spec-kit-arch/blob/main/README.md",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"speckit_version": ">=0.8.10.dev0"
|
|
203
203
|
},
|
|
204
204
|
"provides": {
|
|
205
|
-
"commands":
|
|
205
|
+
"commands": 12,
|
|
206
206
|
"hooks": 0
|
|
207
207
|
},
|
|
208
208
|
"tags": [
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
"downloads": 0,
|
|
216
216
|
"stars": 0,
|
|
217
217
|
"created_at": "2026-05-14T00:00:00Z",
|
|
218
|
-
"updated_at": "2026-06-
|
|
218
|
+
"updated_at": "2026-06-30T00:00:00Z"
|
|
219
219
|
},
|
|
220
220
|
"architect-preview": {
|
|
221
221
|
"name": "Architect Impact Previewer",
|
|
@@ -1440,10 +1440,10 @@
|
|
|
1440
1440
|
"intake": {
|
|
1441
1441
|
"name": "Intake",
|
|
1442
1442
|
"id": "intake",
|
|
1443
|
-
"description": "Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts.",
|
|
1443
|
+
"description": "Normalize PRD, design, HTML SSOT, and test-case evidence into SDD-ready intake artifacts.",
|
|
1444
1444
|
"author": "bigsmartben",
|
|
1445
|
-
"version": "0.1.
|
|
1446
|
-
"download_url": "https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.
|
|
1445
|
+
"version": "0.1.3",
|
|
1446
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.3.zip",
|
|
1447
1447
|
"repository": "https://github.com/bigsmartben/spec-kit-intake",
|
|
1448
1448
|
"homepage": "https://github.com/bigsmartben/spec-kit-intake",
|
|
1449
1449
|
"documentation": "https://github.com/bigsmartben/spec-kit-intake/blob/main/README.md",
|
|
@@ -1461,7 +1461,7 @@
|
|
|
1461
1461
|
]
|
|
1462
1462
|
},
|
|
1463
1463
|
"provides": {
|
|
1464
|
-
"commands":
|
|
1464
|
+
"commands": 4,
|
|
1465
1465
|
"hooks": 1
|
|
1466
1466
|
},
|
|
1467
1467
|
"tags": [
|
|
@@ -1475,7 +1475,7 @@
|
|
|
1475
1475
|
"downloads": 0,
|
|
1476
1476
|
"stars": 0,
|
|
1477
1477
|
"created_at": "2026-06-23T00:00:00Z",
|
|
1478
|
-
"updated_at": "2026-06-
|
|
1478
|
+
"updated_at": "2026-06-30T00:00:00Z"
|
|
1479
1479
|
},
|
|
1480
1480
|
"issue": {
|
|
1481
1481
|
"name": "GitHub Issues Integration 2",
|
|
@@ -2828,6 +2828,46 @@
|
|
|
2828
2828
|
"created_at": "2026-03-23T13:30:00Z",
|
|
2829
2829
|
"updated_at": "2026-03-23T13:30:00Z"
|
|
2830
2830
|
},
|
|
2831
|
+
"repository-governance": {
|
|
2832
|
+
"name": "Repository Governance",
|
|
2833
|
+
"id": "repository-governance",
|
|
2834
|
+
"description": "Generate project-governance projections from Spec Kit metadata",
|
|
2835
|
+
"author": "bigben",
|
|
2836
|
+
"version": "3.0.1",
|
|
2837
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-agent-governance/releases/download/v3.0.1/repository-governance-v3.0.1.zip",
|
|
2838
|
+
"repository": "https://github.com/bigsmartben/spec-kit-agent-governance",
|
|
2839
|
+
"homepage": "https://github.com/bigsmartben/spec-kit-agent-governance",
|
|
2840
|
+
"documentation": "https://github.com/bigsmartben/spec-kit-agent-governance/blob/main/README.md",
|
|
2841
|
+
"changelog": "https://github.com/bigsmartben/spec-kit-agent-governance/blob/main/CHANGELOG.md",
|
|
2842
|
+
"license": "MIT",
|
|
2843
|
+
"category": "process",
|
|
2844
|
+
"effect": "read-write",
|
|
2845
|
+
"requires": {
|
|
2846
|
+
"speckit_version": ">=0.8.0",
|
|
2847
|
+
"tools": [
|
|
2848
|
+
{
|
|
2849
|
+
"name": "uv",
|
|
2850
|
+
"required": true
|
|
2851
|
+
}
|
|
2852
|
+
]
|
|
2853
|
+
},
|
|
2854
|
+
"provides": {
|
|
2855
|
+
"commands": 1,
|
|
2856
|
+
"hooks": 3
|
|
2857
|
+
},
|
|
2858
|
+
"tags": [
|
|
2859
|
+
"governance",
|
|
2860
|
+
"repository",
|
|
2861
|
+
"agents",
|
|
2862
|
+
"memory",
|
|
2863
|
+
"context"
|
|
2864
|
+
],
|
|
2865
|
+
"verified": false,
|
|
2866
|
+
"downloads": 0,
|
|
2867
|
+
"stars": 0,
|
|
2868
|
+
"created_at": "2026-06-30T00:00:00Z",
|
|
2869
|
+
"updated_at": "2026-06-30T00:00:00Z"
|
|
2870
|
+
},
|
|
2831
2871
|
"reqnroll-bdd": {
|
|
2832
2872
|
"name": "Reqnroll BDD",
|
|
2833
2873
|
"id": "reqnroll-bdd",
|