specify-cli 1.0.4__tar.gz → 1.0.5__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-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/feature_request.yml +1 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/codeql.yml +2 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/CHANGELOG.md +25 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/PKG-INFO +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/community/extensions.md +5 -3
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/integrations.md +1 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/workflows.md +46 -10
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +16 -11
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/agent-context-defaults.json +1 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/catalog.community.json +115 -21
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/bash/create-new-feature-branch.sh +14 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +4 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/python/create_new_feature_branch.py +9 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/integrations/catalog.json +9 -0
- specify_cli-1.0.5/newsletters/2026-August.md +130 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/pyproject.toml +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/bash/create-new-feature.sh +15 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/bash/setup-plan.sh +4 -4
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/powershell/create-new-feature.ps1 +4 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/powershell/setup-plan.ps1 +2 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/python/setup_plan.py +2 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_invocation_style.py +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/commands/init.py +7 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/extensions/__init__.py +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/__init__.py +2 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/base.py +5 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/cline/__init__.py +21 -5
- specify_cli-1.0.5/src/specify_cli/integrations/muse/__init__.py +63 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/presets/__init__.py +15 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/__init__.py +2 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/_commands.py +21 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/engine.py +8 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/do_while/__init__.py +8 -0
- specify_cli-1.0.5/src/specify_cli/workflows/steps/slot/__init__.py +67 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/while_loop/__init__.py +12 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/plan.md +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/tasks.md +1 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/git/test_git_extension_python_parity.py +133 -6
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_base.py +14 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_cline.py +53 -0
- specify_cli-1.0.5/tests/integrations/test_integration_muse.py +80 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_registry.py +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/parity_helpers.py +31 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_agent_config_consistency.py +1 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_create_new_feature_python_parity.py +138 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_extension_skills.py +46 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_presets.py +12 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_setup_plan_python_parity.py +54 -0
- specify_cli-1.0.5/tests/test_tasks_template_constraints.py +29 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_workflows.py +121 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_references.py +2 -2
- specify_cli-1.0.5/tests/workflows/test_bundled_speckit_workflow.py +58 -0
- specify_cli-1.0.5/tests/workflows/test_slot_step.py +242 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/ARCHITECTURE.md +6 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/PUBLISHING.md +1 -1
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/README.md +27 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/catalog.json +2 -2
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/speckit/workflow.yml +1 -5
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.devcontainer/post-create.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.editorconfig +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.gitattributes +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/CODEOWNERS +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/aw/actions-lock.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/dependabot.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/scripts/check_security_requirements.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/security-audit-requirements.txt +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/add-community-bundle.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/add-community-bundle.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/bug-fix.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/bug-fix.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/bug-test.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/bug-test.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/docs.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/feature-assess.lock.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/feature-assess.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/lint.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/release.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/security.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/stale.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.github/workflows/test.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.gitignore +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.pre-commit-config.yaml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/.zenodo.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/AGENTS.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/CITATION.cff +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/CONTRIBUTING.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/DEVELOPMENT.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/LICENSE +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/README.zh-CN.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/SECURITY.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/SUPPORT.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/bundles/catalog.community.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/.gitignore +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/community/bundles.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/community/friends.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/community/overview.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/community/presets.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/community/walkthroughs.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/concepts/complex-features.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/concepts/sdd.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/concepts/spec-of-specs.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/docfx.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/guides/existing-projects.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/guides/monorepo.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/history.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/images/spec-kit-logo.webp +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/index.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/install/air-gapped.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/install/one-time.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/install/pipx.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/install/pypi.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/install/uv.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/installation.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/local-development.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/quickstart.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/agentic-bugfix.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/agentic-sdd.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/authentication.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/bundles.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/core.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/extensions.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/overview.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/reference/presets.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/template/public/main.css +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/toc.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/docs/upgrade.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/developer/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/commands/speckit.assess.decide.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/commands/speckit.assess.define.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/commands/speckit.assess.intake.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/commands/speckit.assess.research.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/commands/speckit.assess.shape.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/assess/extension.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/bug/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/bug/extension.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/catalog.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/config-template.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/extension.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/git-config.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/python/auto_commit.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/python/git_common.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/python/initialize_repo.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/selftest/extension.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/.gitignore +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/LICENSE +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/commands/example.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/config-template.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/template/extension.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/integrations/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/integrations/catalog.community.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/media/logo_large.webp +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/media/logo_small.webp +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/media/specify_cli.gif +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/newsletters/2026-April.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/newsletters/2026-February.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/newsletters/2026-July.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/newsletters/2026-June.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/newsletters/2026-March.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/newsletters/2026-May.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/ARCHITECTURE.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/PUBLISHING.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/catalog.community.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/catalog.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/constitution-sync/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/constitution-sync/commands/speckit.constitution.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/constitution-sync/preset.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/lean/preset.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/scaffold/README.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/scaffold/preset.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/preset.yml +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/bash/common.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/bash/resolve-template.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/powershell/resolve-template.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/python/check_prerequisites.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/python/common.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/python/create_new_feature.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/python/resolve_template.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/scripts/python/setup_tasks.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/spec-driven.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/spec-kit.code-workspace +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_assets.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_console.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_download_security.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_github_http.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_project.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_toml_string.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_utils.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/_version.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/agents.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/commands_impl/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/commands_impl/catalog_config.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/lib/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/lib/project.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/lib/versioning.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/lib/yamlio.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/models/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/models/catalog.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/models/manifest.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/models/records.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/adapters.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/catalog_stack.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/conflict.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/installer.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/packager.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/primitives.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/references.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/resolver.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/bundler/services/validator.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/commands/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/commands/bundle/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/commands/event.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/events.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integration_scaffold.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/_install_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/_migrate_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/_query_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/_scaffold_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/alquimia/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/catalog.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/command_code/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/copilot/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/docker_agent/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/droid/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/dsh/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/grok/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/base.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/catalog.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/expressions.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/overlays/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/overlays/_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/overlays/composer.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/overlays/layer_sources.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/overlays/merge.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/overlays/schema.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/command/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/fan_in/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/fan_out/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/gate/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/if_then/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/init/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/prompt/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/shell/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/src/specify_cli/workflows/steps/switch/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/checklist-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/analyze.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/checklist.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/clarify.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/constitution.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/converge.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/implement.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/specify.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/constitution-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/plan-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/spec-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/tasks-template.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/templates/vscode-settings.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/auth_helpers.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/bundler_helpers.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/conftest.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/contract/test_bundle_cli.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/contract/test_wheel_bundled_presets.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/contract/test_wheel_core_pack_scripts.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/assess/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/assess/test_assess_extension.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/git/test_git_extension.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/hooks/TESTING.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/hooks/plan.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/hooks/spec.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/hooks/tasks.md +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/http_helpers.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integration/test_bundler_catalog_stack.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integration/test_bundler_init_install.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integration/test_bundler_install_flow.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integration/test_bundler_local_install.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integration/test_bundler_offline.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integration/test_bundler_security_paths.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/__init__.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/conftest.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_cli.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_events.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_home_isolation.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_alquimia.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_base_yaml.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_catalog.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_command_code.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_copilot.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_docker_agent.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_droid.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_dsh.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_forge.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_grok.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_scaffold.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_subcommand.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/self_upgrade_helpers.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_authentication.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_branch_numbering.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_check_prerequisites_python_parity.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_check_tool.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_cli_version.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_command_template_py_scripts.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_commands_package.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_console_imports.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_download_security.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_event_command.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_extension_add_path_traversal.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_extension_content_staleness.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_extension_registration.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_extension_update_hardening.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_extensions.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_github_http.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_github_workflows.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_init_dir.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_init_dir_cli.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_init_output_markup.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_merge.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_post_process.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_resolve_template_python_parity.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_security_workflow.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_self_upgrade_detection.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_self_upgrade_execution.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_self_upgrade_guidance.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_self_upgrade_verification.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_setup_plan_no_overwrite.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_setup_tasks.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_setup_tasks_python_parity.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_shared_infra_gitignore.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_skill_placeholder_py.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_specify_template_numbering.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_upgrade.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_utils.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_version_imports.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/test_workflow_run_without_project.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundle_download_url.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_adapters.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_catalog_config.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_conflict.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_packager.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_primitives.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_records.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_resolver.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_validator.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_versioning.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_bundler_yamlio.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/unit/test_condition_expression_block.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/conftest.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_overlay_commands.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_overlay_composer.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_overlay_layer_sources.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_overlay_merge.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_overlay_schema.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_overlay_security.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/tests/workflows/test_resolver_integration.py +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/catalog.community.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/workflows/step-catalog.community.json +0 -0
- {specify_cli-1.0.4 → specify_cli-1.0.5}/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**: Alquimia AI, Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Command Code, Cursor, Devin for Terminal, Docker Agent, Factory Droid, DeepSeek Harness, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
|
|
11
|
+
**Currently supported agents**: Alquimia AI, Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Command Code, Cursor, Devin for Terminal, Docker Agent, Factory Droid, DeepSeek Harness, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Muse Code, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
|
|
12
12
|
|
|
13
13
|
- type: input
|
|
14
14
|
id: agent-name
|
|
@@ -22,11 +22,11 @@ jobs:
|
|
|
22
22
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
23
|
|
|
24
24
|
- name: Initialize CodeQL
|
|
25
|
-
uses: github/codeql-action/init@
|
|
25
|
+
uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
|
|
26
26
|
with:
|
|
27
27
|
languages: ${{ matrix.language }}
|
|
28
28
|
|
|
29
29
|
- name: Perform CodeQL Analysis
|
|
30
|
-
uses: github/codeql-action/analyze@
|
|
30
|
+
uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
|
|
31
31
|
with:
|
|
32
32
|
category: "/language:${{ matrix.language }}"
|
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [1.0.5] - 2026-09-08
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Update OKF Knowledge Bundle Generator to v0.5.0 (#4475)
|
|
10
|
+
- Update BrownKit extension to v1.2.0 (#4474)
|
|
11
|
+
- chore(deps): bump the codeql-action group with 2 updates (#4436)
|
|
12
|
+
- fix(tasks): require field constraints from data-model.md in generated tasks (#4430)
|
|
13
|
+
- fix(workflows): reject falsy non-mapping step.yml in step add (#4321)
|
|
14
|
+
- fix(cline): stop unrelated prose from suppressing the hook command note (#4150)
|
|
15
|
+
- Add the August 2026 newsletter (#4442)
|
|
16
|
+
- Update Linear Integration extension to v0.8.0 (#4428)
|
|
17
|
+
- fix(presets): reject falsy non-mapping catalog config shapes (#4320)
|
|
18
|
+
- docs(workflows): sync the reference copy with the shipped workflow (#4424)
|
|
19
|
+
- fix(scripts): name setup-plan's feature directory key FEATURE_DIR (#4397)
|
|
20
|
+
- fix(workflows): require a 'steps' body on while and do-while loops (#4149)
|
|
21
|
+
- Add Evaluator Contract extension to community catalog (#4420)
|
|
22
|
+
- fix: remove unused scope input from bundled speckit workflow (#4401)
|
|
23
|
+
- feat(integrations): add Muse Code (muse) agent integration (#4413)
|
|
24
|
+
- feat(workflows): add workflow slots (#4352)
|
|
25
|
+
- fix(scripts): make bash branch-name sanitizing match the Python and PowerShell twins (#4286)
|
|
26
|
+
- allow hyphen in command ref token names (#4356)
|
|
27
|
+
- [extension] Add Axi Extension to community catalog (#4412)
|
|
28
|
+
- chore: release 1.0.4, begin 1.0.5.dev0 development (#4411)
|
|
29
|
+
|
|
5
30
|
## [1.0.4] - 2026-09-02
|
|
6
31
|
|
|
7
32
|
### Changed
|
|
@@ -41,6 +41,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
41
41
|
| Archive Extension | Archive merged features into main project memory, resolving gaps and conflicts. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
|
|
42
42
|
| ASCII Diagram Renderer | Renders hand-drawn ASCII/Unicode diagrams (state machine, architecture, flow, coverage map) of what spec/plan/tasks/analyze already say — plain text, no Mermaid renderer needed | `docs` | Read+Write | [spec-kit-ascii-diagram](https://github.com/MRZHUH/spec-kit-ascii-diagram) |
|
|
43
43
|
| Atlas | Synthesize spec-kit specs into faithful, interactive architecture storybooks & doc portals. | `docs` | Read-only | [spec-kit-atlas](https://github.com/ashbrener/spec-kit-atlas) |
|
|
44
|
+
| Axi Extension | A Spec Kit extension that renders a feature's markdown in a local browser review surface for human annotation, then returns the queued notes to the agent to apply. | `docs` | Read+Write | [spec-kit-axi](https://github.com/d0whc3r/spec-kit-axi) |
|
|
44
45
|
| Azure Cosmos DB | Best-practice Azure Cosmos DB code generation and review for any AI coding agent | `code` | Read+Write | [spec-kit-cosmosdb](https://github.com/AzureCosmosDB/spec-kit-cosmosdb) |
|
|
45
46
|
| 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) |
|
|
46
47
|
| BDD | Convert specs to Gherkin scenarios, scaffold step definitions, and verify acceptance test coverage | `process` | Read+Write | [spec-kit-bdd](https://github.com/RSginer/spec-kit-bdd) |
|
|
@@ -48,7 +49,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
48
49
|
| Blueprint Index — Living Architecture Map | A living architecture map for spec-driven projects, kept honest by a deterministic, low-friction, machine-first CI gate (JSON, self-healable) that blocks only when the map contradicts the specs or code. Brownfield or greenfield. | `process` | Read+Write | [spec-kit-blueprint](https://github.com/ogil109/spec-kit-blueprint) |
|
|
49
50
|
| Branch Convention | Configurable branch and folder naming conventions for /specify with presets and custom patterns | `process` | Read+Write | [spec-kit-branch-convention](https://github.com/Quratulain-bilal/spec-kit-branch-convention) |
|
|
50
51
|
| Brownfield Bootstrap | Bootstrap spec-kit for existing codebases — auto-discover architecture and adopt SDD incrementally | `process` | Read+Write | [spec-kit-brownfield](https://github.com/Quratulain-bilal/spec-kit-brownfield) |
|
|
51
|
-
| BrownKit | Evidence-driven capability discovery, security and QA risk assessment for existing codebases | `process` | Read+Write | [BrownKit](https://github.com/MaksimShevtsov/BrownKit) |
|
|
52
|
+
| BrownKit — Brownfield Discovery for Spec-Kit | Evidence-driven capability discovery, security and QA risk assessment for existing codebases. | `process` | Read+Write | [BrownKit](https://github.com/MaksimShevtsov/BrownKit) |
|
|
52
53
|
| 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) |
|
|
53
54
|
| 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) |
|
|
54
55
|
| 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) |
|
|
@@ -66,6 +67,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
66
67
|
| Dotdog | Import GitHub Spec Kit artifacts into local knowledge graphs for validation, analysis, search, and MCP queries. | `docs` | Read+Write | [dotdog](https://github.com/specdog/dotdog) |
|
|
67
68
|
| DUBSAR Memory | Local project memory for Spec Kit with explicit checkpoints, cross-session resume, and SHA-256 freshness for recorded specification, plan, and task references. | `visibility` | Read+Write | [dubsar-memory](https://github.com/kotnisofiane-bit/dubsar-memory) |
|
|
68
69
|
| EARS Requirements Syntax | Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements | `docs` | Read+Write | [spec-kit-ears](https://github.com/dhruv-15-03/spec-kit-ears) |
|
|
70
|
+
| Evaluator Contract | Provider-neutral evaluator contract for evidence, provenance, uncertainty, and recovery across Spec-Driven Development phases. | `process` | Read+Write | [spec-kit-evaluator](https://github.com/electrohire/spec-kit-evaluator) |
|
|
69
71
|
| Extensify | Create and validate extensions and extension catalogs | `process` | Read+Write | [extensify](https://github.com/mnriem/spec-kit-extensions/tree/main/extensify) |
|
|
70
72
|
| Figma Starter | Turns a Figma section's screens into per-screen spec.md files, an app-level user-stories.md, and a build-order.md, then hands off to /speckit.specify | `integration` | Read+Write | [spec-kit-figma-starter](https://github.com/wavemaker/spec-kit-figma-starter) |
|
|
71
73
|
| Fix Findings | Automated analyze-fix-reanalyze loop that resolves spec findings until clean | `code` | Read+Write | [spec-kit-fix-findings](https://github.com/Quratulain-bilal/spec-kit-fix-findings) |
|
|
@@ -84,7 +86,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
84
86
|
| Jira Mirror | Spec Kit ↔ Jira bridge for team-managed and company-managed projects: configurable workflows & hierarchies (Scrum/SAFe), multi-project, idempotent and fail-closed. macOS/Linux/Windows. | `integration` | Read+Write | [spec-kit-jira-mirror](https://github.com/Fyloss/spec-kit-jira-mirror) |
|
|
85
87
|
| Keel Discovery | Evidence-backed discovery upstream of /speckit.specify, plus round-trip drift auditing after implementation | `process` | Read+Write | [spec-kit-keel](https://github.com/keeldiscovery/spec-kit-keel) |
|
|
86
88
|
| Learning Extension | Generate educational guides from implementations and enhance clarifications with mentoring context | `docs` | Read+Write | [spec-kit-learn](https://github.com/imviancagrace/spec-kit-learn) |
|
|
87
|
-
| Linear Integration |
|
|
89
|
+
| Linear Integration | Automatically mirror your spec-kit specs into Linear — one issue per spec, a sub-issue per task phase, kept in sync as you work. | `integration` | Read+Write | [spec-kit-linear-sync](https://github.com/ashbrener/spec-kit-linear-sync) |
|
|
88
90
|
| Linear Weave | Weave Spec Kit into Linear: pull requirements, mirror tasks.md into sub-issues, sync statuses | `integration` | Read+Write | [spec-kit-linear-weave](https://github.com/tonydwoodhouse/spec-kit-linear-weave) |
|
|
89
91
|
| LLM Wiki | LLM-maintained compounding project wiki: source ingestion, cited answers, and consistency linting | `docs` | Read+Write | [spec-kit-wiki](https://github.com/formin/spec-kit-wiki) |
|
|
90
92
|
| Loop Engineering | Engineer safe autonomous agent loops for spec-driven development: a maker/checker split, externalized loop state, and stay-the-engineer guardrails against comprehension debt and cognitive surrender | `process` | Read+Write | [spec-kit-loop](https://github.com/formin/spec-kit-loop) |
|
|
@@ -105,7 +107,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
105
107
|
| Multi-Repo Branch Sync | Creates the feature branch in affected sub-repositories and git submodules via plan/tasks hooks | `process` | Read+Write | [multi-repo-sync](https://github.com/fyloss/spec-kit-multi-repo-sync) |
|
|
106
108
|
| Multi-Sites Spec Kit | Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support | `process` | Read+Write | [spec-kit-multi-sites](https://github.com/teeyo/spec-kit-multi-sites) |
|
|
107
109
|
| .NET Framework to Modern .NET Migration | Orchestrate end-to-end .NET Framework to modern .NET migration across 7 phases, with SDD lifecycle integration | `process` | Read+Write | [spec-kit-fx-to-net](https://github.com/RogerBestMsft/spec-kit-FxToNet) |
|
|
108
|
-
| OKF Knowledge Bundle Generator | Generates and maintains an Open Knowledge Format (OKF v0.1) knowledge bundle from a source-code repository, mining git history for
|
|
110
|
+
| OKF Knowledge Bundle Generator | Generates and maintains an Open Knowledge Format (OKF v0.1) knowledge bundle from a source-code repository, mining git history for rationale and parking what it cannot verify as open questions | `docs` | Read+Write | [speckit_okf](https://github.com/alexcpn/speckit_okf) |
|
|
109
111
|
| Onboard | Contextual onboarding and progressive growth for developers new to spec-kit projects. Explains specs, maps dependencies, validates understanding, and guides the next step | `process` | Read+Write | [spec-kit-onboard](https://github.com/dmux/spec-kit-onboard) |
|
|
110
112
|
| Optimize | Audit and optimize AI governance for context efficiency — token budgets, rule health, interpretability, compression, coherence, and echo detection | `process` | Read+Write | [spec-kit-optimize](https://github.com/sakitA/spec-kit-optimize) |
|
|
111
113
|
| Orchestration Task Context Management | Adds subagent work-unit orchestration to generated Spec Kit task files | `process` | Read+Write | [spec-kit-orchestration-task-context-management](https://github.com/benizzio/spec-kit-orchestration-task-context-management) |
|
|
@@ -34,6 +34,7 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
|
|
|
34
34
|
| [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` |
|
|
35
35
|
| [Lingma](https://lingma.aliyun.com/) | `lingma` | Skills-based integration; skills are installed automatically |
|
|
36
36
|
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) | `vibe` | |
|
|
37
|
+
| [Muse Code](https://dev.meta.ai/docs/muse-code) | `muse` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `/speckit-<command>` |
|
|
37
38
|
| [Oh My Pi](https://www.npmjs.com/package/@oh-my-pi/pi-coding-agent) | `omp` | Installs slash commands into `.omp/commands` |
|
|
38
39
|
| [opencode](https://opencode.ai/) | `opencode` | |
|
|
39
40
|
| [Pi Coding Agent](https://pi.dev) | `pi` | Pi doesn't have MCP support out of the box, so `taskstoissues` won't work as intended. MCP support can be added via [extensions](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent#extensions) |
|
|
@@ -18,7 +18,7 @@ Runs a workflow from a catalog ID, URL, or local file path. Inputs declared by t
|
|
|
18
18
|
Example:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
specify workflow run speckit -i spec="Build a kanban board with drag-and-drop task management"
|
|
21
|
+
specify workflow run speckit -i spec="Build a kanban board with drag-and-drop task management"
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
With `--json`, a single machine-readable object is printed instead of formatted text (the default output is unchanged when the flag is omitted):
|
|
@@ -286,6 +286,40 @@ edits:
|
|
|
286
286
|
|
|
287
287
|
Lower priority values have higher precedence. Change this overlay to `priority: 5` if it must win a conflict with the `add-lint` overlay above. It replaces the `review-plan` gate with a non-interactive command.
|
|
288
288
|
|
|
289
|
+
### Workflow slots (upstream extension points)
|
|
290
|
+
|
|
291
|
+
Workflow authors can declare a named, no-op workflow slot with `type: slot`:
|
|
292
|
+
|
|
293
|
+
```yaml
|
|
294
|
+
- id: post-implement
|
|
295
|
+
type: slot
|
|
296
|
+
name: "Post-implementation checks"
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
The step `id` is the unique overlay anchor; `name` is a required non-blank,
|
|
300
|
+
human-readable label only. An unfilled slot completes as a `skipped` step with
|
|
301
|
+
`output: {slot: <name>}`, so subsequent steps continue normally.
|
|
302
|
+
|
|
303
|
+
Fill a slot with a schema-valid overlay `replace` edit anchored on the step
|
|
304
|
+
`id`, not its `name`:
|
|
305
|
+
|
|
306
|
+
```yaml
|
|
307
|
+
id: fill-post-implement
|
|
308
|
+
extends: my-workflow
|
|
309
|
+
edits:
|
|
310
|
+
- replace: post-implement
|
|
311
|
+
step:
|
|
312
|
+
id: post-implement
|
|
313
|
+
type: shell
|
|
314
|
+
run: "echo Run project-specific checks"
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Reuse the slot's `id` when later expressions or `fan-in.wait_for` refer to it.
|
|
318
|
+
The replacement must also preserve every output key those later steps consume:
|
|
319
|
+
an unfilled workflow slot supplies only `steps.<id>.output.slot`. Slot steps are
|
|
320
|
+
not supported inside `fan-out.step` templates because runtime-multiplied
|
|
321
|
+
templates cannot be overlay anchors.
|
|
322
|
+
|
|
289
323
|
### Interaction with Bundles and Updates
|
|
290
324
|
|
|
291
325
|
`specify workflow add <local-directory>` installs the complete local workflow
|
|
@@ -397,14 +431,19 @@ schema_version: "1.0"
|
|
|
397
431
|
workflow:
|
|
398
432
|
id: "speckit"
|
|
399
433
|
name: "Full SDD Cycle"
|
|
400
|
-
version: "1.0.
|
|
434
|
+
version: "1.0.1"
|
|
401
435
|
author: "GitHub"
|
|
402
436
|
description: "Runs specify → plan → tasks → implement with review gates"
|
|
403
437
|
|
|
404
438
|
requires:
|
|
405
|
-
speckit_version: ">=0.
|
|
439
|
+
speckit_version: ">=0.8.5"
|
|
406
440
|
integrations:
|
|
407
|
-
any:
|
|
441
|
+
any:
|
|
442
|
+
- "alquimia"
|
|
443
|
+
- "claude"
|
|
444
|
+
- "copilot"
|
|
445
|
+
- "gemini"
|
|
446
|
+
- "opencode"
|
|
408
447
|
|
|
409
448
|
inputs:
|
|
410
449
|
spec:
|
|
@@ -413,12 +452,8 @@ inputs:
|
|
|
413
452
|
prompt: "Describe what you want to build"
|
|
414
453
|
integration:
|
|
415
454
|
type: string
|
|
416
|
-
default: "
|
|
417
|
-
prompt: "Integration to use (e.g. claude, copilot, gemini)"
|
|
418
|
-
scope:
|
|
419
|
-
type: string
|
|
420
|
-
default: "full"
|
|
421
|
-
enum: ["full", "backend-only", "frontend-only"]
|
|
455
|
+
default: "auto"
|
|
456
|
+
prompt: "Integration to use (e.g. claude, copilot, gemini; 'auto' uses the project's initialized integration)"
|
|
422
457
|
|
|
423
458
|
steps:
|
|
424
459
|
- id: specify
|
|
@@ -494,6 +529,7 @@ specify workflow run speckit -i spec="Build a kanban board with drag-and-drop ta
|
|
|
494
529
|
| `prompt` | Send an arbitrary prompt to the AI coding agent |
|
|
495
530
|
| `shell` | Execute a shell command and capture output |
|
|
496
531
|
| `init` | Bootstrap a project (like `specify init`) |
|
|
532
|
+
| `slot` | Named workflow slot; skipped when unfilled |
|
|
497
533
|
| `gate` | Pause for human approval before continuing |
|
|
498
534
|
| `if` | Conditional branching (then/else) |
|
|
499
535
|
| `switch` | Multi-branch dispatch on an expression |
|
|
@@ -296,15 +296,16 @@ A command body is a *template* that Spec Kit renders once per agent. Different a
|
|
|
296
296
|
|
|
297
297
|
Instead use the agent-neutral token `__SPECKIT_COMMAND_<NAME>__`. Spec Kit resolves it to a `/speckit<separator>...` invocation using the active integration's `invoke_separator` (and integrations may post-process that further in skills output).
|
|
298
298
|
|
|
299
|
-
Encode the command name in upper case, dropping the `speckit.` prefix and turning each dotted segment separator into an underscore:
|
|
299
|
+
Encode the command name in upper case, dropping the `speckit.` prefix and turning each dotted segment separator into an underscore. A hyphen inside a segment is kept as a hyphen:
|
|
300
300
|
|
|
301
301
|
| Command file | Token |
|
|
302
302
|
| --- | --- |
|
|
303
303
|
| `speckit.plan.md` | `__SPECKIT_COMMAND_PLAN__` |
|
|
304
304
|
| `speckit.bug.fix.md` | `__SPECKIT_COMMAND_BUG_FIX__` |
|
|
305
305
|
| `speckit.git.commit.md` | `__SPECKIT_COMMAND_GIT_COMMIT__` |
|
|
306
|
+
| `speckit.agent-context.update.md` | `__SPECKIT_COMMAND_AGENT-CONTEXT_UPDATE__` |
|
|
306
307
|
|
|
307
|
-
The resolver maps each underscore back to the active agent's separator
|
|
308
|
+
The resolver maps each underscore back to the active agent's separator. An underscore separates segments and a hyphen belongs to the segment it sits in, so `AGENT-CONTEXT_UPDATE` is the two segments `agent-context` and `update` rather than three.
|
|
308
309
|
|
|
309
310
|
**Example** — a command body that points the user at the next step:
|
|
310
311
|
|
|
@@ -314,15 +315,19 @@ Once the assessment exists, the next step is `__SPECKIT_COMMAND_BUG_FIX__ slug=<
|
|
|
314
315
|
|
|
315
316
|
This renders as `/speckit.bug.fix slug=<slug>` for a slash-based agent, `/speckit-bug-fix slug=<slug>` for a skills-based agent, and so on — the author writes it once and it stays portable. The first-party `bug` and `git` extensions use this token exclusively; see `extensions/bug/commands/` for working examples.
|
|
316
317
|
|
|
317
|
-
> **
|
|
318
|
-
>
|
|
319
|
-
>
|
|
320
|
-
>
|
|
321
|
-
>
|
|
322
|
-
>
|
|
323
|
-
>
|
|
324
|
-
>
|
|
325
|
-
>
|
|
318
|
+
> **Skills mode.** Token resolution runs in both paths, so the token is safe to
|
|
319
|
+
> use either way. Command files go through the command-rendering path
|
|
320
|
+
> (`CommandRegistrar`). Skill bodies go through `_resolve_command_ref_tokens` in
|
|
321
|
+
> `_register_extension_skills`, which resolves the same token shape against the
|
|
322
|
+
> active skill style, so `__SPECKIT_COMMAND_BUG_FIX__` renders as:
|
|
323
|
+
>
|
|
324
|
+
> | Agent | Rendered |
|
|
325
|
+
> | --- | --- |
|
|
326
|
+
> | Codex, ZCode, Command Code | `$speckit-bug-fix` |
|
|
327
|
+
> | Claude, Copilot, Cursor, Devin, Droid, Grok and the other slash agents | `/speckit-bug-fix` |
|
|
328
|
+
> | Kimi | `/skill:speckit-bug-fix` |
|
|
329
|
+
>
|
|
330
|
+
> Anything else falls through to the integration's own `build_command_invocation`.
|
|
326
331
|
|
|
327
332
|
### Script Path Rewriting
|
|
328
333
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-09-
|
|
3
|
+
"updated_at": "2026-09-08T00:00:00Z",
|
|
4
4
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
|
5
5
|
"extensions": {
|
|
6
6
|
"adrkit": {
|
|
@@ -614,6 +614,44 @@
|
|
|
614
614
|
"created_at": "2026-08-13T00:00:00Z",
|
|
615
615
|
"updated_at": "2026-08-19T00:00:00Z"
|
|
616
616
|
},
|
|
617
|
+
"axi": {
|
|
618
|
+
"name": "Axi Extension",
|
|
619
|
+
"id": "axi",
|
|
620
|
+
"description": "A Spec Kit extension that renders a feature's markdown in a local browser review surface for human annotation, then returns the queued notes to the agent to apply.",
|
|
621
|
+
"author": "d0whc3r",
|
|
622
|
+
"version": "1.1.4",
|
|
623
|
+
"download_url": "https://github.com/d0whc3r/spec-kit-axi/releases/download/v1.1.4/axi-1.1.4.zip",
|
|
624
|
+
"repository": "https://github.com/d0whc3r/spec-kit-axi",
|
|
625
|
+
"homepage": "https://d0whc3r.github.io/spec-kit-axi/",
|
|
626
|
+
"documentation": "https://github.com/d0whc3r/spec-kit-axi/wiki",
|
|
627
|
+
"changelog": "https://github.com/d0whc3r/spec-kit-axi/blob/main/CHANGELOG.md",
|
|
628
|
+
"license": "MIT",
|
|
629
|
+
"category": "docs",
|
|
630
|
+
"effect": "read-write",
|
|
631
|
+
"requires": {
|
|
632
|
+
"speckit_version": ">=0.2.0",
|
|
633
|
+
"tools": [
|
|
634
|
+
{
|
|
635
|
+
"name": "node",
|
|
636
|
+
"required": true
|
|
637
|
+
}
|
|
638
|
+
]
|
|
639
|
+
},
|
|
640
|
+
"provides": {
|
|
641
|
+
"commands": 1,
|
|
642
|
+
"hooks": 0
|
|
643
|
+
},
|
|
644
|
+
"tags": [
|
|
645
|
+
"axi",
|
|
646
|
+
"spec-kit",
|
|
647
|
+
"spec-kit-extension"
|
|
648
|
+
],
|
|
649
|
+
"verified": false,
|
|
650
|
+
"downloads": 0,
|
|
651
|
+
"stars": 0,
|
|
652
|
+
"created_at": "2026-09-02T00:00:00Z",
|
|
653
|
+
"updated_at": "2026-09-02T00:00:00Z"
|
|
654
|
+
},
|
|
617
655
|
"azure-devops": {
|
|
618
656
|
"name": "Azure DevOps Integration",
|
|
619
657
|
"id": "azure-devops",
|
|
@@ -868,20 +906,27 @@
|
|
|
868
906
|
"id": "brownkit",
|
|
869
907
|
"description": "Evidence-driven capability discovery, security and QA risk assessment for existing codebases.",
|
|
870
908
|
"author": "Maksim Shautsou",
|
|
871
|
-
"version": "1.0
|
|
872
|
-
"download_url": "https://github.com/MaksimShevtsov/BrownKit/archive/refs/tags/v1.0.
|
|
909
|
+
"version": "1.2.0",
|
|
910
|
+
"download_url": "https://github.com/MaksimShevtsov/BrownKit/archive/refs/tags/v1.2.0.zip",
|
|
873
911
|
"repository": "https://github.com/MaksimShevtsov/BrownKit",
|
|
874
|
-
"homepage": "https://github.com/MaksimShevtsov/BrownKit",
|
|
875
|
-
"documentation": "https://github.com/MaksimShevtsov/BrownKit/blob/main/
|
|
912
|
+
"homepage": "https://github.com/MaksimShevtsov/BrownKit/blob/main/README.md",
|
|
913
|
+
"documentation": "https://github.com/MaksimShevtsov/BrownKit/blob/main/docs/methodology.md",
|
|
876
914
|
"changelog": "https://github.com/MaksimShevtsov/BrownKit/blob/main/CHANGELOG.md",
|
|
877
915
|
"license": "MIT",
|
|
878
916
|
"category": "process",
|
|
879
917
|
"effect": "read-write",
|
|
880
918
|
"requires": {
|
|
881
|
-
"speckit_version": ">=0.1.0"
|
|
919
|
+
"speckit_version": ">=0.1.0",
|
|
920
|
+
"tools": [
|
|
921
|
+
{
|
|
922
|
+
"name": "python",
|
|
923
|
+
"version": ">=3.9",
|
|
924
|
+
"required": false
|
|
925
|
+
}
|
|
926
|
+
]
|
|
882
927
|
},
|
|
883
928
|
"provides": {
|
|
884
|
-
"commands":
|
|
929
|
+
"commands": 11,
|
|
885
930
|
"hooks": 5
|
|
886
931
|
},
|
|
887
932
|
"tags": [
|
|
@@ -895,7 +940,7 @@
|
|
|
895
940
|
"downloads": 0,
|
|
896
941
|
"stars": 0,
|
|
897
942
|
"created_at": "2026-05-10T00:00:00Z",
|
|
898
|
-
"updated_at": "2026-
|
|
943
|
+
"updated_at": "2026-09-08T00:00:00Z"
|
|
899
944
|
},
|
|
900
945
|
"bugfix": {
|
|
901
946
|
"name": "Bugfix Workflow",
|
|
@@ -1747,6 +1792,40 @@
|
|
|
1747
1792
|
"created_at": "2026-07-08T00:00:00Z",
|
|
1748
1793
|
"updated_at": "2026-07-08T00:00:00Z"
|
|
1749
1794
|
},
|
|
1795
|
+
"evaluator": {
|
|
1796
|
+
"name": "Evaluator Contract",
|
|
1797
|
+
"id": "evaluator",
|
|
1798
|
+
"description": "Provider-neutral evaluator contract for evidence, provenance, uncertainty, and recovery across Spec-Driven Development phases.",
|
|
1799
|
+
"author": "ElectroHire",
|
|
1800
|
+
"version": "1.0.0",
|
|
1801
|
+
"download_url": "https://github.com/electrohire/spec-kit-evaluator/archive/refs/tags/v1.0.0.zip",
|
|
1802
|
+
"repository": "https://github.com/electrohire/spec-kit-evaluator",
|
|
1803
|
+
"homepage": "https://github.com/electrohire/spec-kit-evaluator",
|
|
1804
|
+
"documentation": "https://github.com/electrohire/spec-kit-evaluator/blob/main/README.md",
|
|
1805
|
+
"changelog": "https://github.com/electrohire/spec-kit-evaluator/blob/main/CHANGELOG.md",
|
|
1806
|
+
"license": "MIT",
|
|
1807
|
+
"category": "process",
|
|
1808
|
+
"effect": "read-write",
|
|
1809
|
+
"requires": {
|
|
1810
|
+
"speckit_version": ">=1.0.0"
|
|
1811
|
+
},
|
|
1812
|
+
"provides": {
|
|
1813
|
+
"commands": 4,
|
|
1814
|
+
"hooks": 4
|
|
1815
|
+
},
|
|
1816
|
+
"tags": [
|
|
1817
|
+
"evaluator",
|
|
1818
|
+
"evidence",
|
|
1819
|
+
"provenance",
|
|
1820
|
+
"quality",
|
|
1821
|
+
"governance"
|
|
1822
|
+
],
|
|
1823
|
+
"verified": false,
|
|
1824
|
+
"downloads": 0,
|
|
1825
|
+
"stars": 0,
|
|
1826
|
+
"created_at": "2026-09-03T00:00:00Z",
|
|
1827
|
+
"updated_at": "2026-09-03T00:00:00Z"
|
|
1828
|
+
},
|
|
1750
1829
|
"extensify": {
|
|
1751
1830
|
"name": "Extensify",
|
|
1752
1831
|
"id": "extensify",
|
|
@@ -2608,10 +2687,10 @@
|
|
|
2608
2687
|
"linear": {
|
|
2609
2688
|
"name": "Linear Integration",
|
|
2610
2689
|
"id": "linear",
|
|
2611
|
-
"description": "
|
|
2690
|
+
"description": "Automatically mirror your spec-kit specs into Linear — one issue per spec, a sub-issue per task phase, kept in sync as you work.",
|
|
2612
2691
|
"author": "Ash Brener",
|
|
2613
|
-
"version": "0.
|
|
2614
|
-
"download_url": "https://github.com/ashbrener/spec-kit-linear-sync/archive/refs/tags/v0.
|
|
2692
|
+
"version": "0.8.0",
|
|
2693
|
+
"download_url": "https://github.com/ashbrener/spec-kit-linear-sync/archive/refs/tags/v0.8.0.zip",
|
|
2615
2694
|
"repository": "https://github.com/ashbrener/spec-kit-linear-sync",
|
|
2616
2695
|
"homepage": "https://github.com/ashbrener/spec-kit-linear-sync",
|
|
2617
2696
|
"documentation": "https://github.com/ashbrener/spec-kit-linear-sync/blob/main/README.md",
|
|
@@ -2638,7 +2717,7 @@
|
|
|
2638
2717
|
"downloads": 0,
|
|
2639
2718
|
"stars": 0,
|
|
2640
2719
|
"created_at": "2026-06-01T00:00:00Z",
|
|
2641
|
-
"updated_at": "2026-
|
|
2720
|
+
"updated_at": "2026-09-03T00:00:00Z"
|
|
2642
2721
|
},
|
|
2643
2722
|
"linear-weave": {
|
|
2644
2723
|
"name": "Linear Weave",
|
|
@@ -3340,19 +3419,34 @@
|
|
|
3340
3419
|
"okf": {
|
|
3341
3420
|
"name": "OKF Knowledge Bundle Generator",
|
|
3342
3421
|
"id": "okf",
|
|
3343
|
-
"description": "Generates and maintains an Open Knowledge Format (OKF v0.1) knowledge bundle from a source-code repository, mining git history for
|
|
3422
|
+
"description": "Generates and maintains an Open Knowledge Format (OKF v0.1) knowledge bundle from a source-code repository, mining git history for rationale and parking what it cannot verify as open questions.",
|
|
3344
3423
|
"author": "Alex Punnen",
|
|
3345
|
-
"version": "0.
|
|
3346
|
-
"download_url": "https://github.com/alexcpn/
|
|
3347
|
-
"repository": "https://github.com/alexcpn/
|
|
3348
|
-
"homepage": "https://github.com/alexcpn/
|
|
3349
|
-
"documentation": "https://github.com/alexcpn/
|
|
3350
|
-
"changelog": "https://github.com/alexcpn/
|
|
3424
|
+
"version": "0.5.0",
|
|
3425
|
+
"download_url": "https://github.com/alexcpn/speckit_okf/archive/refs/tags/v0.5.0.zip",
|
|
3426
|
+
"repository": "https://github.com/alexcpn/speckit_okf",
|
|
3427
|
+
"homepage": "https://github.com/alexcpn/speckit_okf",
|
|
3428
|
+
"documentation": "https://github.com/alexcpn/speckit_okf/blob/main/README.md",
|
|
3429
|
+
"changelog": "https://github.com/alexcpn/speckit_okf/blob/main/CHANGELOG.md",
|
|
3351
3430
|
"license": "MIT",
|
|
3352
3431
|
"category": "docs",
|
|
3353
3432
|
"effect": "read-write",
|
|
3354
3433
|
"requires": {
|
|
3355
|
-
"speckit_version": ">=0.12.0"
|
|
3434
|
+
"speckit_version": ">=0.12.0",
|
|
3435
|
+
"tools": [
|
|
3436
|
+
{
|
|
3437
|
+
"name": "bash",
|
|
3438
|
+
"required": true
|
|
3439
|
+
},
|
|
3440
|
+
{
|
|
3441
|
+
"name": "python3",
|
|
3442
|
+
"version": ">=3.9",
|
|
3443
|
+
"required": true
|
|
3444
|
+
},
|
|
3445
|
+
{
|
|
3446
|
+
"name": "git",
|
|
3447
|
+
"required": false
|
|
3448
|
+
}
|
|
3449
|
+
]
|
|
3356
3450
|
},
|
|
3357
3451
|
"provides": {
|
|
3358
3452
|
"commands": 4,
|
|
@@ -3369,7 +3463,7 @@
|
|
|
3369
3463
|
"downloads": 0,
|
|
3370
3464
|
"stars": 0,
|
|
3371
3465
|
"created_at": "2026-07-17T00:00:00Z",
|
|
3372
|
-
"updated_at": "2026-
|
|
3466
|
+
"updated_at": "2026-09-08T00:00:00Z"
|
|
3373
3467
|
},
|
|
3374
3468
|
"onboard": {
|
|
3375
3469
|
"name": "Onboard",
|
{specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/bash/create-new-feature-branch.sh
RENAMED
|
@@ -206,9 +206,18 @@ check_existing_branches() {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
# Function to clean and format a branch name
|
|
209
|
+
#
|
|
210
|
+
# Three details keep this byte-identical to the Python and PowerShell twins:
|
|
211
|
+
# * LC_ALL=C -- in a UTF-8 locale glibc resolves the a-z *range* through
|
|
212
|
+
# collation, so [^a-z0-9] keeps accented lowercase letters that
|
|
213
|
+
# re.sub(r"[^a-z0-9]", ...) and .NET's -replace both strip.
|
|
214
|
+
# * `--*` instead of the GNU-only `\+`, which POSIX/BSD sed reads as a literal
|
|
215
|
+
# '+', leaving repeated separators uncollapsed on macOS.
|
|
216
|
+
# * printf instead of echo, so a name of "-n"/"-e"/"-E" is text, not options.
|
|
209
217
|
clean_branch_name() {
|
|
210
218
|
local name="$1"
|
|
211
|
-
|
|
219
|
+
local -x LC_ALL=C
|
|
220
|
+
printf '%s\n' "$name" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//' | sed 's/-$//'
|
|
212
221
|
}
|
|
213
222
|
|
|
214
223
|
# ---------------------------------------------------------------------------
|
|
@@ -444,6 +453,10 @@ generate_branch_name() {
|
|
|
444
453
|
|
|
445
454
|
local stop_words="^(i|a|an|the|to|for|of|in|on|at|by|with|from|is|are|was|were|be|been|being|have|has|had|do|does|did|will|would|should|could|can|may|might|must|shall|this|that|these|those|my|your|our|their|want|need|add|get|set)$"
|
|
446
455
|
|
|
456
|
+
# LC_ALL=C for the same collation reason documented on clean_branch_name,
|
|
457
|
+
# and so the `grep -qw` acronym probe below uses ASCII word boundaries like
|
|
458
|
+
# the Python twin's (?<![0-9A-Za-z_]) lookarounds.
|
|
459
|
+
local -x LC_ALL=C
|
|
447
460
|
local clean_name=$(printf '%s' "$description" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/ /g')
|
|
448
461
|
|
|
449
462
|
local meaningful_words=()
|
|
@@ -420,11 +420,13 @@ function Get-BranchName {
|
|
|
420
420
|
if ($stopWords -contains $word) { continue }
|
|
421
421
|
if ($word.Length -ge 3) {
|
|
422
422
|
$meaningfulWords += $word
|
|
423
|
-
} elseif ($Description -cmatch "
|
|
423
|
+
} elseif ($Description -cmatch "(?<![0-9A-Za-z_])$($word.ToUpper())(?![0-9A-Za-z_])") {
|
|
424
424
|
# Case-sensitive (-cmatch) to mirror the bash twin's case-sensitive
|
|
425
425
|
# whole-word acronym match: keep a short word only when its UPPERCASE
|
|
426
426
|
# form appears in the original (an acronym). -match is case-insensitive
|
|
427
|
-
# and would keep every short word.
|
|
427
|
+
# and would keep every short word. ASCII boundaries rather than \b,
|
|
428
|
+
# which is Unicode-aware in .NET and would miss an acronym sitting
|
|
429
|
+
# next to an accented letter that bash's LC_ALL=C grep still splits on.
|
|
428
430
|
$meaningfulWords += $word
|
|
429
431
|
}
|
|
430
432
|
}
|
{specify_cli-1.0.4 → specify_cli-1.0.5}/extensions/git/scripts/python/create_new_feature_branch.py
RENAMED
|
@@ -297,8 +297,15 @@ def generate_branch_name(description: str) -> str:
|
|
|
297
297
|
if len(word) >= 3:
|
|
298
298
|
meaningful_words.append(word)
|
|
299
299
|
# Keep short words only when they appear uppercased in the original
|
|
300
|
-
# description (acronyms like "API" or "DB").
|
|
301
|
-
|
|
300
|
+
# description (acronyms like "API" or "DB"). The boundaries are spelled
|
|
301
|
+
# out as ASCII rather than using \b: \b is Unicode-aware on str, so
|
|
302
|
+
# "\u00e9DB\u00e9 cache" would hide the acronym behind a non-ASCII word
|
|
303
|
+
# character, while the bash twin's `grep -qw` runs under LC_ALL=C and
|
|
304
|
+
# sees a boundary there.
|
|
305
|
+
elif re.search(
|
|
306
|
+
rf"(?<![0-9A-Za-z_]){re.escape(word.upper())}(?![0-9A-Za-z_])",
|
|
307
|
+
description,
|
|
308
|
+
):
|
|
302
309
|
meaningful_words.append(word)
|
|
303
310
|
|
|
304
311
|
if meaningful_words:
|
|
@@ -362,6 +362,15 @@
|
|
|
362
362
|
"author": "spec-kit-core",
|
|
363
363
|
"repository": "https://github.com/github/spec-kit",
|
|
364
364
|
"tags": ["ide", "skills"]
|
|
365
|
+
},
|
|
366
|
+
"muse": {
|
|
367
|
+
"id": "muse",
|
|
368
|
+
"name": "Muse Code",
|
|
369
|
+
"version": "1.0.0",
|
|
370
|
+
"description": "Meta Muse Code CLI skills-based integration",
|
|
371
|
+
"author": "spec-kit-core",
|
|
372
|
+
"repository": "https://github.com/github/spec-kit",
|
|
373
|
+
"tags": ["cli", "skills"]
|
|
365
374
|
}
|
|
366
375
|
}
|
|
367
376
|
}
|