specify-cli 1.2.0__tar.gz → 1.2.1__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.2.0 → specify_cli-1.2.1}/.github/workflows/lint.yml +2 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/AGENTS.md +10 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/CHANGELOG.md +25 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/CONTRIBUTING.md +7 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/PKG-INFO +39 -7
- {specify_cli-1.2.0 → specify_cli-1.2.1}/README.ja.md +2 -1
- specify_cli-1.2.1/README.ko.md +208 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/README.md +38 -6
- {specify_cli-1.2.0 → specify_cli-1.2.1}/README.zh-CN.md +2 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/design/integration.md +8 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/README.md +1 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/extensions.md +2 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/overview.md +3 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/concepts/spec-persistence.md +21 -8
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/evolving-specs.md +20 -12
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/index.md +1 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/install/air-gapped.md +35 -0
- specify_cli-1.2.1/docs/reference/catalogs.md +181 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/extensions.md +7 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/integrations.md +2 -0
- specify_cli-1.2.1/docs/reference/mcp.md +99 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/overview.md +10 -2
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/workflows.md +114 -2
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/toc.yml +2 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/EXTENSION-USER-GUIDE.md +2 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/catalog.community.json +60 -11
- {specify_cli-1.2.0 → specify_cli-1.2.1}/pyproject.toml +1 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/bash/check-prerequisites.sh +6 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/bash/setup-plan.sh +12 -8
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/powershell/check-prerequisites.ps1 +10 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/powershell/setup-plan.ps1 +13 -11
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/python/check_prerequisites.py +10 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/python/setup_plan.py +19 -2
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_invocation_style.py +12 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/command_init.py +9 -21
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/command_mcp.py +1 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/_commands.py +32 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/catalog/command_remove.py +32 -11
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_add.py +1 -14
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_info.py +6 -21
- specify_cli-1.2.1/src/specify_cli/integrations/_capture.py +536 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_lifecycle.py +4 -17
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/base.py +32 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_uninstall.py +44 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/copilot/__init__.py +17 -1
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/_execution.py +40 -10
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_update.py +2 -0
- specify_cli-1.2.1/src/specify_cli/workflows/step/_capture.py +114 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/command/__init__.py +84 -3
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/prompt/__init__.py +55 -8
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_base.py +60 -113
- specify_cli-1.2.1/tests/integrations/test_capture.py +575 -0
- specify_cli-1.2.1/tests/integrations/test_integration_characterization.py +180 -0
- specify_cli-1.2.1/tests/integrations/test_integration_command_code.py +10 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_copilot.py +0 -26
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_docker_agent.py +24 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_dsh.py +0 -39
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_forge.py +0 -36
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_junie.py +24 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_kimi.py +0 -27
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_registry.py +18 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/events/test_events.py +82 -0
- specify_cli-1.2.1/tests/specify_cli/extensions/_helpers.py +105 -0
- specify_cli-1.2.1/tests/specify_cli/extensions/catalog/test_command_remove.py +281 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_add.py +28 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_info.py +51 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_uninstall.py +97 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_installed_adapters.py +91 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_update.py +281 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_check_prerequisites_python_parity.py +64 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_registrar_path_traversal.py +36 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_setup_plan_no_overwrite.py +41 -10
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_setup_plan_python_parity.py +116 -2
- specify_cli-1.2.1/tests/workflows/test_step_capture.py +646 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/README.md +26 -0
- specify_cli-1.2.0/docs/reference/mcp.md +0 -50
- specify_cli-1.2.0/tests/integrations/test_integration_command_code.py +0 -47
- specify_cli-1.2.0/tests/specify_cli/extensions/_helpers.py +0 -46
- specify_cli-1.2.0/tests/specify_cli/extensions/catalog/test_command_remove.py +0 -75
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.devcontainer/post-create.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.editorconfig +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.gitattributes +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/CODEOWNERS +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/ISSUE_TEMPLATE/workflow_step_submission.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/aw/actions-lock.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/dependabot.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/scripts/check_extension_version_bump.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/scripts/check_security_requirements.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/scripts/validate_community_preset.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/scripts/validate_community_workflow_step.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/security-audit-requirements.txt +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/skills/code-review/SKILL.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-bundle.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-bundle.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-workflow-step.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/add-community-workflow-step.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/bug-fix.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/bug-fix.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/bug-test.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/bug-test.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/codeql.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/docs.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/extension-version-guard.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/feature-assess.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/feature-assess.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/pr-assess.lock.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/pr-assess.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/release.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/security.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/stale.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.github/workflows/test.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.gitignore +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.pre-commit-config.yaml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/.zenodo.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/CITATION.cff +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/DEVELOPMENT.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/LICENSE +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/SECURITY.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/SUPPORT.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/bundles/assess/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/bundles/assess/bundle.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/bundles/bugfix/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/bundles/bugfix/bundle.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/bundles/catalog.community.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/bundles/catalog.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/design/cli.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/design/file-helper.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/design/mcp.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/design/shared.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/design/workflow-step.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/.gitignore +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/bundles.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/friends.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/presets.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/walkthroughs.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/community/workflow-steps.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/concepts/complex-features.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/concepts/sdd.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/concepts/spec-of-specs.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/docfx.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/agentic-sdlc.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/assessment.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/bugfix.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/contract-driven-development.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/customization.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/existing-projects.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/guides/monorepo.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/history.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/images/spec-kit-logo.webp +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/install/one-time.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/install/pipx.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/install/pypi.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/install/uv.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/installation.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/local-development.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/quickstart.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/agentic-assessment.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/agentic-bugfix.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/agentic-sdd.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/artifacts.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/authentication.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/bundles.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/core.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/reference/presets.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/template/public/main.css +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/docs/upgrade.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/developer/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/agent-context-defaults.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/commands/speckit.assess.decide.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/commands/speckit.assess.define.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/commands/speckit.assess.intake.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/commands/speckit.assess.research.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/commands/speckit.assess.shape.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/assess/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/bug/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/bug/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/catalog.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/config-template.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/git-config.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/python/auto_commit.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/python/create_new_feature_branch.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/python/git_common.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/git/scripts/python/initialize_repo.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/github/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/github/commands/speckit.github.taskstoissues.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/github/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/github/scripts/bash/resolve-tasks.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/github/scripts/powershell/resolve-tasks.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/github/scripts/python/resolve_tasks.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/selftest/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/.gitignore +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/LICENSE +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/commands/example.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/config-template.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/extensions/template/extension.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/integrations/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/integrations/catalog.community.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/integrations/catalog.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/media/logo_large.webp +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/media/logo_small.webp +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/media/specify_cli.gif +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-April.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-August.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-February.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-July.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-June.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-March.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-May.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/newsletters/2026-September.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/ARCHITECTURE.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/PUBLISHING.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/catalog.community.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/catalog.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/constitution-sync/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/constitution-sync/commands/speckit.constitution.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/constitution-sync/preset.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/lean/preset.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/scaffold/README.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/scaffold/preset.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/preset.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/bash/common.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/bash/create-new-feature.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/bash/resolve-template.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/powershell/resolve-template.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/python/common.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/python/create_new_feature.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/python/resolve_template.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/scripts/python/setup_tasks.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/spec-driven.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/spec-kit.code-workspace +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_assets.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_console.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_download_security.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_file_policy.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_installed_info_json.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_installed_list_json.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_operation_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_project.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_toml_string.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_utils.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/agents.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/_identifiers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/_mcp.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/_operation_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/_operation_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/command_lookup.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/mcp_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/mcp_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/models.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/artifacts/resolution.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/bitbucket.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/github_http.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundler.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/adapters.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog_config.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog_stack.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/catalogs.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_build.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_init.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_install.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_update.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/command_validate.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/component_catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/conflict.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/installer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/manifest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/packager.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/primitives.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/project.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/records.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/references.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/resolver.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/sources.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/validator.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/versioning.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/bundles/yamlio.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/command_check.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/command_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/events/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/events/command_run.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/_command_update_artifacts.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/_command_update_discovery.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/_command_update_transaction.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/catalog/_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/catalog/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/catalog/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_set_priority.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/extensions/command_update.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/file_helper.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_command_scaffold_generation.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_command_upgrade_layout.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_file_changes.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/_registration.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/alquimia/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/catalog/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/catalog/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/catalog/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_code/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_install.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_scaffold.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_status.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_switch.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_upgrade.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/command_use.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/docker_agent/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/droid/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/dsh/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/grok/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/installer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/mcode/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/muse/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/mcp_server/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/mcp_server/_worker.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/mcp_server/catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/mcp_server/executor.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/mcp_server/server.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/mcp_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_manager.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_manager_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_manager_skills.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_manifest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_registry.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/_resolver.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/catalog/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/catalog/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/catalog/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_resolve.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_set_priority.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/presets/command_update.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/selfs/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/selfs/command_check.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/selfs/command_upgrade.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/_catalog_cache.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/_command_resume_state.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/_command_run_ownership.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/base.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/catalog/_domain.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/catalog/_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/catalog/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/catalog/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/catalog/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_resolve.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_resume.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_run.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/command_status.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/composition.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/engine.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/expressions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/command_set_priority.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/composer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/layer_sources.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/merge.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/operations.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/resolver.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/overlay/schema.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/catalog/_domain.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/catalog/_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/catalog/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/catalog/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/catalog/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/do_while/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/fan_in/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/fan_out/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/gate/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/github/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/if_then/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/init/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/installer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/shell/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/slot/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/switch/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/while_loop/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/src/specify_cli/workflows/step/workflow/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/checklist-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/analyze.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/checklist.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/clarify.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/constitution.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/converge.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/implement.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/plan.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/specify.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/tasks.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/constitution-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/plan-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/spec-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/tasks-template.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/templates/vscode-settings.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_bundled_extension_update_delivery.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_bundled_extension_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_extension_version_guard_script.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_firstparty_bundle_catalog_consistency.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_wheel_bundled_presets.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_wheel_bundled_workflows.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/contract/test_wheel_core_pack_scripts.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/assess/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/assess/test_assess_extension.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/bug/test_bug_hooks.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/git/test_git_extension.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/git/test_git_extension_python_parity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/github/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/github/test_github_extension.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/github/test_taskstoissues_deprecation.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/hooks/TESTING.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/hooks/plan.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/hooks/spec.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/hooks/tasks.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/http_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integration/test_preset_update_workflow.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_cli.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_home_isolation.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_alquimia.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_base_yaml.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_cline.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_droid.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_grok.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_mcode.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_muse.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/lock_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/parity_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_catalog_parity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_command_lookup.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_mcp_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_mcp_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_operation_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_operation_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/artifacts/test_registration.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/authentication/helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/authentication/test_authentication.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/authentication/test_github_http.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/_command_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/catalog/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/catalog/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/catalog/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_adapters.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_bundles.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_catalog_config.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_catalog_stack.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_build.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_init.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_install.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_install_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_update.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_command_validate.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_conflict.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_installer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_offline.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_packager.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_primitives.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_records.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_references.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_resolver.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_security_paths.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_sources.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_validator.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_versioning.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/bundles/test_yamlio.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/events/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/events/test_command_run.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/catalog/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/catalog/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_add_path_traversal.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_set_priority.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_update.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_update_artifacts.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_update_discovery.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/extensions/test_command_update_transaction.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/_catalog_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/_scaffold_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/catalog/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/catalog/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/catalog/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_install.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_scaffold.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_scaffold_generation.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_status.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_switch.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_upgrade.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_upgrade_layout.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_command_use.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_lifecycle.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/integrations/test_registration.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/mcp_server/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/mcp_server/test_catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/mcp_server/test_executor.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/mcp_server/test_server.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/mcp_server/test_stdio.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/_fixtures.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/catalog/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/catalog/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/catalog/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_catalog.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_resolve.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_set_priority.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_command_update.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_domain_exports.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_manager.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_manager_commands.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_manager_skills.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_manifest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_registration.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_registry.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/presets/test_resolver.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/self_upgrade_helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/selfs/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/selfs/test_command_check.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/selfs/test_command_upgrade.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_agent_config.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_check_tool.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_command_check.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_command_init.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_command_mcp.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_command_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_file_policy.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_mcp_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_operation_version.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_root_version_callback.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_version_detection.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_version_execution.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_version_guidance.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_version_imports.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_version_release.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/test_version_verification.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/catalog/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/catalog/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/catalog/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/helpers.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/test_command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/test_command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/overlay/test_command_set_priority.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/catalog/__init__.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/catalog/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/catalog/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/catalog/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/catalog/test_registry.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/step/test_installer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_catalog_cache.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_catalog_versions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_add.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_disable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_enable.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_info.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_list.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_remove.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_resolve.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_resume.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_resume_state.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_run.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_run_ownership.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_search.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_command_status.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/specify_cli/workflows/test_custom_steps.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_agent_config_consistency.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_branch_numbering.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_bug_fix_workflow.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_catalog_trust_docs.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_clarify_stage_gate.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_command_template_hooks.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_command_template_py_scripts.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_community_preset_validation.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_console_imports.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_constitution_template_sync_report.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_converge_template_scaffold.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_create_new_feature_python_parity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_download_security.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_extension_registration.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_extension_skills.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_extensions.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_file_helper.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_github_workflows.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_init_dir.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_init_dir_cli.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_installed_info_json.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_installed_list_json.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_merge.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_post_process.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_presets.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_resolve_template_python_parity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_security_workflow.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_setup_tasks.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_setup_tasks_python_parity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_shared_infra_gitignore.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_shared_infra_lock.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_skill_placeholder_py.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_specify_no_persist.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_specify_template_numbering.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_tasks_template_constraints.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_utils.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_workflow_step_submission.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/test_workflows.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/unit/test_condition_expression_block.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/conftest.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_bundled_bugfix_assess_workflows.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_bundled_speckit_workflow.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_composition_execution.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_github_step.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_overlay_composer.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_overlay_layer_sources.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_overlay_merge.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_overlay_schema.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_resolver_integration.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/tests/workflows/test_slot_step.py +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/ARCHITECTURE.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/PUBLISHING.md +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/assess/workflow.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/bugfix/workflow.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/catalog.community.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/catalog.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/step-catalog.community.json +0 -0
- {specify_cli-1.2.0 → specify_cli-1.2.1}/workflows/step-catalog.json +0 -0
|
@@ -44,6 +44,16 @@ an LLM, read
|
|
|
44
44
|
Behavioral changes need positive and negative coverage; bug fixes need
|
|
45
45
|
before-and-after regression evidence.
|
|
46
46
|
|
|
47
|
+
## PowerShell Compatibility
|
|
48
|
+
|
|
49
|
+
All PowerShell scripts in the repository and all generated PowerShell
|
|
50
|
+
functionality MUST target Windows PowerShell 5.1, the version included with
|
|
51
|
+
Windows. When adding or changing PowerShell code, use only syntax, cmdlets,
|
|
52
|
+
parameters, and .NET APIs available in Windows PowerShell 5.1. Account for
|
|
53
|
+
encoding and other runtime differences, preserve the required behavioral
|
|
54
|
+
parity with Bash and Python implementations, and provide Windows PowerShell
|
|
55
|
+
5.1 validation evidence for behavioral changes.
|
|
56
|
+
|
|
47
57
|
## Branches and Agent Contributions
|
|
48
58
|
|
|
49
59
|
When creating a branch, follow [Branch naming](CONTRIBUTING.md#branch-naming).
|
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [1.2.1] - 2026-10-16
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- docs: add catalog reference (#4976)
|
|
10
|
+
- Update Applied Epistemic Engineering extension to v1.5.0 (#4982)
|
|
11
|
+
- Update Evaluator Contract extension to v1.1.1 (#4980)
|
|
12
|
+
- test(integrations): characterize delivery boundaries (#4975)
|
|
13
|
+
- fix(extensions): list commands the way the active agent registers them (#4964)
|
|
14
|
+
- feat(workflows): add opt-in output capture to command and prompt steps (#4957)
|
|
15
|
+
- docs: add README capability map (#4974)
|
|
16
|
+
- docs: target Windows PowerShell 5.1 (#4973)
|
|
17
|
+
- docs(mcp): document the first-class version and artifact tools (#4969)
|
|
18
|
+
- fix(workflows): load custom steps before update (#4768)
|
|
19
|
+
- Add gh-address-cr extension to community catalog (#4971)
|
|
20
|
+
- [bug-fix] Fix missing-plan-template: reject empty plan setup (#4962)
|
|
21
|
+
- fix(powershell): preserve plans in literal feature paths (#4956)
|
|
22
|
+
- fix(extensions): delete the catalog config when the last entry is removed (#4909)
|
|
23
|
+
- fix(integrations): move extension artifacts on integration uninstall (#4911)
|
|
24
|
+
- fix(integrations): show hyphenated command names for docker-agent and junie (#4910)
|
|
25
|
+
- Update Reconcile Extension to v1.3.1 (#4950)
|
|
26
|
+
- docs: add Korean (한국어) README (#4939)
|
|
27
|
+
- docs: distinguish extension reconciliation from core SDD (#4948)
|
|
28
|
+
- chore: release 1.2.0, begin 1.2.1.dev0 development (#4949)
|
|
29
|
+
|
|
5
30
|
## [1.2.0] - 2026-10-13
|
|
6
31
|
|
|
7
32
|
### Changed
|
|
@@ -234,6 +234,13 @@ core scripts, extensions, presets, and tooling; workflow step types; and
|
|
|
234
234
|
execution wiring such as script selection, workflow shell steps, and CI `run:`
|
|
235
235
|
steps. Existing tests count when they cover the changed behavior.
|
|
236
236
|
|
|
237
|
+
Behavioral changes to repository-maintained or generated PowerShell
|
|
238
|
+
functionality must include evidence from Windows PowerShell 5.1 or reproducible
|
|
239
|
+
evidence that demonstrates 5.1 compatibility. All PowerShell scripts in the
|
|
240
|
+
repository and all generated PowerShell functionality MUST target Windows
|
|
241
|
+
PowerShell 5.1. Check syntax, cmdlet and parameter availability, .NET Framework
|
|
242
|
+
APIs, encoding, and process/runtime behavior against that target.
|
|
243
|
+
|
|
237
244
|
Bug fixes also need a regression test that fails before the fix and passes
|
|
238
245
|
afterward. If a baseline or an execution path cannot be tested automatically,
|
|
239
246
|
explain the limitation and provide reproducible evidence for the affected
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: specify-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD).
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -35,12 +35,13 @@ Description-Content-Type: text/markdown
|
|
|
35
35
|
<p align="center">
|
|
36
36
|
<strong>English</strong> ·
|
|
37
37
|
<a href="./README.zh-CN.md">简体中文</a> ·
|
|
38
|
-
<a href="./README.ja.md">日本語</a>
|
|
38
|
+
<a href="./README.ja.md">日本語</a> ·
|
|
39
|
+
<a href="./README.ko.md">한국어</a>
|
|
39
40
|
</p>
|
|
40
41
|
|
|
41
42
|
Spec Kit is an open source toolkit that gives AI coding agents structured
|
|
42
|
-
processes, reusable templates, and documented outcomes. Start with
|
|
43
|
-
|
|
43
|
+
processes, reusable templates, and documented outcomes. Start with a ready-made
|
|
44
|
+
process, customize it, or bring your own.
|
|
44
45
|
|
|
45
46
|
## Choose your process
|
|
46
47
|
|
|
@@ -49,9 +50,40 @@ three processes below, customize it, or bring your own.
|
|
|
49
50
|
| Build a feature or application | [Spec-Driven Development](#spec-driven-development) | A specification carried through planning, implementation, and convergence |
|
|
50
51
|
| Diagnose and repair broken behavior | [Bug fixing](#bug-fixing) | An assessed cause, scoped fix, and recorded verification |
|
|
51
52
|
| Decide whether an idea deserves investment | [Idea assessment](#idea-assessment) | An evidence-backed go, clarify, or stop decision |
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
| Adopt or create a different process | [Your own process](#capabilities) | A process adapted or assembled from reusable primitives |
|
|
54
|
+
|
|
55
|
+
These are **independent entry points**, not mandatory phases. SDD ships in core;
|
|
56
|
+
bug fixing and assessment are bundled extensions you install when needed, and
|
|
57
|
+
the primitives below let you adopt or create other processes.
|
|
58
|
+
|
|
59
|
+
## Capabilities
|
|
60
|
+
|
|
61
|
+
Spec Kit combines ready-to-use processes with composable mechanisms:
|
|
62
|
+
|
|
63
|
+
| Capability | Spec Kit mechanism |
|
|
64
|
+
| --- | --- |
|
|
65
|
+
| Connect to or switch between coding agents | [Integration](https://github.github.io/spec-kit/reference/integrations.html) |
|
|
66
|
+
| Add a command, quality gate, or complete process | [Extension](https://github.github.io/spec-kit/reference/extensions.html) |
|
|
67
|
+
| Connect a process to an external tool or service | [Extension](https://github.github.io/spec-kit/reference/extensions.html) |
|
|
68
|
+
| React to coding-agent lifecycle events | [Extension event hook](https://github.github.io/spec-kit/reference/extensions.html#project-extension-and-hook-configuration) |
|
|
69
|
+
| Adapt templates, commands, terminology, or methodology | [Preset](https://github.github.io/spec-kit/reference/presets.html) |
|
|
70
|
+
| Enforce organizational or regulatory standards | [Preset](https://github.github.io/spec-kit/reference/presets.html) |
|
|
71
|
+
| Override a template for one project | [Project-local override](https://github.github.io/spec-kit/guides/customization.html#project-local-overrides-and-resolution) |
|
|
72
|
+
| Automate prompts, commands, gates, and shell tasks | [Workflow](https://github.github.io/spec-kit/reference/workflows.html) |
|
|
73
|
+
| Modify an installed workflow without forking it | [Workflow overlay](https://github.github.io/spec-kit/reference/workflows.html#workflow-overlays) |
|
|
74
|
+
| Add reusable executable behavior to workflows | [Workflow step](https://github.github.io/spec-kit/reference/workflows.html#custom-step-packages) |
|
|
75
|
+
| Install a curated setup for a role or team | [Bundle](https://github.github.io/spec-kit/reference/bundles.html) |
|
|
76
|
+
| Discover community components | [Catalog](https://github.github.io/spec-kit/reference/catalogs.html) |
|
|
77
|
+
| Host a private catalog of approved components | [Catalog](https://github.github.io/spec-kit/reference/catalogs.html) |
|
|
78
|
+
| Access private catalogs and component downloads | [Authentication](https://github.github.io/spec-kit/reference/authentication.html) |
|
|
79
|
+
| Work offline or behind a firewall | [Local sources and self-hosted catalogs](https://github.github.io/spec-kit/install/air-gapped.html) |
|
|
80
|
+
| Inspect which layer supplies a command, template, or script | [Artifact inventory](https://github.github.io/spec-kit/reference/artifacts.html) |
|
|
81
|
+
|
|
82
|
+
Search the active catalogs with commands such as `specify extension search`,
|
|
83
|
+
`specify preset search`, `specify workflow search`, and `specify bundle search`.
|
|
84
|
+
Spec Kit includes community catalogs, and organizations can add their own
|
|
85
|
+
curated sources. Catalog listings are not audits or endorsements, so review
|
|
86
|
+
community source code before installing or running it.
|
|
55
87
|
|
|
56
88
|
<a id="-get-started"></a>
|
|
57
89
|
<a id="-prerequisites"></a>
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<a href="./README.md">English</a> ·
|
|
16
16
|
<a href="./README.zh-CN.md">简体中文</a> ·
|
|
17
|
-
<strong>日本語</strong>
|
|
17
|
+
<strong>日本語</strong> ·
|
|
18
|
+
<a href="./README.ko.md">한국어</a>
|
|
18
19
|
</p>
|
|
19
20
|
|
|
20
21
|
Spec Kitは、AIコーディングエージェントに構造化されたプロセス、再利用可能なテンプレート、記録に残る成果をもたらすオープンソースのツールキットです。以下の3つのプロセスのいずれかから始め、必要に応じてカスタマイズしたり、自分自身のプロセスを持ち込んだりすることもできます。
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/github/spec-kit/main/media/logo_large.webp" alt="Spec Kit 로고" width="200" height="200"/>
|
|
3
|
+
<h1>🌱 Spec Kit</h1>
|
|
4
|
+
<h3><em>코딩 에이전트와 함께 스펙으로 개발하고, 버그를 고치고, 아이디어를 평가하세요.</em></h3>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/github/spec-kit/releases/latest"><img src="https://img.shields.io/github/v/release/github/spec-kit" alt="최신 릴리스"/></a>
|
|
9
|
+
<a href="https://github.com/github/spec-kit/stargazers"><img src="https://img.shields.io/github/stars/github/spec-kit?style=social" alt="GitHub stars"/></a>
|
|
10
|
+
<a href="https://github.com/github/spec-kit/blob/main/LICENSE"><img src="https://img.shields.io/github/license/github/spec-kit" alt="라이선스"/></a>
|
|
11
|
+
<a href="https://github.github.io/spec-kit/"><img src="https://img.shields.io/badge/docs-GitHub_Pages-blue" alt="문서"/></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="./README.md">English</a> ·
|
|
16
|
+
<a href="./README.zh-CN.md">简体中文</a> ·
|
|
17
|
+
<a href="./README.ja.md">日本語</a> ·
|
|
18
|
+
<strong>한국어</strong>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
Spec Kit은 AI 코딩 에이전트에게 체계적인 프로세스, 재사용 가능한 템플릿, 문서로 남는 결과물을
|
|
22
|
+
제공하는 오픈 소스 툴킷입니다. 아래 세 가지 프로세스 중 하나로 시작해 필요에 맞게 고쳐 쓰거나,
|
|
23
|
+
직접 만든 프로세스를 가져와도 됩니다.
|
|
24
|
+
|
|
25
|
+
## 프로세스 선택
|
|
26
|
+
|
|
27
|
+
| 필요한 것 | 프로세스 | 결과 |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| 기능이나 애플리케이션 만들기 | [스펙 주도 개발](#스펙-주도-개발) | 계획, 구현, 수렴까지 이어지는 스펙 |
|
|
30
|
+
| 잘못된 동작을 진단하고 고치기 | [버그 수정](#버그-수정) | 평가를 거친 원인, 범위를 한정한 수정, 기록으로 남는 검증 |
|
|
31
|
+
| 아이디어에 투자할 가치가 있는지 판단하기 | [아이디어 평가](#아이디어-평가) | 근거에 기반한 진행, 명확화, 중단 결정 |
|
|
32
|
+
|
|
33
|
+
세 프로세스는 반드시 거쳐야 하는 세 단계가 아니라 **각각 독립된 진입점**입니다. 스펙 주도 개발(SDD)은
|
|
34
|
+
코어에 포함되어 있고, 버그 수정과 아이디어 평가는 Spec Kit에 함께 제공되며 필요할 때 설치하는 확장입니다.
|
|
35
|
+
|
|
36
|
+
<a id="-get-started"></a>
|
|
37
|
+
<a id="-prerequisites"></a>
|
|
38
|
+
|
|
39
|
+
## 시작하기
|
|
40
|
+
|
|
41
|
+
Linux, macOS, Windows 환경에서 **Python 3.11+**, **[uv](https://github.github.io/spec-kit/install/uv.html)**,
|
|
42
|
+
그리고 지원되는 AI 코딩 에이전트가 필요합니다.
|
|
43
|
+
**CLI 설정**은 터미널에서 진행합니다. 아래 명령어를 실행해 Spec Kit을 설치하고 프로젝트를 만드세요:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uv tool install specify-cli
|
|
47
|
+
specify init my-project --integration copilot
|
|
48
|
+
cd my-project
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
<a id="-supported-ai-coding-agent-integrations"></a>
|
|
52
|
+
|
|
53
|
+
예시는 **GitHub Copilot의 기본 스킬 모드**를 기준으로 합니다. 지원되는 다른 에이전트를 쓰려면
|
|
54
|
+
`copilot`을 해당 에이전트의 [통합 키](https://github.github.io/spec-kit/reference/integrations.html)로 바꾸세요.
|
|
55
|
+
|
|
56
|
+
이미 코드가 있나요? [기존 프로젝트 가이드](https://github.github.io/spec-kit/guides/existing-projects.html)를 따르세요.
|
|
57
|
+
특정 버전 고정, 다른 설치 방법, CI, 문제 해결은
|
|
58
|
+
[설치](https://github.github.io/spec-kit/installation.html) 문서를 참고하세요.
|
|
59
|
+
기존 설치를 업데이트하려면 [업그레이드](https://github.github.io/spec-kit/upgrade.html) 문서를 참고하세요.
|
|
60
|
+
|
|
61
|
+
이제 **프로젝트 디렉터리에서 코딩 에이전트를 실행**하고 아래 프로세스 중 하나를 고르세요.
|
|
62
|
+
각 `/speckit-*` **스킬은 에이전트 채팅에서** 한 번에 하나씩 호출하고, 결과를 검토한 뒤 다음으로
|
|
63
|
+
넘어가세요. 이들은 터미널 명령어가 아니라 에이전트 스킬입니다. 에이전트나 모드에 따라
|
|
64
|
+
[호출 문법이 다를 수 있습니다](https://github.github.io/spec-kit/reference/integrations.html#command-invocation).
|
|
65
|
+
|
|
66
|
+
<a id="-what-is-spec-driven-development"></a>
|
|
67
|
+
<a id="sdd-quickstart"></a>
|
|
68
|
+
|
|
69
|
+
## 스펙 주도 개발
|
|
70
|
+
|
|
71
|
+
**어떻게** 만들지 정하기 전에 **무엇을, 왜** 만드는지부터 정의합니다. SDD는 요구 사항을 스펙,
|
|
72
|
+
기술 계획, 실행 가능한 작업으로 바꾸고, 이 산출물을 기준으로 구현을 이끕니다.
|
|
73
|
+
|
|
74
|
+
**원칙(constitution)은 프로젝트당 한 번 정하고, 기능마다 스펙 작성(specify) → 계획(plan) → 작업 분해(tasks) → 구현(implement) → 수렴(converge)을 진행합니다.**
|
|
75
|
+
|
|
76
|
+
에이전트 채팅에서 다음 스킬을 호출하세요:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
/speckit-constitution Create principles focused on code quality, testing, and maintainability.
|
|
80
|
+
/speckit-specify Build a photo organizer with albums grouped by date and a tile preview of each album.
|
|
81
|
+
/speckit-plan Use Vite with vanilla JavaScript. Keep images local and store metadata in SQLite.
|
|
82
|
+
/speckit-tasks
|
|
83
|
+
/speckit-implement
|
|
84
|
+
/speckit-converge
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
수렴 결과가 **Converged**로 나올 때까지 **implement → converge**를 반복하세요.
|
|
88
|
+
품질 게이트를 더 두고 싶다면 명확화, 체크리스트, 일관성 분석을 추가하세요.
|
|
89
|
+
|
|
90
|
+
[SDD 실습 가이드](https://github.github.io/spec-kit/quickstart.html) ·
|
|
91
|
+
[명령어 레퍼런스](https://github.github.io/spec-kit/reference/agentic-sdd.html)
|
|
92
|
+
|
|
93
|
+
<a id="-bug-fixing-with-spec-kit"></a>
|
|
94
|
+
<a id="bug-fix-quickstart"></a>
|
|
95
|
+
|
|
96
|
+
## 버그 수정
|
|
97
|
+
|
|
98
|
+
진단, 수정, 검증을 분리해서 에이전트가 평가로 밝혀낸 원인을 고치고 원래 증상을 다시 확인하게
|
|
99
|
+
합니다. SDD 기능 워크플로를 먼저 거칠 필요는 없습니다.
|
|
100
|
+
|
|
101
|
+
**CLI 설정(터미널):** 프로젝트 디렉터리에서 선택형 확장을 설치하세요:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
specify extension add bug
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
그다음 에이전트 채팅에서 **평가(assess) → 수정(fix) → 테스트(test)** 스킬을 호출하세요:
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
/speckit-bug-assess "Submitting an empty password crashes the login form." slug=login-crash
|
|
111
|
+
/speckit-bug-fix slug=login-crash
|
|
112
|
+
/speckit-bug-test slug=login-crash
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
보고서는 `.specify/bugs/login-crash/`에 저장됩니다. 최종 판정이
|
|
116
|
+
`verified`(검증됨), `partial`(부분 검증), `failed`(실패) 중 무엇인지 확인하세요. 검증이 빠졌다면 수정에
|
|
117
|
+
성공한 것이 아닙니다.
|
|
118
|
+
|
|
119
|
+
[버그 수정 실습 가이드](https://github.github.io/spec-kit/guides/bugfix.html) ·
|
|
120
|
+
[명령어 레퍼런스](https://github.github.io/spec-kit/reference/agentic-bugfix.html)
|
|
121
|
+
|
|
122
|
+
<a id="-assessing-ideas-with-spec-kit"></a>
|
|
123
|
+
<a id="idea-assessment-quickstart"></a>
|
|
124
|
+
|
|
125
|
+
## 아이디어 평가
|
|
126
|
+
|
|
127
|
+
소프트웨어가 되든 안 되든, 아이디어에 뛰어들기 전에 근거부터 모읍니다.
|
|
128
|
+
독립적으로 쓰는 프로세스라서 소스 코드가 없는 프로젝트에서도 동작합니다.
|
|
129
|
+
|
|
130
|
+
**CLI 설정(터미널):** 프로젝트 디렉터리에서 선택형 확장을 설치하세요:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
specify extension add assess
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
그다음 에이전트 채팅에서 **접수(intake) → 조사(research) → 정의(define) → 구체화(shape) → 결정(decide)** 스킬을 호출하세요:
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
/speckit-assess-intake "Let users work offline and sync when they reconnect." slug=offline-mode
|
|
140
|
+
/speckit-assess-research slug=offline-mode
|
|
141
|
+
/speckit-assess-define slug=offline-mode
|
|
142
|
+
/speckit-assess-shape slug=offline-mode
|
|
143
|
+
/speckit-assess-decide slug=offline-mode
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
산출물은 `.specify/assessments/offline-mode/`에 저장되며, 마지막에
|
|
147
|
+
**진행(go) / 명확화 필요(needs-clarification) / 중단(kill)** 중 하나로 결정이 나옵니다.
|
|
148
|
+
불확실한 부분은 단계 전체를 다시 생성하지 말고, 기존 Markdown 산출물을 직접 또는 에이전트와 함께
|
|
149
|
+
다듬어 해소하세요. 만들기로 했다면 `go` 결정을 `/speckit-specify`로 넘길 수 있습니다. 이유를
|
|
150
|
+
기록해 두고 멈추는 것도 유용한 결과입니다.
|
|
151
|
+
|
|
152
|
+
[아이디어 평가 실습 가이드](https://github.github.io/spec-kit/guides/assessment.html) ·
|
|
153
|
+
[명령어 레퍼런스](https://github.github.io/spec-kit/reference/agentic-assessment.html)
|
|
154
|
+
|
|
155
|
+
<a id="-making-spec-kit-your-own-extensions--presets"></a>
|
|
156
|
+
<a id="-bundles-role-based-setups"></a>
|
|
157
|
+
<a id="-community"></a>
|
|
158
|
+
|
|
159
|
+
## 커스터마이즈하거나 직접 만든 프로세스 가져오기
|
|
160
|
+
|
|
161
|
+
**확장**은 기능을 추가하고, **프리셋**은 기존 동작을 조정하며, **워크플로**는 단계를 자동화하고,
|
|
162
|
+
**번들**은 역할별 구성을 하나로 묶습니다. 일회성 템플릿 변경에는 프로젝트 로컬 오버라이드를 사용하세요.
|
|
163
|
+
|
|
164
|
+
[커스터마이즈 가이드](https://github.github.io/spec-kit/guides/customization.html) ·
|
|
165
|
+
[커뮤니티 확장, 프리셋, 번들, 실습 가이드](https://github.github.io/spec-kit/community/overview.html)
|
|
166
|
+
|
|
167
|
+
<a id="-specify-cli-reference"></a>
|
|
168
|
+
<a id="available-slash-commands"></a>
|
|
169
|
+
<a id="-learn-more"></a>
|
|
170
|
+
<a id="-core-philosophy"></a>
|
|
171
|
+
<a id="-development-phases"></a>
|
|
172
|
+
<a id="-experimental-goals"></a>
|
|
173
|
+
<a id="-video-overview"></a>
|
|
174
|
+
<a id="-does-spec-kit-use-spec-kit"></a>
|
|
175
|
+
|
|
176
|
+
## 문서
|
|
177
|
+
|
|
178
|
+
- [CLI 레퍼런스](https://github.github.io/spec-kit/reference/overview.html)와 [프로세스 명령어](https://github.github.io/spec-kit/reference/agentic-sdd.html#command-overview)
|
|
179
|
+
- [SDD 철학](https://github.github.io/spec-kit/concepts/sdd.html), [전체 방법론](./spec-driven.md), [기존 스펙 발전시키기](https://github.github.io/spec-kit/guides/evolving-specs.html)
|
|
180
|
+
- [소개 영상](https://github.github.io/spec-kit/quickstart.html#video-overview)과 [프로젝트 연혁](https://github.github.io/spec-kit/history.html)
|
|
181
|
+
- [Spec Kit이 Spec Kit을 쓰는 방법](./CONTRIBUTING.md#does-spec-kit-use-spec-kit)
|
|
182
|
+
|
|
183
|
+
## 스타 추이
|
|
184
|
+
|
|
185
|
+
<p align="center">
|
|
186
|
+
<a href="https://www.star-history.com/#github/spec-kit&Date">
|
|
187
|
+
<picture>
|
|
188
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=github%2Fspec-kit&type=Date&theme=dark"/>
|
|
189
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=github%2Fspec-kit&type=Date"/>
|
|
190
|
+
<img src="https://api.star-history.com/svg?repos=github%2Fspec-kit&type=Date" alt="Spec Kit 스타 추이 차트"/>
|
|
191
|
+
</picture>
|
|
192
|
+
</a>
|
|
193
|
+
</p>
|
|
194
|
+
|
|
195
|
+
<p align="center">
|
|
196
|
+
<em>Spec Kit을 빛내 주시는 모든 분께 감사드립니다.</em>
|
|
197
|
+
</p>
|
|
198
|
+
|
|
199
|
+
<a id="-support"></a>
|
|
200
|
+
|
|
201
|
+
## 지원 및 기여
|
|
202
|
+
|
|
203
|
+
[버그 신고 또는 기능 요청](https://github.com/github/spec-kit/issues/new) ·
|
|
204
|
+
[기여 가이드](./CONTRIBUTING.md) · [행동 강령](./CODE_OF_CONDUCT.md)
|
|
205
|
+
|
|
206
|
+
<a id="-license"></a>
|
|
207
|
+
|
|
208
|
+
Spec Kit은 [MIT 라이선스](./LICENSE)로 배포됩니다.
|
|
@@ -14,12 +14,13 @@
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<strong>English</strong> ·
|
|
16
16
|
<a href="./README.zh-CN.md">简体中文</a> ·
|
|
17
|
-
<a href="./README.ja.md">日本語</a>
|
|
17
|
+
<a href="./README.ja.md">日本語</a> ·
|
|
18
|
+
<a href="./README.ko.md">한국어</a>
|
|
18
19
|
</p>
|
|
19
20
|
|
|
20
21
|
Spec Kit is an open source toolkit that gives AI coding agents structured
|
|
21
|
-
processes, reusable templates, and documented outcomes. Start with
|
|
22
|
-
|
|
22
|
+
processes, reusable templates, and documented outcomes. Start with a ready-made
|
|
23
|
+
process, customize it, or bring your own.
|
|
23
24
|
|
|
24
25
|
## Choose your process
|
|
25
26
|
|
|
@@ -28,9 +29,40 @@ three processes below, customize it, or bring your own.
|
|
|
28
29
|
| Build a feature or application | [Spec-Driven Development](#spec-driven-development) | A specification carried through planning, implementation, and convergence |
|
|
29
30
|
| Diagnose and repair broken behavior | [Bug fixing](#bug-fixing) | An assessed cause, scoped fix, and recorded verification |
|
|
30
31
|
| Decide whether an idea deserves investment | [Idea assessment](#idea-assessment) | An evidence-backed go, clarify, or stop decision |
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
| Adopt or create a different process | [Your own process](#capabilities) | A process adapted or assembled from reusable primitives |
|
|
33
|
+
|
|
34
|
+
These are **independent entry points**, not mandatory phases. SDD ships in core;
|
|
35
|
+
bug fixing and assessment are bundled extensions you install when needed, and
|
|
36
|
+
the primitives below let you adopt or create other processes.
|
|
37
|
+
|
|
38
|
+
## Capabilities
|
|
39
|
+
|
|
40
|
+
Spec Kit combines ready-to-use processes with composable mechanisms:
|
|
41
|
+
|
|
42
|
+
| Capability | Spec Kit mechanism |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| Connect to or switch between coding agents | [Integration](https://github.github.io/spec-kit/reference/integrations.html) |
|
|
45
|
+
| Add a command, quality gate, or complete process | [Extension](https://github.github.io/spec-kit/reference/extensions.html) |
|
|
46
|
+
| Connect a process to an external tool or service | [Extension](https://github.github.io/spec-kit/reference/extensions.html) |
|
|
47
|
+
| React to coding-agent lifecycle events | [Extension event hook](https://github.github.io/spec-kit/reference/extensions.html#project-extension-and-hook-configuration) |
|
|
48
|
+
| Adapt templates, commands, terminology, or methodology | [Preset](https://github.github.io/spec-kit/reference/presets.html) |
|
|
49
|
+
| Enforce organizational or regulatory standards | [Preset](https://github.github.io/spec-kit/reference/presets.html) |
|
|
50
|
+
| Override a template for one project | [Project-local override](https://github.github.io/spec-kit/guides/customization.html#project-local-overrides-and-resolution) |
|
|
51
|
+
| Automate prompts, commands, gates, and shell tasks | [Workflow](https://github.github.io/spec-kit/reference/workflows.html) |
|
|
52
|
+
| Modify an installed workflow without forking it | [Workflow overlay](https://github.github.io/spec-kit/reference/workflows.html#workflow-overlays) |
|
|
53
|
+
| Add reusable executable behavior to workflows | [Workflow step](https://github.github.io/spec-kit/reference/workflows.html#custom-step-packages) |
|
|
54
|
+
| Install a curated setup for a role or team | [Bundle](https://github.github.io/spec-kit/reference/bundles.html) |
|
|
55
|
+
| Discover community components | [Catalog](https://github.github.io/spec-kit/reference/catalogs.html) |
|
|
56
|
+
| Host a private catalog of approved components | [Catalog](https://github.github.io/spec-kit/reference/catalogs.html) |
|
|
57
|
+
| Access private catalogs and component downloads | [Authentication](https://github.github.io/spec-kit/reference/authentication.html) |
|
|
58
|
+
| Work offline or behind a firewall | [Local sources and self-hosted catalogs](https://github.github.io/spec-kit/install/air-gapped.html) |
|
|
59
|
+
| Inspect which layer supplies a command, template, or script | [Artifact inventory](https://github.github.io/spec-kit/reference/artifacts.html) |
|
|
60
|
+
|
|
61
|
+
Search the active catalogs with commands such as `specify extension search`,
|
|
62
|
+
`specify preset search`, `specify workflow search`, and `specify bundle search`.
|
|
63
|
+
Spec Kit includes community catalogs, and organizations can add their own
|
|
64
|
+
curated sources. Catalog listings are not audits or endorsements, so review
|
|
65
|
+
community source code before installing or running it.
|
|
34
66
|
|
|
35
67
|
<a id="-get-started"></a>
|
|
36
68
|
<a id="-prerequisites"></a>
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<a href="./README.md">English</a> ·
|
|
16
16
|
<strong>简体中文</strong> ·
|
|
17
|
-
<a href="./README.ja.md">日本語</a>
|
|
17
|
+
<a href="./README.ja.md">日本語</a> ·
|
|
18
|
+
<a href="./README.ko.md">한국어</a>
|
|
18
19
|
</p>
|
|
19
20
|
|
|
20
21
|
Spec Kit 是一个开源工具套件,为 AI 编码助手提供结构化流程、可复用模板和有据可查的成果。
|
|
@@ -72,6 +72,14 @@ Core templates that call scripts declare `sh`, `ps`, and `py` commands in
|
|
|
72
72
|
`scripts:` frontmatter; template processing replaces `{SCRIPT}` with the
|
|
73
73
|
selected variant. `py` is opt-in; non-interactive init defaults to `sh` on
|
|
74
74
|
POSIX or `ps` on Windows. Maintain equivalent stdout behavior across all three.
|
|
75
|
+
All PowerShell scripts in the repository and all PowerShell functionality
|
|
76
|
+
generated from repository templates MUST target Windows PowerShell 5.1. All
|
|
77
|
+
such code must use only language features, cmdlets, parameters, and runtime
|
|
78
|
+
APIs available in Windows PowerShell 5.1. Implementations must also account for
|
|
79
|
+
encoding, .NET Framework, and process/runtime differences in Windows
|
|
80
|
+
PowerShell 5.1 while preserving the required Bash and Python behavioral parity.
|
|
81
|
+
Validation evidence for behavioral PowerShell changes must exercise Windows
|
|
82
|
+
PowerShell 5.1 or otherwise demonstrate 5.1 compatibility.
|
|
75
83
|
Bundled extension commands do not yet use this core-template script routing.
|
|
76
84
|
`__AGENT__` and command references are resolved during rendering, not by
|
|
77
85
|
adding per-agent wrapper scripts. For `generic`, extension registration
|
|
@@ -32,6 +32,7 @@ To build the documentation locally:
|
|
|
32
32
|
- `guides/bugfix.md` - Bug-fixing walkthrough
|
|
33
33
|
- `guides/assessment.md` - Idea assessment walkthrough
|
|
34
34
|
- `guides/customization.md` - Choosing and combining customization building blocks
|
|
35
|
+
- `reference/catalogs.md` - Catalog discovery, trust, private sources, and precedence
|
|
35
36
|
- `reference/agentic-*.md` - Detailed process command references
|
|
36
37
|
- `_site/` - Generated documentation output (ignored by git)
|
|
37
38
|
|
|
@@ -79,6 +79,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
79
79
|
| 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) |
|
|
80
80
|
| FixIt Extension | Spec-aware bug fixing — maps bugs to spec artifacts, proposes a plan, applies minimal changes | `code` | Read+Write | [spec-kit-fixit](https://github.com/speckit-community/spec-kit-fixit) |
|
|
81
81
|
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | `process` | Read+Write | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) |
|
|
82
|
+
| gh-address-cr | Auditable PR review-resolution & trust-gated address engine for Spec Kit workflows. | `process` | Read+Write | [spec-kit-extensions](https://github.com/RbBtSn0w/spec-kit-extensions) |
|
|
82
83
|
| GitHub Issue Triage | Fetch open GitHub issues, classify each as bug, feature, or chore, then delegate to the correct workflow without saving bugs or chores as specs. | `integration` | Read+Write | [speckit-extensions](https://github.com/arrrrny/speckit-extensions) |
|
|
83
84
|
| GitHub Issues Integration 1 | Generate spec artifacts from GitHub Issues - import issues, sync updates, and maintain bidirectional traceability | `integration` | Read+Write | [spec-kit-github-issues](https://github.com/Fatima367/spec-kit-github-issues) |
|
|
84
85
|
| GitHub Issues Integration 2 | Creates and syncs local specs from an existing GitHub issue | `integration` | Read+Write | [spec-kit-issue](https://github.com/aaronrsun/spec-kit-issue) |
|
|
@@ -138,7 +139,7 @@ The following community-contributed extensions are available in [`catalog.commun
|
|
|
138
139
|
| Quality Gates (Enforcement Layer) | Deterministic quality enforcement for Spec Kit projects at three boundaries: the agent boundary (Claude Code PreToolUse/PostToolUse/Stop hooks), the git boundary (pre-commit / pre-merge-commit / commit-msg), and the CI boundary (projected GitHub Actions / GitLab CI / Jenkins pipelines). One policy file, one verify entrypoint, identical results at every boundary. | `process` | Read+Write | [spec-gates](https://github.com/schwichtgit/spec-gates) |
|
|
139
140
|
| RAG Azure Builder | Spec Kit extension for onboarding and operating an Azure RAG stack with guided workflows. | `process` | Read+Write | [spec-kit-extension-rag-azure-builder](https://github.com/Sertxito/spec-kit-extension-rag-azure-builder) |
|
|
140
141
|
| Ralph Loop | Autonomous implementation loop using AI agent CLI | `code` | Read+Write | [spec-kit-ralph](https://github.com/Rubiss-Projects/spec-kit-ralph) |
|
|
141
|
-
| Reconcile Extension | Reconcile implementation drift by surgically updating feature
|
|
142
|
+
| Reconcile Extension | Reconcile implementation drift by surgically updating the feature's own spec, plan, and tasks. | `docs` | Read+Write | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
|
|
142
143
|
| Red Team | Adversarial review of specs before /speckit.plan — parallel lens agents surface risks that clarify/analyze structurally can't (prompt injection, integrity gaps, cross-spec drift, silent failures). Produces a structured findings report; no auto-edits to specs. | `docs` | Read+Write | [spec-kit-red-team](https://github.com/ashbrener/spec-kit-red-team) |
|
|
143
144
|
| Research Harness | State-externalizing research harness: budgeted exploration, evidence curation, and claim verification for spec-driven development | `process` | Read+Write | [spec-kit-harness](https://github.com/formin/spec-kit-harness) |
|
|
144
145
|
| Repository Governance | Generate project-governance projections from Spec Kit metadata | `process` | Read+Write | [spec-kit-agent-governance](https://github.com/bigsmartben/spec-kit-agent-governance) |
|
|
@@ -6,6 +6,9 @@ The Spec Kit community builds extensions, presets, bundles, workflow steps, walk
|
|
|
6
6
|
> Review community source code before installation and use it at your own
|
|
7
7
|
> discretion. A catalog listing is not an audit or endorsement.
|
|
8
8
|
|
|
9
|
+
Learn how discovery-only community sources and approved private sources fit
|
|
10
|
+
together in the [catalog reference](../reference/catalogs.md).
|
|
11
|
+
|
|
9
12
|
## Extensions
|
|
10
13
|
|
|
11
14
|
Extensions add new capabilities to Spec Kit — domain-specific commands, external tool integrations, quality gates, and more. Over 130 community extensions are available from 70+ authors, covering everything from accessibility governance to multi-agent orchestration.
|
|
@@ -19,11 +19,21 @@ is adding remaining work to `tasks.md`. It does not select a persistence model,
|
|
|
19
19
|
rewrite intent to match code, or treat approval of code as agreement with
|
|
20
20
|
documented intent.
|
|
21
21
|
|
|
22
|
+
The core workflow has no dedicated command that automatically reconciles
|
|
23
|
+
differences among `spec.md`, `plan.md`, and `tasks.md`. Analyze reports
|
|
24
|
+
inconsistencies without editing artifacts, and converge only appends remaining
|
|
25
|
+
work to `tasks.md`. Teams can reconcile artifacts directly, and extensions can
|
|
26
|
+
provide their own commands or hooks to coordinate reconciliation during or
|
|
27
|
+
after delivery. Extension behavior does not change the responsibilities of the
|
|
28
|
+
core commands.
|
|
29
|
+
|
|
22
30
|
Persistence is the team's choice of how to maintain artifacts **after
|
|
23
31
|
delivery**, not an alternative way to deliver or determine completeness.
|
|
24
32
|
Discoveries can occur during implementation, but their timing does not define
|
|
25
|
-
the persistence model.
|
|
26
|
-
|
|
33
|
+
the persistence model. Reconciliation can also occur during delivery without
|
|
34
|
+
becoming part of the core workflow or the persistence strategy. If the team
|
|
35
|
+
agrees to change the intended contract, make that intent explicit in the
|
|
36
|
+
artifacts and deliver against it.
|
|
27
37
|
|
|
28
38
|
A later change requiring implementation still goes through the shared delivery
|
|
29
39
|
process and convergence against its explicit intended artifacts, whether those
|
|
@@ -55,14 +65,17 @@ all allowed to inform each other.
|
|
|
55
65
|
|
|
56
66
|
After delivery, accepted discoveries can inform maintenance edits to any
|
|
57
67
|
artifact. The team decides what those discoveries mean for intended behavior,
|
|
58
|
-
technical approach, or task breakdown
|
|
59
|
-
`plan.md`, and `tasks.md`
|
|
60
|
-
evidence for that discussion, not a replacement
|
|
68
|
+
technical approach, or task breakdown. The team can reconcile `spec.md`,
|
|
69
|
+
`plan.md`, and `tasks.md` itself or use an extension whose documented behavior
|
|
70
|
+
does so. The implementation is evidence for that discussion, not a replacement
|
|
71
|
+
source of intent.
|
|
61
72
|
|
|
62
73
|
This is a team-owned maintenance convention, not a requirement for a new core
|
|
63
|
-
amendment command or an artifact-rewriting role for converge.
|
|
64
|
-
|
|
65
|
-
|
|
74
|
+
amendment command or an artifact-rewriting role for analyze or converge.
|
|
75
|
+
Extension-provided reconciliation remains extension behavior, whether it runs
|
|
76
|
+
during or after delivery. If reconciliation identifies implementation work,
|
|
77
|
+
deliver that change through the shared process against the explicit intended
|
|
78
|
+
artifacts.
|
|
66
79
|
|
|
67
80
|
Flow-back works well when:
|
|
68
81
|
|
|
@@ -44,10 +44,18 @@ Converge is append-only: its only possible write is adding tasks to `tasks.md`.
|
|
|
44
44
|
It does not choose a persistence strategy or rewrite the artifacts to accept
|
|
45
45
|
code as a replacement for documented intent.
|
|
46
46
|
|
|
47
|
+
Core has no dedicated command that automatically reconciles differences among
|
|
48
|
+
`spec.md`, `plan.md`, and `tasks.md`. `/speckit.analyze` reports inconsistencies
|
|
49
|
+
without changing the artifacts. A team can reconcile them directly, or an
|
|
50
|
+
extension can provide commands or hooks that do so during or after delivery
|
|
51
|
+
according to that extension's documented behavior. Those actions do not change
|
|
52
|
+
the responsibilities of the core commands.
|
|
53
|
+
|
|
47
54
|
Discoveries may arise during delivery under any model. If they lead to an
|
|
48
55
|
agreed change of intent, make the revised contract explicit in the artifacts
|
|
49
|
-
and deliver against it.
|
|
50
|
-
|
|
56
|
+
and deliver against it. Reconciliation may occur during delivery, but the
|
|
57
|
+
maintenance choices below describe what the team persists after delivery; they
|
|
58
|
+
do not replace this loop.
|
|
51
59
|
|
|
52
60
|
## Flow-Forward Spec
|
|
53
61
|
|
|
@@ -68,17 +76,16 @@ Use living spec when `spec.md` is the contract and `plan.md` and `tasks.md` are
|
|
|
68
76
|
derived from it.
|
|
69
77
|
|
|
70
78
|
After delivery, maintain `spec.md` as the contract. When intended behavior
|
|
71
|
-
changes, revise the existing `spec.md` first. Then
|
|
72
|
-
|
|
79
|
+
changes, revise the existing `spec.md` first. Then reconcile downstream
|
|
80
|
+
artifacts so they match the updated spec:
|
|
73
81
|
|
|
74
|
-
1. Start from a clean working tree or a dedicated branch so every
|
|
82
|
+
1. Start from a clean working tree or a dedicated branch so every artifact
|
|
75
83
|
change is reviewable.
|
|
76
|
-
2. Update `spec.md` with
|
|
77
|
-
3.
|
|
78
|
-
the
|
|
79
|
-
4.
|
|
80
|
-
|
|
81
|
-
5. Run `/speckit.analyze` to catch gaps between the spec, plan, and tasks.
|
|
84
|
+
2. Update `spec.md` with the intended contract.
|
|
85
|
+
3. Reconcile `plan.md` and `tasks.md` directly or through an extension according
|
|
86
|
+
to the team's documented convention.
|
|
87
|
+
4. Run `/speckit.analyze` to report any remaining gaps between the spec, plan,
|
|
88
|
+
and tasks.
|
|
82
89
|
|
|
83
90
|
These steps maintain the artifact set; they do not deliver changed behavior.
|
|
84
91
|
If the revised contract requires implementation, use the shared delivery loop
|
|
@@ -107,7 +114,8 @@ alignment with that agreed direction:
|
|
|
107
114
|
|
|
108
115
|
The implementation provides evidence for the team's decision; accepting code
|
|
109
116
|
does not automatically make it the intended contract. Reconcile the artifacts
|
|
110
|
-
|
|
117
|
+
directly or through an extension. Analyze and converge do not provide automatic
|
|
118
|
+
all-artifact reconciliation, and no core amendment command is required. If the
|
|
111
119
|
agreed direction requires implementation, use the shared delivery loop above
|
|
112
120
|
against explicit intended artifacts.
|
|
113
121
|
|
|
@@ -172,7 +172,7 @@ Community extensions like CI Guard and Architecture Guard add compliance gates a
|
|
|
172
172
|
</a>
|
|
173
173
|
<a href="reference/overview.md" class="nav-card">
|
|
174
174
|
<strong>Reference</strong>
|
|
175
|
-
<span>Core commands, integrations, extensions, presets, and workflows</span>
|
|
175
|
+
<span>Core commands, catalogs, integrations, extensions, presets, and workflows</span>
|
|
176
176
|
</a>
|
|
177
177
|
<a href="community/overview.md" class="nav-card">
|
|
178
178
|
<strong>Community</strong>
|