specify-cli 0.11.5__tar.gz → 0.11.6__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.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/bug_report.yml +29 -12
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/feature_request.yml +29 -12
- {specify_cli-0.11.5 → specify_cli-0.11.6}/CHANGELOG.md +15 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/CONTRIBUTING.md +1 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/PKG-INFO +1 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/extensions.md +4 -2
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/integrations.md +2 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/catalog.community.json +90 -15
- {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/catalog.json +10 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/pyproject.toml +1 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/spec-driven.md +6 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/__init__.py +2 -0
- specify_cli-0.11.6/src/specify_cli/integrations/firebender/__init__.py +33 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/manifest.py +24 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/shared_infra.py +73 -2
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_cli.py +200 -0
- specify_cli-0.11.6/tests/integrations/test_integration_firebender.py +45 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_manifest.py +28 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_registry.py +1 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_agent_config_consistency.py +144 -1
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.devcontainer/post-create.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.editorconfig +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.gitattributes +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/CODEOWNERS +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/aw/actions-lock.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/dependabot.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/codeql.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/docs.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/lint.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/release.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/stale.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.github/workflows/test.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.gitignore +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/.zenodo.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/AGENTS.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/CITATION.cff +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/DEVELOPMENT.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/LICENSE +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/SECURITY.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/SUPPORT.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/.gitignore +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/friends.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/overview.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/presets.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/community/walkthroughs.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/concepts/complex-features.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/concepts/sdd.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/docfx.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/index.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/air-gapped.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/one-time.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/pipx.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/install/uv.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/installation.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/local-development.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/quickstart.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/authentication.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/bundles.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/core.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/extensions.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/overview.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/presets.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/reference/workflows.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/template/public/main.css +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/toc.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/docs/upgrade.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/developer/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/bug/extension.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/catalog.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/config-template.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/extension.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/git-config.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/selftest/extension.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/.gitignore +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/LICENSE +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/commands/example.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/config-template.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/extensions/template/extension.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/integrations/catalog.community.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/media/logo_large.webp +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/media/logo_small.webp +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/media/specify_cli.gif +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-April.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-February.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-March.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/newsletters/2026-May.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/ARCHITECTURE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/PUBLISHING.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/catalog.community.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/catalog.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/lean/preset.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/preset.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/preset.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/agent-file-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/common.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/create-new-feature.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/setup-plan.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/spec-kit.code-workspace +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_assets.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_console.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_github_http.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_invocation_style.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_utils.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/_version.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/agents.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/project.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/versioning.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/lib/yamlio.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/catalog.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/manifest.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/models/records.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/adapters.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/conflict.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/installer.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/packager.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/primitives.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/references.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/resolver.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/bundler/services/validator.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/commands/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/commands/bundle/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/commands/init.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_scaffold.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_install_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_migrate_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_query_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/base.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/catalog.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/copilot/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/iflow/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/roo/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/windsurf/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/presets/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/base.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/catalog.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/engine.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/expressions.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/checklist-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/analyze.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/checklist.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/clarify.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/constitution.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/converge.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/implement.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/plan.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/specify.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/tasks.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/constitution-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/plan-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/spec-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/tasks-template.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/templates/vscode-settings.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/auth_helpers.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/bundler_helpers.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/conftest.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/contract/test_bundle_cli.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/git/test_git_extension.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/TESTING.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/plan.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/spec.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/hooks/tasks.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/http_helpers.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_catalog_stack.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_init_install.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_install_flow.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_local_install.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_offline.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integration/test_bundler_security_paths.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/__init__.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/conftest.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_base.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_base_yaml.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_catalog.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_cline.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_copilot.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_forge.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_iflow.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_roo.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_scaffold.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_subcommand.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_windsurf.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/self_upgrade_helpers.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_authentication.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_branch_numbering.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_check_tool.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_cli_version.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_commands_package.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_console_imports.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extension_registration.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extension_skills.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extension_update_hardening.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_extensions.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_github_http.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_init_dir.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_merge.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_presets.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_detection.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_execution.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_guidance.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_self_upgrade_verification.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_setup_plan_no_overwrite.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_setup_tasks.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_upgrade.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_version_imports.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_workflow_run_without_project.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/test_workflows.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_adapters.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_catalog_config.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_conflict.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_packager.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_primitives.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_records.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_references.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_resolver.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_validator.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/tests/unit/test_bundler_versioning.py +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/ARCHITECTURE.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/PUBLISHING.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/README.md +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/catalog.community.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/catalog.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/workflows/step-catalog.community.json +0 -0
- {specify_cli-0.11.5 → specify_cli-0.11.6}/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**: Claude Code,
|
|
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, iFlow CLI, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, Windsurf, ZCode, Zed
|
|
12
12
|
|
|
13
13
|
- type: input
|
|
14
14
|
id: agent-name
|
|
@@ -62,24 +62,41 @@ body:
|
|
|
62
62
|
label: AI Agent
|
|
63
63
|
description: Which AI agent are you using?
|
|
64
64
|
options:
|
|
65
|
+
- Amp
|
|
66
|
+
- Antigravity
|
|
67
|
+
- Auggie CLI
|
|
65
68
|
- Claude Code
|
|
69
|
+
- Cline
|
|
70
|
+
- CodeBuddy
|
|
71
|
+
- Codex CLI
|
|
72
|
+
- Cursor
|
|
73
|
+
- Devin for Terminal
|
|
74
|
+
- Firebender
|
|
75
|
+
- Forge
|
|
66
76
|
- Gemini CLI
|
|
67
77
|
- GitHub Copilot
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
78
|
+
- Goose
|
|
79
|
+
- Hermes Agent
|
|
80
|
+
- IBM Bob
|
|
81
|
+
- iFlow CLI
|
|
82
|
+
- Junie
|
|
73
83
|
- Kilo Code
|
|
74
|
-
-
|
|
75
|
-
- Roo Code
|
|
76
|
-
- CodeBuddy
|
|
77
|
-
- Qoder CLI
|
|
84
|
+
- Kimi Code
|
|
78
85
|
- Kiro CLI
|
|
79
|
-
-
|
|
86
|
+
- Lingma
|
|
87
|
+
- Mistral Vibe
|
|
88
|
+
- opencode
|
|
89
|
+
- Pi Coding Agent
|
|
90
|
+
- Qoder CLI
|
|
91
|
+
- Qwen Code
|
|
92
|
+
- Roo Code
|
|
93
|
+
- RovoDev ACLI
|
|
80
94
|
- SHAI
|
|
81
|
-
-
|
|
82
|
-
-
|
|
95
|
+
- Tabnine CLI
|
|
96
|
+
- Trae
|
|
97
|
+
- Windsurf
|
|
98
|
+
- ZCode
|
|
99
|
+
- Zed
|
|
83
100
|
- Not applicable
|
|
84
101
|
validations:
|
|
85
102
|
required: true
|
|
@@ -56,24 +56,41 @@ body:
|
|
|
56
56
|
description: Does this feature relate to a specific AI agent?
|
|
57
57
|
options:
|
|
58
58
|
- All agents
|
|
59
|
+
- Amp
|
|
60
|
+
- Antigravity
|
|
61
|
+
- Auggie CLI
|
|
59
62
|
- Claude Code
|
|
63
|
+
- Cline
|
|
64
|
+
- CodeBuddy
|
|
65
|
+
- Codex CLI
|
|
66
|
+
- Cursor
|
|
67
|
+
- Devin for Terminal
|
|
68
|
+
- Firebender
|
|
69
|
+
- Forge
|
|
60
70
|
- Gemini CLI
|
|
61
71
|
- GitHub Copilot
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
72
|
+
- Goose
|
|
73
|
+
- Hermes Agent
|
|
74
|
+
- IBM Bob
|
|
75
|
+
- iFlow CLI
|
|
76
|
+
- Junie
|
|
67
77
|
- Kilo Code
|
|
68
|
-
-
|
|
69
|
-
- Roo Code
|
|
70
|
-
- CodeBuddy
|
|
71
|
-
- Qoder CLI
|
|
78
|
+
- Kimi Code
|
|
72
79
|
- Kiro CLI
|
|
73
|
-
-
|
|
80
|
+
- Lingma
|
|
81
|
+
- Mistral Vibe
|
|
82
|
+
- opencode
|
|
83
|
+
- Pi Coding Agent
|
|
84
|
+
- Qoder CLI
|
|
85
|
+
- Qwen Code
|
|
86
|
+
- Roo Code
|
|
87
|
+
- RovoDev ACLI
|
|
74
88
|
- SHAI
|
|
75
|
-
-
|
|
76
|
-
-
|
|
89
|
+
- Tabnine CLI
|
|
90
|
+
- Trae
|
|
91
|
+
- Windsurf
|
|
92
|
+
- ZCode
|
|
93
|
+
- Zed
|
|
77
94
|
- Not applicable
|
|
78
95
|
|
|
79
96
|
- type: textarea
|
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [0.11.6] - 2026-06-23
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- [extension] Update Spec Kit Preview extension to v1.1.0 and sync Firebender agent lists (#3116)
|
|
10
|
+
- Add Spec Kit Discovery Extension to community catalog (#3119)
|
|
11
|
+
- Update Architecture Workflow extension to v1.2.1 (#3118)
|
|
12
|
+
- docs: clarify project-defined constitution articles (#2994)
|
|
13
|
+
- Add Intake extension to community catalog (#3117)
|
|
14
|
+
- feat: add Firebender integration (Android Studio / IntelliJ) (#3077)
|
|
15
|
+
- Update DocGuard — CDD Enforcement extension to v0.28.0 (#3115)
|
|
16
|
+
- chore: sync issue template agent lists (#3052)
|
|
17
|
+
- fix(shared-infra): remove stale managed scripts the core no longer ships (#3076) (#3098)
|
|
18
|
+
- chore: release 0.11.5, begin 0.11.6.dev0 development (#3105)
|
|
19
|
+
|
|
5
20
|
## [0.11.5] - 2026-06-22
|
|
6
21
|
|
|
7
22
|
### Changed
|
|
@@ -167,7 +167,7 @@ the command templates in templates/commands/ to understand what each command
|
|
|
167
167
|
invokes. Use these mapping rules:
|
|
168
168
|
|
|
169
169
|
- templates/commands/X.md → the command it defines
|
|
170
|
-
- scripts/bash/Y.sh or scripts/powershell/Y.ps1 → every command that invokes that script (grep templates/commands/ for the script name). Also check transitive dependencies: if the changed script is sourced by other scripts (e.g., common.sh is sourced by create-new-feature.sh, check-prerequisites.sh, setup-plan.sh
|
|
170
|
+
- scripts/bash/Y.sh or scripts/powershell/Y.ps1 → every command that invokes that script (grep templates/commands/ for the script name). Also check transitive dependencies: if the changed script is sourced by other scripts (e.g., common.sh is sourced by create-new-feature.sh, check-prerequisites.sh, setup-plan.sh), then every command invoking those downstream scripts is also affected
|
|
171
171
|
- templates/Z-template.md → every command that consumes that template during execution
|
|
172
172
|
- src/specify_cli/*.py → CLI commands (`specify init`, `specify check`, `specify extension *`, `specify preset *`); test the affected CLI command and, for init/scaffolding changes, at minimum test /speckit.specify
|
|
173
173
|
- extensions/X/commands/* → the extension command it defines
|
|
@@ -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
|
|
34
|
+
| Architecture Workflow | Generate or reverse project-level 4+1 architecture views as separate 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) |
|
|
@@ -57,7 +57,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
57
57
|
| GitHub Issues Integration 1 | Generate spec artifacts from GitHub Issues - import issues, sync updates, and maintain bidirectional traceability | `integration` | Read+Write | [spec-kit-github-issues](https://github.com/Fatima367/spec-kit-github-issues) |
|
|
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
|
| 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) |
|
|
60
|
-
|
|
|
60
|
+
| 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
61
|
| 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) |
|
|
62
62
|
| 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) |
|
|
63
63
|
| 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) |
|
|
@@ -110,6 +110,8 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
110
110
|
| Spec Changelog | Auto-generate changelogs and release notes from spec git history and requirement diffs | `docs` | Read-only | [spec-kit-changelog](https://github.com/Quratulain-bilal/spec-kit-changelog) |
|
|
111
111
|
| Spec Critique Extension | Dual-lens critical review of spec and plan from product strategy and engineering risk perspectives | `docs` | Read-only | [spec-kit-critique](https://github.com/arunt14/spec-kit-critique) |
|
|
112
112
|
| Spec Diagram | Auto-generate Mermaid diagrams of SDD workflow state, feature progress, and task dependencies | `visibility` | Read-only | [spec-kit-diagram-](https://github.com/Quratulain-bilal/spec-kit-diagram-) |
|
|
113
|
+
| Spec Kit Discovery Extension | Run technical discovery commands for feasibility, technology selection, scenario-specific technical decisions, legacy codebase assessment, implementation understanding, and proof-of-concept validation | `process` | Read+Write | [spec-kit-discovery](https://github.com/bigsmartben/spec-kit-discovery) |
|
|
114
|
+
| Spec Kit Preview | Generate evidence-backed low, mid, or high fidelity previews from Spec Kit artifacts as Markdown or self-contained HTML | `docs` | Read+Write | [spec-kit-preview](https://github.com/bigsmartben/spec-kit-preview) |
|
|
113
115
|
| Spec Kit Schedule | Optimal multi-agent task scheduling via CP-SAT — DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output | `process` | Read+Write | [spec-kit-schedule](https://github.com/jfranc38/spec-kit-schedule) |
|
|
114
116
|
| Spec Kit TLDR | Render a feature's spec.md / plan.md into a review-oriented TLDR (self-contained HTML dashboard + PR-native Markdown) that surfaces risks for faster PR review. | `visibility` | Read+Write | [speckit-tldr](https://github.com/qurore/speckit-tldr) |
|
|
115
117
|
| Spec Orchestrator | Cross-feature orchestration — track state, select tasks, and detect conflicts across parallel specs | `process` | Read-only | [spec-kit-orchestrator](https://github.com/Quratulain-bilal/spec-kit-orchestrator) |
|
|
@@ -15,6 +15,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
|
|
|
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>` |
|
|
18
|
+
| [Firebender](https://firebender.com/) | `firebender` | IDE-based agent for Android Studio / IntelliJ |
|
|
18
19
|
| [Forge](https://forgecode.dev/) | `forge` | |
|
|
19
20
|
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | |
|
|
20
21
|
| [GitHub Copilot](https://code.visualstudio.com/) | `copilot` | |
|
|
@@ -185,6 +186,7 @@ The currently declared multi-install safe integrations are:
|
|
|
185
186
|
| `codebuddy` | `.codebuddy/commands`, `CODEBUDDY.md` |
|
|
186
187
|
| `codex` | `.agents/skills`, `AGENTS.md` |
|
|
187
188
|
| `cursor-agent` | `.cursor/skills`, `.cursor/rules/specify-rules.mdc` |
|
|
189
|
+
| `firebender` | `.firebender/commands`, `.firebender/rules/specify-rules.mdc` |
|
|
188
190
|
| `gemini` | `.gemini/commands`, `GEMINI.md` |
|
|
189
191
|
| `iflow` | `.iflow/commands`, `IFLOW.md` |
|
|
190
192
|
| `junie` | `.junie/commands`, `.junie/AGENTS.md` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-06-
|
|
3
|
+
"updated_at": "2026-06-23T00: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
|
|
190
|
+
"description": "Generate or reverse project-level 4+1 architecture views as separate commands",
|
|
191
191
|
"author": "bigsmartben",
|
|
192
|
-
"version": "1.1
|
|
193
|
-
"download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.1.
|
|
192
|
+
"version": "1.2.1",
|
|
193
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.2.1.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": 10,
|
|
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-
|
|
218
|
+
"updated_at": "2026-06-23T00:00:00Z"
|
|
219
219
|
},
|
|
220
220
|
"architect-preview": {
|
|
221
221
|
"name": "Architect Impact Previewer",
|
|
@@ -1001,13 +1001,47 @@
|
|
|
1001
1001
|
"created_at": "2026-04-08T00:00:00Z",
|
|
1002
1002
|
"updated_at": "2026-04-08T00:00:00Z"
|
|
1003
1003
|
},
|
|
1004
|
+
"discovery": {
|
|
1005
|
+
"name": "Spec Kit Discovery Extension",
|
|
1006
|
+
"id": "discovery",
|
|
1007
|
+
"description": "Run technical discovery commands for feasibility, technology selection, scenario-specific technical decisions, legacy codebase assessment, implementation understanding, and proof-of-concept validation.",
|
|
1008
|
+
"author": "bigsmartben",
|
|
1009
|
+
"version": "0.2.0",
|
|
1010
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-discovery/archive/refs/tags/v0.2.0.zip",
|
|
1011
|
+
"repository": "https://github.com/bigsmartben/spec-kit-discovery",
|
|
1012
|
+
"homepage": "https://github.com/bigsmartben/spec-kit-discovery",
|
|
1013
|
+
"documentation": "https://github.com/bigsmartben/spec-kit-discovery/blob/main/docs/usage.md",
|
|
1014
|
+
"changelog": "https://github.com/bigsmartben/spec-kit-discovery/blob/main/CHANGELOG.md",
|
|
1015
|
+
"license": "MIT",
|
|
1016
|
+
"category": "process",
|
|
1017
|
+
"effect": "read-write",
|
|
1018
|
+
"requires": {
|
|
1019
|
+
"speckit_version": ">=0.1.0"
|
|
1020
|
+
},
|
|
1021
|
+
"provides": {
|
|
1022
|
+
"commands": 6,
|
|
1023
|
+
"hooks": 0
|
|
1024
|
+
},
|
|
1025
|
+
"tags": [
|
|
1026
|
+
"discovery",
|
|
1027
|
+
"workflow",
|
|
1028
|
+
"validation",
|
|
1029
|
+
"feasibility",
|
|
1030
|
+
"decision"
|
|
1031
|
+
],
|
|
1032
|
+
"verified": false,
|
|
1033
|
+
"downloads": 0,
|
|
1034
|
+
"stars": 0,
|
|
1035
|
+
"created_at": "2026-06-23T00:00:00Z",
|
|
1036
|
+
"updated_at": "2026-06-23T00:00:00Z"
|
|
1037
|
+
},
|
|
1004
1038
|
"docguard": {
|
|
1005
1039
|
"name": "DocGuard — CDD Enforcement",
|
|
1006
1040
|
"id": "docguard",
|
|
1007
1041
|
"description": "Canonical-Driven Development enforcement. Validates, scores, and traces project documentation with automated checks, AI-driven workflows, and spec-kit hooks. One pinned runtime dependency; pure Node.js otherwise.",
|
|
1008
1042
|
"author": "raccioly",
|
|
1009
|
-
"version": "0.
|
|
1010
|
-
"download_url": "https://github.com/raccioly/docguard/releases/download/v0.
|
|
1043
|
+
"version": "0.28.0",
|
|
1044
|
+
"download_url": "https://github.com/raccioly/docguard/releases/download/v0.28.0/spec-kit-docguard-v0.28.0.zip",
|
|
1011
1045
|
"repository": "https://github.com/raccioly/docguard",
|
|
1012
1046
|
"homepage": "https://www.npmjs.com/package/docguard-cli",
|
|
1013
1047
|
"documentation": "https://github.com/raccioly/docguard/blob/main/extensions/spec-kit-docguard/README.md",
|
|
@@ -1043,7 +1077,7 @@
|
|
|
1043
1077
|
"downloads": 0,
|
|
1044
1078
|
"stars": 0,
|
|
1045
1079
|
"created_at": "2026-03-13T00:00:00Z",
|
|
1046
|
-
"updated_at": "2026-06-
|
|
1080
|
+
"updated_at": "2026-06-23T00:00:00Z"
|
|
1047
1081
|
},
|
|
1048
1082
|
"doctor": {
|
|
1049
1083
|
"name": "Project Health Check",
|
|
@@ -1370,6 +1404,46 @@
|
|
|
1370
1404
|
"created_at": "2026-06-16T00:00:00Z",
|
|
1371
1405
|
"updated_at": "2026-06-16T00:00:00Z"
|
|
1372
1406
|
},
|
|
1407
|
+
"intake": {
|
|
1408
|
+
"name": "Intake",
|
|
1409
|
+
"id": "intake",
|
|
1410
|
+
"description": "Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts.",
|
|
1411
|
+
"author": "bigsmartben",
|
|
1412
|
+
"version": "0.1.2",
|
|
1413
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.2.zip",
|
|
1414
|
+
"repository": "https://github.com/bigsmartben/spec-kit-intake",
|
|
1415
|
+
"homepage": "https://github.com/bigsmartben/spec-kit-intake",
|
|
1416
|
+
"documentation": "https://github.com/bigsmartben/spec-kit-intake/blob/main/README.md",
|
|
1417
|
+
"changelog": "https://github.com/bigsmartben/spec-kit-intake/blob/main/CHANGELOG.md",
|
|
1418
|
+
"license": "MIT",
|
|
1419
|
+
"category": "docs",
|
|
1420
|
+
"effect": "read-write",
|
|
1421
|
+
"requires": {
|
|
1422
|
+
"speckit_version": ">=0.8.10.dev0",
|
|
1423
|
+
"tools": [
|
|
1424
|
+
{
|
|
1425
|
+
"name": "figma-mcp",
|
|
1426
|
+
"required": false
|
|
1427
|
+
}
|
|
1428
|
+
]
|
|
1429
|
+
},
|
|
1430
|
+
"provides": {
|
|
1431
|
+
"commands": 3,
|
|
1432
|
+
"hooks": 1
|
|
1433
|
+
},
|
|
1434
|
+
"tags": [
|
|
1435
|
+
"intake",
|
|
1436
|
+
"sdd",
|
|
1437
|
+
"requirements",
|
|
1438
|
+
"validation",
|
|
1439
|
+
"figma"
|
|
1440
|
+
],
|
|
1441
|
+
"verified": false,
|
|
1442
|
+
"downloads": 0,
|
|
1443
|
+
"stars": 0,
|
|
1444
|
+
"created_at": "2026-06-23T00:00:00Z",
|
|
1445
|
+
"updated_at": "2026-06-23T00:00:00Z"
|
|
1446
|
+
},
|
|
1373
1447
|
"issue": {
|
|
1374
1448
|
"name": "GitHub Issues Integration 2",
|
|
1375
1449
|
"id": "issue",
|
|
@@ -2347,12 +2421,12 @@
|
|
|
2347
2421
|
"updated_at": "2026-03-18T00:00:00Z"
|
|
2348
2422
|
},
|
|
2349
2423
|
"preview": {
|
|
2350
|
-
"name": "
|
|
2424
|
+
"name": "Spec Kit Preview",
|
|
2351
2425
|
"id": "preview",
|
|
2352
|
-
"description": "Generate
|
|
2426
|
+
"description": "Generate evidence-backed low, mid, or high fidelity previews from Spec Kit artifacts as Markdown or self-contained HTML",
|
|
2353
2427
|
"author": "bigsmartben",
|
|
2354
|
-
"version": "1.
|
|
2355
|
-
"download_url": "https://github.com/bigsmartben/spec-kit-preview/archive/refs/tags/v1.
|
|
2428
|
+
"version": "1.1.0",
|
|
2429
|
+
"download_url": "https://github.com/bigsmartben/spec-kit-preview/archive/refs/tags/v1.1.0.zip",
|
|
2356
2430
|
"repository": "https://github.com/bigsmartben/spec-kit-preview",
|
|
2357
2431
|
"homepage": "https://github.com/bigsmartben/spec-kit-preview",
|
|
2358
2432
|
"documentation": "https://github.com/bigsmartben/spec-kit-preview/blob/main/README.md",
|
|
@@ -2364,20 +2438,21 @@
|
|
|
2364
2438
|
"speckit_version": ">=0.8.10.dev0"
|
|
2365
2439
|
},
|
|
2366
2440
|
"provides": {
|
|
2367
|
-
"commands":
|
|
2441
|
+
"commands": 6,
|
|
2368
2442
|
"hooks": 0
|
|
2369
2443
|
},
|
|
2370
2444
|
"tags": [
|
|
2371
2445
|
"preview",
|
|
2372
2446
|
"prototype",
|
|
2373
2447
|
"html",
|
|
2448
|
+
"markdown",
|
|
2374
2449
|
"ux"
|
|
2375
2450
|
],
|
|
2376
2451
|
"verified": false,
|
|
2377
2452
|
"downloads": 0,
|
|
2378
2453
|
"stars": 0,
|
|
2379
2454
|
"created_at": "2026-05-15T00:00:00Z",
|
|
2380
|
-
"updated_at": "2026-
|
|
2455
|
+
"updated_at": "2026-06-23T00:00:00Z"
|
|
2381
2456
|
},
|
|
2382
2457
|
"product": {
|
|
2383
2458
|
"name": "Product Spec Extension",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-06-
|
|
3
|
+
"updated_at": "2026-06-22T00:00:00Z",
|
|
4
4
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/integrations/catalog.json",
|
|
5
5
|
"integrations": {
|
|
6
6
|
"claude": {
|
|
@@ -102,6 +102,15 @@
|
|
|
102
102
|
"repository": "https://github.com/github/spec-kit",
|
|
103
103
|
"tags": ["cli"]
|
|
104
104
|
},
|
|
105
|
+
"firebender": {
|
|
106
|
+
"id": "firebender",
|
|
107
|
+
"name": "Firebender",
|
|
108
|
+
"version": "1.0.0",
|
|
109
|
+
"description": "Firebender IDE integration for Android Studio / IntelliJ",
|
|
110
|
+
"author": "spec-kit-core",
|
|
111
|
+
"repository": "https://github.com/github/spec-kit",
|
|
112
|
+
"tags": ["ide"]
|
|
113
|
+
},
|
|
105
114
|
"forge": {
|
|
106
115
|
"id": "forge",
|
|
107
116
|
"name": "Forge",
|
|
@@ -318,6 +318,12 @@ No implementation code shall be written before:
|
|
|
318
318
|
|
|
319
319
|
This completely inverts traditional AI code generation. Instead of generating code and hoping it works, the LLM must first generate comprehensive tests that define behavior, get them approved, and only then generate implementation.
|
|
320
320
|
|
|
321
|
+
#### Articles IV, V & VI: Project-Defined Governance
|
|
322
|
+
|
|
323
|
+
Articles IV, V, and VI are intentionally defined by each project's constitution rather than prescribed by Spec Kit. The constitution template provides placeholder slots and example concerns such as integration testing, observability, versioning, and breaking changes, but teams replace those placeholders with the principles that match their system and organization.
|
|
324
|
+
|
|
325
|
+
This keeps the nine-article structure stable while allowing each project to encode its own non-negotiable standards. For one project, Article IV might govern security and access boundaries; for another, it might define integration test requirements. The `/speckit.analyze` command evaluates the concrete constitution in the project, so these project-defined articles participate in compliance checks just like the built-in examples.
|
|
326
|
+
|
|
321
327
|
#### Articles VII & VIII: Simplicity and Anti-Abstraction
|
|
322
328
|
|
|
323
329
|
These paired articles combat over-engineering:
|
|
@@ -58,6 +58,7 @@ def _register_builtins() -> None:
|
|
|
58
58
|
from .copilot import CopilotIntegration
|
|
59
59
|
from .cursor_agent import CursorAgentIntegration
|
|
60
60
|
from .devin import DevinIntegration
|
|
61
|
+
from .firebender import FirebenderIntegration
|
|
61
62
|
from .forge import ForgeIntegration
|
|
62
63
|
from .gemini import GeminiIntegration
|
|
63
64
|
from .generic import GenericIntegration
|
|
@@ -95,6 +96,7 @@ def _register_builtins() -> None:
|
|
|
95
96
|
_register(CopilotIntegration())
|
|
96
97
|
_register(CursorAgentIntegration())
|
|
97
98
|
_register(DevinIntegration())
|
|
99
|
+
_register(FirebenderIntegration())
|
|
98
100
|
_register(ForgeIntegration())
|
|
99
101
|
_register(GeminiIntegration())
|
|
100
102
|
_register(GenericIntegration())
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""Firebender IDE integration.
|
|
2
|
+
|
|
3
|
+
Firebender (https://firebender.com/) is an AI coding agent for Android Studio
|
|
4
|
+
and IntelliJ. It reads project-local custom slash commands from
|
|
5
|
+
``.firebender/commands/*.mdc`` and project rules from ``.firebender/rules/*.mdc``,
|
|
6
|
+
so Spec Kit installs its command templates as ``.mdc`` command files and writes
|
|
7
|
+
the managed context section into a ``.firebender/rules/`` rule file.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from ..base import MarkdownIntegration
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FirebenderIntegration(MarkdownIntegration):
|
|
14
|
+
key = "firebender"
|
|
15
|
+
config = {
|
|
16
|
+
"name": "Firebender",
|
|
17
|
+
"folder": ".firebender/",
|
|
18
|
+
"commands_subdir": "commands",
|
|
19
|
+
"install_url": "https://firebender.com/",
|
|
20
|
+
"requires_cli": False,
|
|
21
|
+
}
|
|
22
|
+
registrar_config = {
|
|
23
|
+
"dir": ".firebender/commands",
|
|
24
|
+
"format": "markdown",
|
|
25
|
+
"args": "$ARGUMENTS",
|
|
26
|
+
"extension": ".mdc",
|
|
27
|
+
}
|
|
28
|
+
context_file = ".firebender/rules/specify-rules.mdc"
|
|
29
|
+
multi_install_safe = True
|
|
30
|
+
|
|
31
|
+
def command_filename(self, template_name: str) -> str:
|
|
32
|
+
"""Firebender reads custom slash commands from ``.firebender/commands/*.mdc``."""
|
|
33
|
+
return f"speckit.{template_name}.mdc"
|
|
@@ -232,6 +232,30 @@ class IntegrationManifest:
|
|
|
232
232
|
# transition. ``discard`` is a no-op when the key is absent.
|
|
233
233
|
self._recovered_files.discard(normalized)
|
|
234
234
|
|
|
235
|
+
def remove(self, rel_path: str | Path) -> bool:
|
|
236
|
+
"""Drop *rel_path* from the tracked file set and any recovered marker.
|
|
237
|
+
|
|
238
|
+
Operates purely on the manifest's recorded key; it does NOT touch the
|
|
239
|
+
file on disk. Returns ``True`` if an entry was present and removed.
|
|
240
|
+
Used to keep the manifest consistent after a caller deletes a stale
|
|
241
|
+
managed file that the current install no longer ships.
|
|
242
|
+
|
|
243
|
+
Input is normalized through the same lexical pipeline as
|
|
244
|
+
``record_existing`` / ``is_recovered``: absolute paths and paths
|
|
245
|
+
containing ``..`` segments are rejected (return ``False``) — such paths
|
|
246
|
+
can never be canonical manifest keys, so there is nothing to remove.
|
|
247
|
+
"""
|
|
248
|
+
rel = Path(rel_path)
|
|
249
|
+
if rel.is_absolute() or ".." in rel.parts:
|
|
250
|
+
return False
|
|
251
|
+
try:
|
|
252
|
+
abs_path = _validate_rel_path(rel, self.project_root)
|
|
253
|
+
normalized = abs_path.relative_to(self.project_root).as_posix()
|
|
254
|
+
except ValueError:
|
|
255
|
+
return False
|
|
256
|
+
self._recovered_files.discard(normalized)
|
|
257
|
+
return self._files.pop(normalized, None) is not None
|
|
258
|
+
|
|
235
259
|
# -- Querying ---------------------------------------------------------
|
|
236
260
|
|
|
237
261
|
@property
|
|
@@ -304,7 +304,7 @@ def install_shared_infra(
|
|
|
304
304
|
customization warning to tell the user which flag would overwrite their
|
|
305
305
|
customizations.
|
|
306
306
|
"""
|
|
307
|
-
from .integrations.manifest import _sha256
|
|
307
|
+
from .integrations.manifest import _sha256, _validate_rel_path
|
|
308
308
|
|
|
309
309
|
manifest = load_speckit_manifest(project_path, version=version, console=console)
|
|
310
310
|
prior_hashes = dict(manifest.files)
|
|
@@ -325,6 +325,11 @@ def install_shared_infra(
|
|
|
325
325
|
symlinked_files: list[str] = []
|
|
326
326
|
planned_copies: list[tuple[Path, str, bytes, int]] = []
|
|
327
327
|
planned_templates: list[tuple[Path, str, str]] = []
|
|
328
|
+
# Track every shared path the current bundle produces so we can detect
|
|
329
|
+
# manifest entries the core no longer ships (stale-script cleanup, #3076).
|
|
330
|
+
seen_rels: set[str] = set()
|
|
331
|
+
scripts_scanned = False
|
|
332
|
+
variant_dir = "bash" if script_type == "sh" else "powershell"
|
|
328
333
|
|
|
329
334
|
def _decide_overwrite(rel: str, dst: Path) -> tuple[bool, str | None]:
|
|
330
335
|
"""Return (write, bucket) where bucket is 'skip', 'preserved', or None."""
|
|
@@ -379,7 +384,6 @@ def install_shared_infra(
|
|
|
379
384
|
if scripts_src.is_dir():
|
|
380
385
|
dest_scripts = project_path / ".specify" / "scripts"
|
|
381
386
|
if _ensure_or_bucket_dir(dest_scripts):
|
|
382
|
-
variant_dir = "bash" if script_type == "sh" else "powershell"
|
|
383
387
|
variant_src = scripts_src / variant_dir
|
|
384
388
|
if variant_src.is_dir():
|
|
385
389
|
dest_variant = dest_scripts / variant_dir
|
|
@@ -387,10 +391,18 @@ def install_shared_infra(
|
|
|
387
391
|
for src_path in variant_src.rglob("*"):
|
|
388
392
|
if not src_path.is_file():
|
|
389
393
|
continue
|
|
394
|
+
# Mark scanned only once a real source file is seen. An
|
|
395
|
+
# empty (or symlink-skipped) variant keeps this False, so
|
|
396
|
+
# stale-cleanup is skipped — otherwise it would treat every
|
|
397
|
+
# tracked script as obsolete and delete it. (The safety
|
|
398
|
+
# hinge is this flag, not ``seen_rels``, which also holds
|
|
399
|
+
# template paths populated later.)
|
|
400
|
+
scripts_scanned = True
|
|
390
401
|
|
|
391
402
|
rel_path = src_path.relative_to(variant_src)
|
|
392
403
|
dst_path = dest_variant / rel_path
|
|
393
404
|
rel = dst_path.relative_to(project_path).as_posix()
|
|
405
|
+
seen_rels.add(rel)
|
|
394
406
|
if not _safe_dest_or_bucket(dst_path, rel, parent_must_exist=False):
|
|
395
407
|
continue
|
|
396
408
|
write, bucket = _decide_overwrite(rel, dst_path)
|
|
@@ -442,6 +454,7 @@ def install_shared_infra(
|
|
|
442
454
|
|
|
443
455
|
dst = dest_templates / src.name
|
|
444
456
|
rel = dst.relative_to(project_path).as_posix()
|
|
457
|
+
seen_rels.add(rel)
|
|
445
458
|
if not _safe_dest_or_bucket(dst, rel):
|
|
446
459
|
continue
|
|
447
460
|
write, bucket = _decide_overwrite(rel, dst)
|
|
@@ -521,5 +534,63 @@ def install_shared_infra(
|
|
|
521
534
|
if refresh_hint:
|
|
522
535
|
console.print(refresh_hint)
|
|
523
536
|
|
|
537
|
+
# Remove stale managed scripts: paths a previous install recorded that the
|
|
538
|
+
# current core no longer ships — e.g. the legacy
|
|
539
|
+
# ``scripts/<variant>/update-agent-context.sh`` superseded by the bundled
|
|
540
|
+
# agent-context extension. Left behind, such an orphan can crash when it
|
|
541
|
+
# sources a refreshed ``common.sh`` (#3076). Only run when the script source
|
|
542
|
+
# was actually scanned (so a missing/empty source never triggers mass
|
|
543
|
+
# deletion), scoped to the active variant, and only for *managed* copies —
|
|
544
|
+
# a user-customized file (hash diverges), a symlink, or a recovered entry is
|
|
545
|
+
# preserved by ``_is_managed``.
|
|
546
|
+
if scripts_scanned:
|
|
547
|
+
stale_removed: list[str] = []
|
|
548
|
+
script_prefix = f".specify/scripts/{variant_dir}/"
|
|
549
|
+
for rel in list(prior_hashes):
|
|
550
|
+
if rel in seen_rels or not rel.startswith(script_prefix):
|
|
551
|
+
continue
|
|
552
|
+
# Guard corrupted/hand-edited manifest keys BEFORE any filesystem
|
|
553
|
+
# access: absolute, ``..``, or (on Windows) drive-relative keys such
|
|
554
|
+
# as ``C:tmp`` are not ``is_absolute()`` yet discard the project root
|
|
555
|
+
# when joined. The lexical check is a fast reject; ``_validate_rel_path``
|
|
556
|
+
# resolves the join and confirms containment, catching the rest. A key
|
|
557
|
+
# that still escapes is *skipped*, never turned into an install-time
|
|
558
|
+
# hard failure. Mirrors IntegrationManifest.is_recovered / remove.
|
|
559
|
+
rel_path = Path(rel)
|
|
560
|
+
if rel_path.is_absolute() or ".." in rel_path.parts:
|
|
561
|
+
continue
|
|
562
|
+
try:
|
|
563
|
+
_validate_rel_path(rel_path, project_path)
|
|
564
|
+
except ValueError:
|
|
565
|
+
continue
|
|
566
|
+
dst = project_path / rel_path
|
|
567
|
+
# Already gone from disk but still tracked: drop the orphaned manifest
|
|
568
|
+
# entry so the manifest stays consistent (nothing to unlink).
|
|
569
|
+
if not dst.exists() and not dst.is_symlink():
|
|
570
|
+
manifest.remove(rel)
|
|
571
|
+
continue
|
|
572
|
+
if not _is_managed(rel, dst):
|
|
573
|
+
continue # user-modified / symlink / recovered → preserve
|
|
574
|
+
# Never unlink through a symlinked ancestor (writes/deletes could
|
|
575
|
+
# escape the project root). The safe-destination check buckets such
|
|
576
|
+
# paths under ``symlinked_files`` and we leave them in place.
|
|
577
|
+
if not _safe_dest_or_bucket(dst, rel):
|
|
578
|
+
continue
|
|
579
|
+
try:
|
|
580
|
+
dst.unlink()
|
|
581
|
+
except OSError as exc:
|
|
582
|
+
console.print(f"[yellow]⚠[/yellow] could not remove stale {rel}: {exc}")
|
|
583
|
+
continue
|
|
584
|
+
manifest.remove(rel)
|
|
585
|
+
stale_removed.append(rel)
|
|
586
|
+
|
|
587
|
+
if stale_removed:
|
|
588
|
+
console.print(
|
|
589
|
+
f"[yellow]⚠[/yellow] Removed {len(stale_removed)} obsolete shared "
|
|
590
|
+
"script(s) left by a previous install:"
|
|
591
|
+
)
|
|
592
|
+
for path in stale_removed:
|
|
593
|
+
console.print(f" {path}")
|
|
594
|
+
|
|
524
595
|
manifest.save()
|
|
525
596
|
return True
|