specify-cli 0.12.4__tar.gz → 0.12.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.12.4 → specify_cli-0.12.6}/.github/workflows/docs.yml +1 -1
- {specify_cli-0.12.4 → specify_cli-0.12.6}/CHANGELOG.md +30 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/PKG-INFO +1 -1
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/community/extensions.md +1 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/integrations.md +2 -2
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/catalog.community.json +45 -6
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/README.md +15 -1
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/commands/speckit.git.feature.md +16 -2
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/commands/speckit.git.validate.md +6 -6
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/config-template.yml +10 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/extension.yml +4 -2
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/git-config.yml +10 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/bash/create-new-feature-branch.sh +192 -32
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/bash/git-common.sh +7 -5
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +185 -33
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/powershell/git-common.ps1 +7 -6
- {specify_cli-0.12.4 → specify_cli-0.12.6}/pyproject.toml +1 -1
- specify_cli-0.12.6/scripts/python/check_prerequisites.py +207 -0
- specify_cli-0.12.6/scripts/python/common.py +210 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/agents.py +47 -12
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/commands_impl/catalog_config.py +23 -2
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/adapters.py +5 -1
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/catalog_stack.py +14 -6
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/extensions/__init__.py +12 -3
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/base.py +8 -2
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/cursor_agent/__init__.py +9 -1
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/hermes/__init__.py +5 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/expressions.py +91 -14
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/gate/__init__.py +8 -1
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/git/test_git_extension.py +416 -3
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integration/test_bundler_catalog_stack.py +41 -0
- specify_cli-0.12.6/tests/integrations/conftest.py +38 -0
- specify_cli-0.12.6/tests/integrations/test_home_isolation.py +21 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_base_yaml.py +17 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_cursor_agent.py +49 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_hermes.py +35 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_registry.py +81 -54
- specify_cli-0.12.6/tests/test_check_prerequisites_python_parity.py +339 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_extension_skills.py +61 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_extensions.py +94 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_workflows.py +125 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_adapters.py +27 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_catalog_config.py +36 -0
- specify_cli-0.12.4/tests/integrations/conftest.py +0 -22
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.devcontainer/post-create.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.editorconfig +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.gitattributes +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/CODEOWNERS +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/aw/actions-lock.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/dependabot.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/bug-fix.lock.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/bug-fix.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/bug-test.lock.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/bug-test.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/codeql.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/lint.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/release.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/stale.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.github/workflows/test.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.gitignore +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/.zenodo.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/AGENTS.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/CITATION.cff +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/CONTRIBUTING.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/DEVELOPMENT.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/LICENSE +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/SECURITY.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/SUPPORT.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/.gitignore +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/community/bundles.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/community/friends.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/community/overview.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/community/presets.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/community/walkthroughs.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/concepts/complex-features.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/concepts/sdd.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/docfx.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/guides/monorepo.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/index.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/install/air-gapped.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/install/one-time.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/install/pipx.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/install/uv.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/installation.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/local-development.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/quickstart.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/authentication.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/bundles.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/core.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/extensions.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/overview.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/presets.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/reference/workflows.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/template/public/main.css +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/toc.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/docs/upgrade.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/developer/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/agent-context-defaults.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/bug/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/bug/extension.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/catalog.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/selftest/extension.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/.gitignore +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/LICENSE +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/commands/example.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/config-template.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/extensions/template/extension.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/integrations/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/integrations/catalog.community.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/integrations/catalog.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/media/logo_large.webp +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/media/logo_small.webp +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/media/specify_cli.gif +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/newsletters/2026-April.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/newsletters/2026-February.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/newsletters/2026-June.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/newsletters/2026-March.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/newsletters/2026-May.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/ARCHITECTURE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/PUBLISHING.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/catalog.community.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/catalog.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/lean/preset.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/scaffold/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/scaffold/preset.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/preset.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/templates/agent-file-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/bash/common.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/bash/create-new-feature.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/powershell/setup-plan.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/spec-driven.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/spec-kit.code-workspace +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_assets.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_console.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_github_http.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_invocation_style.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_project.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_utils.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/_version.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/lib/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/lib/project.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/lib/versioning.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/lib/yamlio.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/models/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/models/catalog.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/models/manifest.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/models/records.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/conflict.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/installer.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/packager.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/primitives.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/references.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/resolver.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/bundler/services/validator.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/commands/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/commands/bundle/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/commands/init.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integration_scaffold.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/_install_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/_migrate_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/_query_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/catalog.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/copilot/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/presets/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/_commands.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/base.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/catalog.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/engine.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/do_while/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/src/specify_cli/workflows/steps/while_loop/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/checklist-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/analyze.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/checklist.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/clarify.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/constitution.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/converge.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/implement.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/plan.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/specify.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/tasks.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/constitution-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/plan-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/spec-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/tasks-template.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/templates/vscode-settings.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/auth_helpers.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/bundler_helpers.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/conftest.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/contract/test_bundle_cli.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/hooks/TESTING.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/hooks/plan.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/hooks/spec.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/hooks/tasks.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/http_helpers.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integration/test_bundler_init_install.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integration/test_bundler_install_flow.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integration/test_bundler_local_install.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integration/test_bundler_offline.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integration/test_bundler_security_paths.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/__init__.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_base.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_cli.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_catalog.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_cline.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_copilot.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_forge.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_scaffold.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_subcommand.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/self_upgrade_helpers.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_agent_config_consistency.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_authentication.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_branch_numbering.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_check_tool.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_cli_version.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_commands_package.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_console_imports.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_extension_registration.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_extension_update_hardening.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_github_http.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_github_workflows.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_init_dir.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_init_dir_cli.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_merge.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_presets.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_self_upgrade_detection.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_self_upgrade_execution.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_self_upgrade_guidance.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_self_upgrade_verification.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_setup_plan_no_overwrite.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_setup_tasks.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_upgrade.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_utils.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_version_imports.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/test_workflow_run_without_project.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_conflict.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_packager.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_primitives.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_records.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_references.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_resolver.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_validator.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/tests/unit/test_bundler_versioning.py +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/ARCHITECTURE.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/PUBLISHING.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/README.md +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/catalog.community.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/catalog.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/step-catalog.community.json +0 -0
- {specify_cli-0.12.4 → specify_cli-0.12.6}/workflows/step-catalog.json +0 -0
|
@@ -35,7 +35,7 @@ jobs:
|
|
|
35
35
|
fetch-depth: 0 # Fetch all history for git info
|
|
36
36
|
|
|
37
37
|
- name: Setup .NET
|
|
38
|
-
uses: actions/setup-dotnet@
|
|
38
|
+
uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5.4.0
|
|
39
39
|
with:
|
|
40
40
|
dotnet-version: '8.x'
|
|
41
41
|
|
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [0.12.6] - 2026-07-07
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- fix(bundler): validate catalog URLs in `catalog add` (HTTPS-only, require host) (#3367)
|
|
10
|
+
- Update Ralph Loop extension to v1.2.1 (#3365)
|
|
11
|
+
- fix extension-local script path rewriting (#3364)
|
|
12
|
+
- Add Charter extension to community catalog (#3363)
|
|
13
|
+
- feat(scripts): add Python check-prerequisites PoC (#3302)
|
|
14
|
+
- test: reduce registry manifest test repetition (#3146)
|
|
15
|
+
- fix(integrations): hermes honors SPECKIT_INTEGRATION_HERMES_EXTRA_ARGS (#3346)
|
|
16
|
+
- fix(extensions): coerce non-mapping YAML config roots to {} in ConfigManager (#3345)
|
|
17
|
+
- fix(yaml): pin goose recipe prompt block-scalar indentation (#3343)
|
|
18
|
+
- chore: release 0.12.5, begin 0.12.6.dev0 development (#3381)
|
|
19
|
+
|
|
20
|
+
## [0.12.5] - 2026-07-06
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- fix(workflows): match gate reject option case-insensitively (#3335)
|
|
25
|
+
- fix(bundler): reject host-less catalog URLs in adapters (use hostname, not netloc) (#3333)
|
|
26
|
+
- fix(bundler): resolve catalog search at highest-precedence source before filtering (#3331)
|
|
27
|
+
- fix(workflows): compare non-numeric strings lexicographically instead of returning False (#3323)
|
|
28
|
+
- fix(workflows): quote-aware interpolation so a literal }} in a filter arg doesn't break multi-expression templates (#3307)
|
|
29
|
+
- Support namespaced git feature branch templates (#3293)
|
|
30
|
+
- chore(deps): bump actions/setup-dotnet from 5.3.0 to 5.4.0 (#3315)
|
|
31
|
+
- fix(integrations): cursor-agent honors executable/extra-args env overrides (#3265)
|
|
32
|
+
- docs: drop stale kimi KIMI.md->AGENTS.md migration note (#3291)
|
|
33
|
+
- chore: release 0.12.4, begin 0.12.5.dev0 development (#3305)
|
|
34
|
+
|
|
5
35
|
## [0.12.4] - 2026-07-02
|
|
6
36
|
|
|
7
37
|
### Changed
|
|
@@ -42,6 +42,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
42
42
|
| Bugfix Workflow | Structured bugfix workflow — capture bugs, trace to spec artifacts, and patch specs surgically | `process` | Read+Write | [spec-kit-bugfix](https://github.com/Quratulain-bilal/spec-kit-bugfix) |
|
|
43
43
|
| Canon | Adds canon-driven (baseline-driven) workflows: spec-first, code-first, spec-drift. Requires Canon Core preset installation. | `process` | Read+Write | [spec-kit-canon](https://github.com/maximiliamus/spec-kit-canon/tree/master/extension) |
|
|
44
44
|
| Catalog CI | Automated validation for spec-kit community catalog entries — structure, URLs, diffs, and linting | `process` | Read-only | [spec-kit-catalog-ci](https://github.com/Quratulain-bilal/spec-kit-catalog-ci) |
|
|
45
|
+
| Charter | Compose modular project constitutions from shared fragment registries. Centralize governance rules, select per-project fragments, track upstream changes, and keep multi-project setups consistent. | `process` | Read+Write | [spec-kit-charter](https://github.com/Fyloss/spec-kit-charter) |
|
|
45
46
|
| CI Guard | Spec compliance gates for CI/CD — verify specs exist, check drift, and block merges on gaps | `process` | Read-only | [spec-kit-ci-guard](https://github.com/Quratulain-bilal/spec-kit-ci-guard) |
|
|
46
47
|
| Checkpoint Extension | Commit the changes made during the middle of the implementation, so you don't end up with just one very large commit at the end | `code` | Read+Write | [spec-kit-checkpoint](https://github.com/aaronrsun/spec-kit-checkpoint) |
|
|
47
48
|
| Cleanup Extension | Post-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues | `code` | Read+Write | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
|
|
@@ -24,7 +24,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
|
|
|
24
24
|
| [IBM Bob](https://www.ibm.com/products/bob) | `bob` | IDE-based agent |
|
|
25
25
|
| [Junie](https://junie.jetbrains.com/) | `junie` | |
|
|
26
26
|
| [Kilo Code](https://github.com/Kilo-Org/kilocode) | `kilocode` | |
|
|
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
|
|
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 |
|
|
28
28
|
| [Kiro CLI](https://kiro.dev/docs/cli/) | `kiro-cli` | Kiro CLI does not substitute `$ARGUMENTS` in file-based prompts, so Spec Kit ships a prose fallback at render time (see [Manage prompts](https://kiro.dev/docs/cli/chat/manage-prompts/) and issue [#1926](https://github.com/github/spec-kit/issues/1926)). Alias: `--integration kiro` |
|
|
29
29
|
| [Lingma](https://lingma.aliyun.com/) | `lingma` | Skills-based integration; skills are installed automatically |
|
|
30
30
|
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) | `vibe` | |
|
|
@@ -218,7 +218,7 @@ Some integrations accept additional options via `--integration-options`:
|
|
|
218
218
|
| Integration | Option | Description |
|
|
219
219
|
| ----------- | ------------------- | -------------------------------------------------------------- |
|
|
220
220
|
| `generic` | `--commands-dir` | Required. Directory for command files |
|
|
221
|
-
| `kimi` | `--migrate-legacy` | Migrate legacy `.kimi/skills/` installs to `.kimi-code/skills/` (including dotted→hyphenated
|
|
221
|
+
| `kimi` | `--migrate-legacy` | Migrate legacy `.kimi/skills/` installs to `.kimi-code/skills/` (including dotted→hyphenated skill naming, e.g. `speckit.xxx` → `speckit-xxx`) |
|
|
222
222
|
|
|
223
223
|
Example:
|
|
224
224
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-07-
|
|
3
|
+
"updated_at": "2026-07-06T00:00:00Z",
|
|
4
4
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
|
5
5
|
"extensions": {
|
|
6
6
|
"aide": {
|
|
@@ -670,6 +670,40 @@
|
|
|
670
670
|
"created_at": "2026-04-11T18:00:00Z",
|
|
671
671
|
"updated_at": "2026-04-11T18:00:00Z"
|
|
672
672
|
},
|
|
673
|
+
"charter": {
|
|
674
|
+
"name": "Charter",
|
|
675
|
+
"id": "charter",
|
|
676
|
+
"description": "Compose modular project constitutions from shared fragment registries. Centralize governance rules, select per-project fragments, track upstream changes, and keep multi-project setups consistent.",
|
|
677
|
+
"author": "Fyloss",
|
|
678
|
+
"version": "0.3.1",
|
|
679
|
+
"download_url": "https://github.com/Fyloss/spec-kit-charter/archive/refs/tags/v0.3.1.zip",
|
|
680
|
+
"repository": "https://github.com/Fyloss/spec-kit-charter",
|
|
681
|
+
"homepage": "https://github.com/Fyloss/spec-kit-charter",
|
|
682
|
+
"documentation": "https://github.com/Fyloss/spec-kit-charter/tree/master/docs",
|
|
683
|
+
"changelog": "https://github.com/Fyloss/spec-kit-charter/blob/master/CHANGELOG.md",
|
|
684
|
+
"license": "MIT",
|
|
685
|
+
"category": "process",
|
|
686
|
+
"effect": "read-write",
|
|
687
|
+
"requires": {
|
|
688
|
+
"speckit_version": ">=0.11.9"
|
|
689
|
+
},
|
|
690
|
+
"provides": {
|
|
691
|
+
"commands": 5,
|
|
692
|
+
"hooks": 1
|
|
693
|
+
},
|
|
694
|
+
"tags": [
|
|
695
|
+
"constitution",
|
|
696
|
+
"governance",
|
|
697
|
+
"modular",
|
|
698
|
+
"fragments",
|
|
699
|
+
"registry"
|
|
700
|
+
],
|
|
701
|
+
"verified": false,
|
|
702
|
+
"downloads": 0,
|
|
703
|
+
"stars": 0,
|
|
704
|
+
"created_at": "2026-07-06T00:00:00Z",
|
|
705
|
+
"updated_at": "2026-07-06T00:00:00Z"
|
|
706
|
+
},
|
|
673
707
|
"ci-guard": {
|
|
674
708
|
"name": "CI Guard",
|
|
675
709
|
"id": "ci-guard",
|
|
@@ -2679,8 +2713,8 @@
|
|
|
2679
2713
|
"id": "ralph",
|
|
2680
2714
|
"description": "Autonomous implementation loop using AI agent CLI",
|
|
2681
2715
|
"author": "Rubiss",
|
|
2682
|
-
"version": "1.
|
|
2683
|
-
"download_url": "https://github.com/Rubiss-Projects/spec-kit-ralph/archive/refs/tags/v1.
|
|
2716
|
+
"version": "1.2.1",
|
|
2717
|
+
"download_url": "https://github.com/Rubiss-Projects/spec-kit-ralph/archive/refs/tags/v1.2.1.zip",
|
|
2684
2718
|
"repository": "https://github.com/Rubiss-Projects/spec-kit-ralph",
|
|
2685
2719
|
"homepage": "https://github.com/Rubiss-Projects/spec-kit-ralph",
|
|
2686
2720
|
"documentation": "https://github.com/Rubiss-Projects/spec-kit-ralph/blob/main/README.md",
|
|
@@ -2689,7 +2723,7 @@
|
|
|
2689
2723
|
"category": "code",
|
|
2690
2724
|
"effect": "read-write",
|
|
2691
2725
|
"requires": {
|
|
2692
|
-
"speckit_version": ">=0.
|
|
2726
|
+
"speckit_version": ">=0.8.5",
|
|
2693
2727
|
"tools": [
|
|
2694
2728
|
{
|
|
2695
2729
|
"name": "copilot",
|
|
@@ -2699,6 +2733,10 @@
|
|
|
2699
2733
|
"name": "codex",
|
|
2700
2734
|
"required": false
|
|
2701
2735
|
},
|
|
2736
|
+
{
|
|
2737
|
+
"name": "claude",
|
|
2738
|
+
"required": false
|
|
2739
|
+
},
|
|
2702
2740
|
{
|
|
2703
2741
|
"name": "git",
|
|
2704
2742
|
"required": true
|
|
@@ -2714,13 +2752,14 @@
|
|
|
2714
2752
|
"automation",
|
|
2715
2753
|
"loop",
|
|
2716
2754
|
"copilot",
|
|
2717
|
-
"codex"
|
|
2755
|
+
"codex",
|
|
2756
|
+
"claude"
|
|
2718
2757
|
],
|
|
2719
2758
|
"verified": false,
|
|
2720
2759
|
"downloads": 0,
|
|
2721
2760
|
"stars": 0,
|
|
2722
2761
|
"created_at": "2026-03-09T00:00:00Z",
|
|
2723
|
-
"updated_at": "2026-
|
|
2762
|
+
"updated_at": "2026-07-06T00:00:00Z"
|
|
2724
2763
|
},
|
|
2725
2764
|
"reconcile": {
|
|
2726
2765
|
"name": "Reconcile Extension",
|
|
@@ -7,7 +7,7 @@ Git repository initialization, feature branch creation, numbering (sequential/ti
|
|
|
7
7
|
This extension provides Git operations as an optional, self-contained module. It manages:
|
|
8
8
|
|
|
9
9
|
- **Repository initialization** with configurable commit messages
|
|
10
|
-
- **Feature branch creation** with sequential (`001-feature-name`) or timestamp (`20260319-143022-feature-name`) numbering
|
|
10
|
+
- **Feature branch creation** with sequential (`001-feature-name`) or timestamp (`20260319-143022-feature-name`) numbering and optional templates for branch namespaces
|
|
11
11
|
- **Branch validation** to ensure branches follow naming conventions
|
|
12
12
|
- **Git remote detection** for GitHub integration (e.g., issue creation)
|
|
13
13
|
- **Auto-commit** after core commands (configurable per-command with custom messages)
|
|
@@ -53,6 +53,16 @@ Configuration is stored in `.specify/extensions/git/git-config.yml`:
|
|
|
53
53
|
# Branch numbering strategy: "sequential" or "timestamp"
|
|
54
54
|
branch_numbering: sequential
|
|
55
55
|
|
|
56
|
+
# Optional branch name template. Leave empty for the default "{number}-{slug}".
|
|
57
|
+
# Supported tokens: {author}, {app}, {number}, {slug}; {slug} must not appear
|
|
58
|
+
# before {number}, and the final path segment must start with {number}-.
|
|
59
|
+
# Example for monorepos: "{author}/{app}/{number}-{slug}"
|
|
60
|
+
branch_template: ""
|
|
61
|
+
|
|
62
|
+
# Optional shorthand namespace. Leave empty to use branch_template/default behavior.
|
|
63
|
+
# Example: "features/{app}" expands to "features/{app}/{number}-{slug}"
|
|
64
|
+
branch_prefix: ""
|
|
65
|
+
|
|
56
66
|
# Custom commit message for git init
|
|
57
67
|
init_commit_message: "[Spec Kit] Initial commit"
|
|
58
68
|
|
|
@@ -65,6 +75,10 @@ auto_commit:
|
|
|
65
75
|
message: "[Spec Kit] Add specification"
|
|
66
76
|
```
|
|
67
77
|
|
|
78
|
+
`{author}` is derived from Git config and sanitized for branch names. `{app}` is derived from the Spec Kit init directory name. Custom templates must not put `{slug}` before `{number}`, and must put `{number}-` at the start of the final path segment so generated names remain valid feature branches. For a monorepo project at `apps/web/.specify/`, a template such as `{author}/{app}/{number}-{slug}` produces branches like `jdoe/web/008-guided-tour`.
|
|
79
|
+
|
|
80
|
+
For simple namespace-only customization, `branch_prefix` is also accepted as a shorthand and expands to `<branch_prefix>/{number}-{slug}`.
|
|
81
|
+
|
|
68
82
|
## Installation
|
|
69
83
|
|
|
70
84
|
```bash
|
|
@@ -19,7 +19,7 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|
|
19
19
|
If the user explicitly provided `GIT_BRANCH_NAME` (e.g., via environment variable, argument, or in their request), pass it through to the script by setting the `GIT_BRANCH_NAME` environment variable before invoking the script. When `GIT_BRANCH_NAME` is set:
|
|
20
20
|
- The script uses the exact value as the branch name, bypassing all prefix/suffix generation
|
|
21
21
|
- `--short-name`, `--number`, and `--timestamp` flags are ignored
|
|
22
|
-
- `FEATURE_NUM` is extracted
|
|
22
|
+
- `FEATURE_NUM` is extracted when the final path segment starts with a numeric or timestamp feature marker (for example `042-name`, `feat/042-name`, or `jdoe/app/042-name`), otherwise set to the full branch name
|
|
23
23
|
|
|
24
24
|
## Prerequisites
|
|
25
25
|
|
|
@@ -35,6 +35,19 @@ Determine the branch numbering strategy by checking configuration in this order:
|
|
|
35
35
|
3. Check `.specify/init-options.json` for `branch_numbering` value (deprecated, backward compatibility — will be removed in a future release)
|
|
36
36
|
4. Default to `sequential` if none of the above exist
|
|
37
37
|
|
|
38
|
+
## Branch Name Template
|
|
39
|
+
|
|
40
|
+
Check `.specify/extensions/git/git-config.yml` for an optional `branch_template` value. If it is empty or missing, use the default branch shape `{number}-{slug}`. If it is set, `{slug}` must not appear before `{number}`, its final path segment must start with `{number}-`, and the script expands these tokens:
|
|
41
|
+
|
|
42
|
+
- `{author}`: sanitized Git config author (`user.name`, falling back to the email local part)
|
|
43
|
+
- `{app}`: sanitized Spec Kit init directory name
|
|
44
|
+
- `{number}`: sequential number or timestamp
|
|
45
|
+
- `{slug}`: generated short branch slug
|
|
46
|
+
|
|
47
|
+
For monorepos, a template such as `{author}/{app}/{number}-{slug}` creates names like `jdoe/web/008-guided-tour` while preserving per-project feature numbering.
|
|
48
|
+
|
|
49
|
+
The script also accepts `branch_prefix` as a shorthand for simple namespaces; it expands to `<branch_prefix>/{number}-{slug}`.
|
|
50
|
+
|
|
38
51
|
## Execution
|
|
39
52
|
|
|
40
53
|
Generate a concise short name (2-4 words) for the branch:
|
|
@@ -54,6 +67,7 @@ Run the appropriate script based on your platform:
|
|
|
54
67
|
- Always include the JSON flag (`--json` for Bash, `-Json` for PowerShell) so the output can be parsed reliably
|
|
55
68
|
- You must only ever run this script once per feature
|
|
56
69
|
- The JSON output will contain `BRANCH_NAME` and `FEATURE_NUM`
|
|
70
|
+
- Do not manually expand `branch_template`; the script reads the git extension config and applies it consistently
|
|
57
71
|
|
|
58
72
|
## Graceful Degradation
|
|
59
73
|
|
|
@@ -64,5 +78,5 @@ If Git is not installed or the current directory is not a Git repository:
|
|
|
64
78
|
## Output
|
|
65
79
|
|
|
66
80
|
The script outputs JSON with:
|
|
67
|
-
- `BRANCH_NAME`: The branch name (e.g., `003-user-auth
|
|
81
|
+
- `BRANCH_NAME`: The branch name (e.g., `003-user-auth`, `20260319-143022-user-auth`, or `jdoe/web/003-user-auth`)
|
|
68
82
|
- `FEATURE_NUM`: The numeric or timestamp prefix used
|
|
@@ -22,24 +22,24 @@ Get the current branch name:
|
|
|
22
22
|
git rev-parse --abbrev-ref HEAD
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
The branch name must
|
|
25
|
+
The branch name's final path segment must start with one of these feature markers:
|
|
26
26
|
|
|
27
|
-
1. **Sequential**:
|
|
28
|
-
2. **Timestamp**:
|
|
27
|
+
1. **Sequential**: `[0-9]{3,}-` (e.g., `001-feature-name`, `042-fix-bug`, `1000-big-feature`, `jdoe/web/008-guided-tour`)
|
|
28
|
+
2. **Timestamp**: `[0-9]{8}-[0-9]{6}-` (e.g., `20260319-143022-feature-name`, `jdoe/web/20260319-143022-feature-name`)
|
|
29
29
|
|
|
30
30
|
## Execution
|
|
31
31
|
|
|
32
32
|
If on a feature branch (matches either pattern):
|
|
33
33
|
- Output: `✓ On feature branch: <branch-name>`
|
|
34
34
|
- Check if the corresponding spec directory exists under `specs/`:
|
|
35
|
-
- For sequential branches, look for `specs/<prefix>-*` where prefix matches the numeric portion
|
|
36
|
-
- For timestamp branches, look for `specs/<prefix>-*` where prefix matches the `YYYYMMDD-HHMMSS` portion
|
|
35
|
+
- For sequential branches, look for `specs/<prefix>-*` where prefix matches the numeric portion, regardless of branch namespace prefixes
|
|
36
|
+
- For timestamp branches, look for `specs/<prefix>-*` where prefix matches the `YYYYMMDD-HHMMSS` portion, regardless of branch namespace prefixes
|
|
37
37
|
- If spec directory exists: `✓ Spec directory found: <path>`
|
|
38
38
|
- If spec directory missing: `⚠ No spec directory found for prefix <prefix>`
|
|
39
39
|
|
|
40
40
|
If NOT on a feature branch:
|
|
41
41
|
- Output: `✗ Not on a feature branch. Current branch: <branch-name>`
|
|
42
|
-
- Output: `Feature branches should be named like: 001-feature-name
|
|
42
|
+
- Output: `Feature branches should be named like: 001-feature-name, 20260319-143022-feature-name, or <namespace>/001-feature-name`
|
|
43
43
|
|
|
44
44
|
## Graceful Degradation
|
|
45
45
|
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
# Branch numbering strategy: "sequential" (001, 002, ...) or "timestamp" (YYYYMMDD-HHMMSS)
|
|
5
5
|
branch_numbering: sequential
|
|
6
6
|
|
|
7
|
+
# Optional branch name template. Leave empty for the default "{number}-{slug}".
|
|
8
|
+
# Supported tokens: {author}, {app}, {number}, {slug}
|
|
9
|
+
# {slug} must not appear before {number}; final path segment must start with {number}-.
|
|
10
|
+
# Example for monorepos: "{author}/{app}/{number}-{slug}"
|
|
11
|
+
branch_template: ""
|
|
12
|
+
|
|
13
|
+
# Optional shorthand namespace. Leave empty to use branch_template/default behavior.
|
|
14
|
+
# Example: "features/{app}" expands to "features/{app}/{number}-{slug}"
|
|
15
|
+
branch_prefix: ""
|
|
16
|
+
|
|
7
17
|
# Commit message used by `git commit` during repository initialization
|
|
8
18
|
init_commit_message: "[Spec Kit] Initial commit"
|
|
9
19
|
|
|
@@ -4,7 +4,7 @@ extension:
|
|
|
4
4
|
id: git
|
|
5
5
|
name: "Git Branching Workflow"
|
|
6
6
|
version: "1.0.0"
|
|
7
|
-
description: "Feature branch creation, numbering (sequential/timestamp), validation, and Git remote detection"
|
|
7
|
+
description: "Feature branch creation, numbering (sequential/timestamp), templating, validation, and Git remote detection"
|
|
8
8
|
author: spec-kit-core
|
|
9
9
|
repository: https://github.com/github/spec-kit
|
|
10
10
|
license: MIT
|
|
@@ -19,7 +19,7 @@ provides:
|
|
|
19
19
|
commands:
|
|
20
20
|
- name: speckit.git.feature
|
|
21
21
|
file: commands/speckit.git.feature.md
|
|
22
|
-
description: "Create a feature branch with sequential or timestamp numbering"
|
|
22
|
+
description: "Create a feature branch with sequential or timestamp numbering and optional templates"
|
|
23
23
|
- name: speckit.git.validate
|
|
24
24
|
file: commands/speckit.git.validate.md
|
|
25
25
|
description: "Validate current branch follows feature branch naming conventions"
|
|
@@ -137,4 +137,6 @@ tags:
|
|
|
137
137
|
config:
|
|
138
138
|
defaults:
|
|
139
139
|
branch_numbering: sequential
|
|
140
|
+
branch_template: ""
|
|
141
|
+
branch_prefix: ""
|
|
140
142
|
init_commit_message: "[Spec Kit] Initial commit"
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
# Branch numbering strategy: "sequential" (001, 002, ...) or "timestamp" (YYYYMMDD-HHMMSS)
|
|
5
5
|
branch_numbering: sequential
|
|
6
6
|
|
|
7
|
+
# Optional branch name template. Leave empty for the default "{number}-{slug}".
|
|
8
|
+
# Supported tokens: {author}, {app}, {number}, {slug}
|
|
9
|
+
# {slug} must not appear before {number}; final path segment must start with {number}-.
|
|
10
|
+
# Example for monorepos: "{author}/{app}/{number}-{slug}"
|
|
11
|
+
branch_template: ""
|
|
12
|
+
|
|
13
|
+
# Optional shorthand namespace. Leave empty to use branch_template/default behavior.
|
|
14
|
+
# Example: "features/{app}" expands to "features/{app}/{number}-{slug}"
|
|
15
|
+
branch_prefix: ""
|
|
16
|
+
|
|
7
17
|
# Commit message used by `git commit` during repository initialization
|
|
8
18
|
init_commit_message: "[Spec Kit] Initial commit"
|
|
9
19
|
|