specify-cli 1.1.1__tar.gz → 1.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/bundle_submission.yml +2 -2
- specify_cli-1.1.2/.github/ISSUE_TEMPLATE/workflow_step_submission.yml +254 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/AGENTS.md +12 -4
- {specify_cli-1.1.1 → specify_cli-1.1.2}/CHANGELOG.md +25 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/PKG-INFO +1 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/design/cli.md +101 -39
- specify_cli-1.1.2/design/mcp.md +670 -0
- specify_cli-1.1.2/design/shared.md +424 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/community/extensions.md +2 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/community/overview.md +10 -2
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/community/presets.md +1 -1
- specify_cli-1.1.2/docs/community/workflow-steps.md +129 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/bundles.md +40 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/extensions.md +22 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/presets.md +17 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/workflows.md +6 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/toc.yml +2 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/catalog.community.json +60 -9
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/catalog.community.json +15 -12
- {specify_cli-1.1.1 → specify_cli-1.1.2}/pyproject.toml +1 -1
- specify_cli-1.1.2/src/specify_cli/_installed_info_json.py +119 -0
- specify_cli-1.1.2/src/specify_cli/_operation_version.py +116 -0
- specify_cli-1.1.2/src/specify_cli/artifacts/_mcp.py +92 -0
- specify_cli-1.1.2/src/specify_cli/artifacts/_operation_list.py +256 -0
- specify_cli-1.1.2/src/specify_cli/artifacts/command_list.py +60 -0
- specify_cli-1.1.2/src/specify_cli/artifacts/mcp_list.py +397 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalog_stack.py +15 -2
- specify_cli-1.1.2/src/specify_cli/bundles/catalog_versions.py +154 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalogs.py +36 -20
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_add.py +6 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_info.py +34 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_install.py +19 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/project.py +41 -17
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/sources.py +8 -20
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/versioning.py +14 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/yamlio.py +11 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/command_version.py +55 -42
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_info.py +19 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/mcp_server/server.py +15 -3
- specify_cli-1.1.2/src/specify_cli/mcp_version.py +164 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_info.py +19 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/catalog/_domain.py +32 -27
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/operations.py +12 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/catalog/_domain.py +32 -27
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/gate/__init__.py +30 -2
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_catalog_schema.py +100 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/test_command_list.py +98 -9
- specify_cli-1.1.2/tests/specify_cli/artifacts/test_mcp_list.py +1120 -0
- specify_cli-1.1.2/tests/specify_cli/artifacts/test_operation_list.py +308 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_adapters.py +41 -0
- specify_cli-1.1.2/tests/specify_cli/bundles/test_catalog_stack.py +294 -0
- specify_cli-1.1.2/tests/specify_cli/bundles/test_catalog_versions.py +259 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_add.py +15 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_info.py +121 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_install.py +43 -0
- specify_cli-1.1.2/tests/specify_cli/bundles/test_command_install_version.py +388 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_security_paths.py +122 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_sources.py +18 -3
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_versioning.py +47 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/mcp_server/test_server.py +12 -2
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/mcp_server/test_stdio.py +30 -1
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_command_version.py +42 -0
- specify_cli-1.1.2/tests/specify_cli/test_mcp_version.py +392 -0
- specify_cli-1.1.2/tests/specify_cli/test_operation_version.py +139 -0
- specify_cli-1.1.2/tests/specify_cli/workflows/catalog/test_command_remove.py +64 -0
- specify_cli-1.1.2/tests/specify_cli/workflows/step/catalog/test_command_remove.py +68 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_resolve.py +53 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_github_workflows.py +153 -4
- specify_cli-1.1.2/tests/test_installed_info_json.py +333 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_workflows.py +237 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/README.md +3 -1
- specify_cli-1.1.1/src/specify_cli/artifacts/command_list.py +0 -42
- specify_cli-1.1.1/tests/specify_cli/bundles/test_catalog_stack.py +0 -141
- specify_cli-1.1.1/tests/specify_cli/workflows/catalog/test_command_remove.py +0 -19
- specify_cli-1.1.1/tests/specify_cli/workflows/step/catalog/test_command_remove.py +0 -23
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.devcontainer/post-create.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.editorconfig +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.gitattributes +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/CODEOWNERS +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/agent_request.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/aw/actions-lock.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/dependabot.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/scripts/check_extension_version_bump.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/scripts/check_security_requirements.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/scripts/validate_community_preset.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/security-audit-requirements.txt +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/skills/code-review/SKILL.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/add-community-bundle.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/add-community-bundle.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/bug-fix.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/bug-fix.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/bug-test.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/bug-test.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/codeql.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/docs.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/extension-version-guard.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/feature-assess.lock.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/feature-assess.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/lint.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/release.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/security.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/stale.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.github/workflows/test.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.gitignore +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.pre-commit-config.yaml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/.zenodo.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/CITATION.cff +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/CONTRIBUTING.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/DEVELOPMENT.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/LICENSE +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/README.ja.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/README.zh-CN.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/SECURITY.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/SUPPORT.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/bundles/assess/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/bundles/assess/bundle.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/bundles/bugfix/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/bundles/bugfix/bundle.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/bundles/catalog.community.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/bundles/catalog.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/design/integration.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/design/workflow-step.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/.gitignore +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/community/bundles.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/community/friends.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/community/walkthroughs.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/concepts/complex-features.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/concepts/sdd.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/concepts/spec-of-specs.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/docfx.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/agentic-sdlc.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/assessment.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/bugfix.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/contract-driven-development.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/customization.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/existing-projects.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/guides/monorepo.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/history.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/images/spec-kit-logo.webp +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/index.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/install/air-gapped.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/install/one-time.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/install/pipx.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/install/pypi.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/install/uv.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/installation.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/local-development.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/quickstart.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/agentic-assessment.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/agentic-bugfix.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/agentic-sdd.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/artifacts.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/authentication.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/core.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/integrations.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/mcp.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/reference/overview.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/template/public/main.css +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/docs/upgrade.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/business-analyst/bundle.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/developer/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/developer/bundle.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/product-manager/bundle.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/examples/bundles/security-researcher/bundle.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/agent-context-defaults.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/commands/speckit.assess.decide.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/commands/speckit.assess.define.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/commands/speckit.assess.intake.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/commands/speckit.assess.research.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/commands/speckit.assess.shape.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/assess/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/bug/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/bug/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/catalog.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/config-template.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/git-config.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/python/auto_commit.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/python/create_new_feature_branch.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/python/git_common.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/git/scripts/python/initialize_repo.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/github/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/github/commands/speckit.github.taskstoissues.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/github/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/github/scripts/bash/resolve-tasks.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/github/scripts/powershell/resolve-tasks.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/github/scripts/python/resolve_tasks.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/selftest/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/.gitignore +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/LICENSE +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/commands/example.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/config-template.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/extensions/template/extension.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/integrations/CONTRIBUTING.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/integrations/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/integrations/catalog.community.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/integrations/catalog.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/media/logo_large.webp +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/media/logo_small.webp +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/media/specify_cli.gif +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-April.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-August.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-February.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-July.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-June.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-March.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-May.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/newsletters/2026-September.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/ARCHITECTURE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/PUBLISHING.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/catalog.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/constitution-sync/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/constitution-sync/commands/speckit.constitution.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/constitution-sync/preset.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/lean/preset.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/scaffold/README.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/scaffold/preset.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/preset.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/bash/common.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/bash/create-new-feature.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/bash/resolve-template.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/powershell/common.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/powershell/resolve-template.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/powershell/setup-plan.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/python/check_prerequisites.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/python/common.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/python/create_new_feature.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/python/resolve_template.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/python/setup_plan.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/scripts/python/setup_tasks.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/spec-driven.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/spec-kit.code-workspace +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_assets.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_console.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_download_security.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_installed_list_json.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_invocation_style.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_project.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_toml_string.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_utils.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/_version.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/agents.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/_identifiers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/command_lookup.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/models.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/artifacts/resolution.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/bitbucket.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/config.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/github_http.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundler.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/adapters.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalog/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalog/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalog/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/catalog_config.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_build.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_init.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/command_validate.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/conflict.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/installer.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/manifest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/packager.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/primitives.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/records.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/references.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/resolver.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/bundles/validator.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/command_check.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/command_init.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/command_mcp.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/events/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/events/command_run.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/_command_update_artifacts.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/_command_update_discovery.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/_command_update_transaction.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/catalog/_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/catalog/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/catalog/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/catalog/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_set_priority.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/extensions/command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/_command_scaffold_generation.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/_command_upgrade_layout.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/alquimia/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/base.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/catalog/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/catalog/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/catalog/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_code/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_install.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_scaffold.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_status.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_switch.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_uninstall.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_upgrade.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/command_use.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/copilot/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/docker_agent/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/droid/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/dsh/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/grok/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/mcode/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/muse/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/vibe/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/mcp_server/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/mcp_server/_worker.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/mcp_server/catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/mcp_server/executor.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_manager.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_manager_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_manager_skills.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_manifest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_registry.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/_resolver.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/catalog/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/catalog/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/catalog/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_resolve.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_set_priority.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/presets/command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/selfs/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/selfs/command_check.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/selfs/command_upgrade.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/_command_resume_state.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/_command_run_ownership.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/base.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/catalog/_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/catalog/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/catalog/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/catalog/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_resolve.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_resume.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_run.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_status.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/engine.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/expressions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/command_set_priority.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/composer.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/layer_sources.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/merge.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/resolver.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/overlay/schema.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/catalog/_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/catalog/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/catalog/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/catalog/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/command/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/do_while/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/fan_in/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/fan_out/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/if_then/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/init/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/installer.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/prompt/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/shell/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/slot/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/switch/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/src/specify_cli/workflows/step/while_loop/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/checklist-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/analyze.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/checklist.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/clarify.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/constitution.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/converge.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/implement.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/plan.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/specify.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/tasks.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/constitution-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/plan-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/spec-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/tasks-template.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/templates/vscode-settings.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_bundled_extension_update_delivery.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_bundled_extension_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_extension_version_guard_script.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_firstparty_bundle_catalog_consistency.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_wheel_bundled_presets.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_wheel_bundled_workflows.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/contract/test_wheel_core_pack_scripts.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/assess/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/assess/test_assess_extension.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/git/test_git_extension.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/git/test_git_extension_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/github/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/github/test_github_extension.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/extensions/test_update_agent_context_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/hooks/TESTING.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/hooks/plan.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/hooks/spec.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/hooks/tasks.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/http_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integration/test_preset_update_workflow.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_base.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_cli.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_extra_args.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_home_isolation.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_alquimia.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_base_yaml.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_cline.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_command_code.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_copilot.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_docker_agent.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_droid.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_dsh.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_forge.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_grok.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_mcode.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_muse.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_vibe.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_integration_zed.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_registry.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/lock_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/parity_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/test_catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/test_catalog_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/test_command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/test_command_lookup.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/artifacts/test_registration.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/authentication/helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/authentication/test_authentication.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/authentication/test_github_http.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/_command_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/catalog/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/catalog/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/catalog/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_bundles.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_catalog_config.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_build.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_init.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_command_validate.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_conflict.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_installer.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_offline.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_packager.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_primitives.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_records.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_references.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_resolver.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_validator.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/bundles/test_yamlio.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/events/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/events/test_command_run.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/events/test_events.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/catalog/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/catalog/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/catalog/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_add_path_traversal.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_set_priority.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_update_artifacts.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_update_discovery.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/extensions/test_command_update_transaction.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/_catalog_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/_scaffold_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/catalog/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/catalog/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/catalog/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_install.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_scaffold.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_scaffold_generation.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_status.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_switch.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_uninstall.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_upgrade.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_upgrade_layout.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_command_use.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_lifecycle.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/integrations/test_registration.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/mcp_server/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/mcp_server/test_catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/mcp_server/test_executor.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/_fixtures.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/catalog/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/catalog/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/catalog/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_catalog.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_resolve.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_set_priority.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_domain_exports.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_manager.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_manager_commands.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_manager_skills.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_manifest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_registration.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_registry.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/presets/test_resolver.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/self_upgrade_helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/selfs/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/selfs/test_command_check.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/selfs/test_command_upgrade.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_agent_config.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_check_tool.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_command_check.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_command_init.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_command_mcp.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_root_version_callback.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_version_detection.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_version_execution.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_version_guidance.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_version_imports.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_version_release.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/test_version_verification.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/catalog/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/catalog/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/helpers.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/test_command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/test_command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/overlay/test_command_set_priority.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/catalog/__init__.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/catalog/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/catalog/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/catalog/test_registry.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/step/test_installer.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_catalog_versions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_add.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_disable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_enable.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_info.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_list.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_remove.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_resume.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_resume_state.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_run.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_run_ownership.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_search.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_status.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_command_update.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/specify_cli/workflows/test_custom_steps.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_agent_config_consistency.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_branch_numbering.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_bug_fix_workflow.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_catalog_trust_docs.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_check_prerequisites_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_clarify_stage_gate.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_command_template_hooks.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_command_template_py_scripts.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_community_preset_validation.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_console_imports.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_constitution_template_sync_report.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_converge_template_scaffold.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_create_new_feature_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_download_security.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_extension_registration.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_extension_skills.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_extensions.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_init_dir.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_init_dir_cli.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_installed_list_json.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_merge.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_post_process.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_presets.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_ps1_encoding.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_resolve_template_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_security_workflow.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_setup_plan_no_overwrite.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_setup_plan_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_setup_tasks.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_setup_tasks_python_parity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_shared_infra_gitignore.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_shared_infra_lock.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_skill_placeholder_py.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_specify_no_persist.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_specify_template_numbering.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_tasks_template_constraints.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_utils.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/unit/test_condition_expression_block.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/conftest.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_bundled_bugfix_assess_workflows.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_bundled_speckit_workflow.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_overlay_composer.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_overlay_layer_sources.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_overlay_merge.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_overlay_schema.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_resolver_integration.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/tests/workflows/test_slot_step.py +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/ARCHITECTURE.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/PUBLISHING.md +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/assess/workflow.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/bugfix/workflow.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/catalog.community.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/catalog.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/step-catalog.community.json +0 -0
- {specify_cli-1.1.1 → specify_cli-1.1.2}/workflows/step-catalog.json +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name: Bundle Submission
|
|
2
2
|
description: Submit your bundle metadata for community catalog validation
|
|
3
3
|
title: "[Bundle]: Add "
|
|
4
|
-
labels: ["
|
|
4
|
+
labels: ["triage-must-have"]
|
|
5
5
|
body:
|
|
6
6
|
- type: markdown
|
|
7
7
|
attributes:
|
|
@@ -16,7 +16,7 @@ body:
|
|
|
16
16
|
- If you host a bundle catalog, test catalog installation with `specify bundle catalog add <catalog-url> --id <catalog-id> --policy install-allowed` and `specify bundle install <bundle-id>`
|
|
17
17
|
- If your bundle depends on components from non-default catalogs, document those catalog URLs and test installation from a clean project
|
|
18
18
|
|
|
19
|
-
**After submitting:**
|
|
19
|
+
**After submitting:** GitHub automatically applies the `triage-must-have` intake verdict. A maintainer separately applies the `bundle-submission` label during issue triage, which starts the automated catalog validation. You don't need to apply any label or ask for one.
|
|
20
20
|
|
|
21
21
|
- type: input
|
|
22
22
|
id: bundle-id
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
name: Workflow Step Type Submission
|
|
2
|
+
description: Submit a custom workflow step package for community catalog intake
|
|
3
|
+
title: "[Workflow Step]: Add "
|
|
4
|
+
labels: ["triage-must-have"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for contributing a workflow step type! This form captures the package, release, and catalog metadata needed for manual community catalog review.
|
|
10
|
+
|
|
11
|
+
**Before submitting:**
|
|
12
|
+
- Review the [Community Workflow Step Types guide](https://github.com/github/spec-kit/blob/main/docs/community/workflow-steps.md)
|
|
13
|
+
- Publish a package containing root-level `step.yml` and `__init__.py` files
|
|
14
|
+
- Ensure `step.type_key`, the catalog ID, and the matching `StepBase.type_key` are identical
|
|
15
|
+
- Create a GitHub release with a versioned step package archive
|
|
16
|
+
- Provide version-pinned URLs and SHA-256 digests for every catalog-downloaded file
|
|
17
|
+
- Test the release artifact with `specify workflow step add <step-id> --from <download-url>`
|
|
18
|
+
|
|
19
|
+
**After submitting:** GitHub automatically applies only the `triage-must-have` intake verdict. This phase is intake-only: no validation workflow or draft pull request is triggered. Maintainers currently review the metadata manually and, when accepted, update the community catalog through the normal reviewed pull request process.
|
|
20
|
+
|
|
21
|
+
- type: input
|
|
22
|
+
id: step-id
|
|
23
|
+
attributes:
|
|
24
|
+
label: Step Type ID
|
|
25
|
+
description: Exact catalog key and `step.type_key`; it must be one safe path component and must not collide with a built-in step type
|
|
26
|
+
placeholder: "e.g., deploy"
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
|
|
30
|
+
- type: input
|
|
31
|
+
id: step-name
|
|
32
|
+
attributes:
|
|
33
|
+
label: Step Type Name
|
|
34
|
+
description: Human-readable name declared in `step.yml`
|
|
35
|
+
placeholder: "e.g., Deploy"
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
|
|
39
|
+
- type: input
|
|
40
|
+
id: version
|
|
41
|
+
attributes:
|
|
42
|
+
label: Version
|
|
43
|
+
description: PEP 440-compatible release version; it must match `step.version` in the submitted `step.yml`
|
|
44
|
+
placeholder: "e.g., 1.0.0"
|
|
45
|
+
validations:
|
|
46
|
+
required: true
|
|
47
|
+
|
|
48
|
+
- type: textarea
|
|
49
|
+
id: description
|
|
50
|
+
attributes:
|
|
51
|
+
label: Description
|
|
52
|
+
description: Concise description of the workflow behavior this step type implements
|
|
53
|
+
placeholder: Deploys the current project to a configured environment and returns the deployment URL
|
|
54
|
+
validations:
|
|
55
|
+
required: true
|
|
56
|
+
|
|
57
|
+
- type: input
|
|
58
|
+
id: author
|
|
59
|
+
attributes:
|
|
60
|
+
label: Author
|
|
61
|
+
description: Name or organization declared for the package
|
|
62
|
+
placeholder: "e.g., Jane Doe or Acme Corp"
|
|
63
|
+
validations:
|
|
64
|
+
required: true
|
|
65
|
+
|
|
66
|
+
- type: input
|
|
67
|
+
id: repository
|
|
68
|
+
attributes:
|
|
69
|
+
label: Repository URL
|
|
70
|
+
description: Public source repository containing the submitted package
|
|
71
|
+
placeholder: "https://github.com/your-org/spec-kit-step-deploy"
|
|
72
|
+
validations:
|
|
73
|
+
required: true
|
|
74
|
+
|
|
75
|
+
- type: input
|
|
76
|
+
id: download-url
|
|
77
|
+
attributes:
|
|
78
|
+
label: Download URL
|
|
79
|
+
description: URL to the versioned `.zip`, `.tar.gz`, or `.tgz` step package archive for this release
|
|
80
|
+
placeholder: "https://github.com/your-org/spec-kit-step-deploy/releases/download/v1.0.0/deploy-1.0.0.zip"
|
|
81
|
+
validations:
|
|
82
|
+
required: true
|
|
83
|
+
|
|
84
|
+
- type: input
|
|
85
|
+
id: step-yml-url
|
|
86
|
+
attributes:
|
|
87
|
+
label: step.yml URL
|
|
88
|
+
description: Exact tag-pinned HTTPS URL used as the catalog `step_yml_url` (or `url`)
|
|
89
|
+
placeholder: "https://raw.githubusercontent.com/your-org/spec-kit-step-deploy/v1.0.0/step.yml"
|
|
90
|
+
validations:
|
|
91
|
+
required: true
|
|
92
|
+
|
|
93
|
+
- type: input
|
|
94
|
+
id: init-url
|
|
95
|
+
attributes:
|
|
96
|
+
label: __init__.py URL
|
|
97
|
+
description: Exact tag-pinned HTTPS URL used as the catalog `init_url`
|
|
98
|
+
placeholder: "https://raw.githubusercontent.com/your-org/spec-kit-step-deploy/v1.0.0/__init__.py"
|
|
99
|
+
validations:
|
|
100
|
+
required: true
|
|
101
|
+
|
|
102
|
+
- type: textarea
|
|
103
|
+
id: extra-files
|
|
104
|
+
attributes:
|
|
105
|
+
label: Extra File URLs
|
|
106
|
+
description: >-
|
|
107
|
+
JSON mapping of every additional package-relative file path to its exact tag-pinned HTTPS URL.
|
|
108
|
+
Paths must use forward slashes, be relative and non-empty, contain no empty, `.` or `..` segments,
|
|
109
|
+
and must not case-insensitively alias `step.yml` or `__init__.py`. Enter `{}` when there are no extra files.
|
|
110
|
+
render: json
|
|
111
|
+
placeholder: |
|
|
112
|
+
{
|
|
113
|
+
"helpers.py": "https://raw.githubusercontent.com/your-org/spec-kit-step-deploy/v1.0.0/helpers.py"
|
|
114
|
+
}
|
|
115
|
+
validations:
|
|
116
|
+
required: true
|
|
117
|
+
|
|
118
|
+
- type: textarea
|
|
119
|
+
id: file-sha256
|
|
120
|
+
attributes:
|
|
121
|
+
label: Per-file SHA-256 Digests
|
|
122
|
+
description: JSON mapping containing exactly `step.yml`, `__init__.py`, and every Extra File URL path, each with a 64-character hexadecimal SHA-256 digest
|
|
123
|
+
render: json
|
|
124
|
+
placeholder: |
|
|
125
|
+
{
|
|
126
|
+
"step.yml": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
127
|
+
"__init__.py": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
128
|
+
"helpers.py": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
|
129
|
+
}
|
|
130
|
+
validations:
|
|
131
|
+
required: true
|
|
132
|
+
|
|
133
|
+
- type: input
|
|
134
|
+
id: license
|
|
135
|
+
attributes:
|
|
136
|
+
label: License
|
|
137
|
+
description: SPDX license identifier for the package; the repository must include the corresponding license text
|
|
138
|
+
placeholder: "e.g., MIT or Apache-2.0"
|
|
139
|
+
validations:
|
|
140
|
+
required: true
|
|
141
|
+
|
|
142
|
+
- type: input
|
|
143
|
+
id: speckit-compatibility
|
|
144
|
+
attributes:
|
|
145
|
+
label: Spec Kit Compatibility
|
|
146
|
+
description: Spec Kit version constraint tested with this release; the current step catalog does not yet enforce this constraint
|
|
147
|
+
placeholder: "e.g., >=0.11.0"
|
|
148
|
+
validations:
|
|
149
|
+
required: true
|
|
150
|
+
|
|
151
|
+
- type: textarea
|
|
152
|
+
id: runtime-dependencies
|
|
153
|
+
attributes:
|
|
154
|
+
label: Runtime and Tool Dependencies
|
|
155
|
+
description: List required Python packages, executables, services, environment variables, or platform constraints; enter `None` when the package has no external dependencies
|
|
156
|
+
placeholder: |
|
|
157
|
+
- Python package: requests>=2.32
|
|
158
|
+
- Executable: kubectl>=1.30
|
|
159
|
+
- Environment variable: KUBECONFIG
|
|
160
|
+
validations:
|
|
161
|
+
required: true
|
|
162
|
+
|
|
163
|
+
- type: dropdown
|
|
164
|
+
id: step-type-count
|
|
165
|
+
attributes:
|
|
166
|
+
label: Number of Provided Step Types
|
|
167
|
+
description: One installed package currently registers exactly one `step.type_key`
|
|
168
|
+
options:
|
|
169
|
+
- "1"
|
|
170
|
+
validations:
|
|
171
|
+
required: true
|
|
172
|
+
|
|
173
|
+
- type: textarea
|
|
174
|
+
id: step-types-provided
|
|
175
|
+
attributes:
|
|
176
|
+
label: Step Type Provided
|
|
177
|
+
description: Name the single `StepBase` subclass and its exact `type_key`
|
|
178
|
+
placeholder: "DeployStep — deploy"
|
|
179
|
+
validations:
|
|
180
|
+
required: true
|
|
181
|
+
|
|
182
|
+
- type: input
|
|
183
|
+
id: documentation
|
|
184
|
+
attributes:
|
|
185
|
+
label: Documentation URL
|
|
186
|
+
description: Tag-pinned documentation covering configuration, outputs, failure behavior, side effects, and an example workflow
|
|
187
|
+
placeholder: "https://github.com/your-org/spec-kit-step-deploy/blob/v1.0.0/README.md"
|
|
188
|
+
validations:
|
|
189
|
+
required: true
|
|
190
|
+
|
|
191
|
+
- type: input
|
|
192
|
+
id: changelog
|
|
193
|
+
attributes:
|
|
194
|
+
label: Changelog URL
|
|
195
|
+
description: Tag-pinned changelog for this release; leave empty only for an initial release with no prior versions
|
|
196
|
+
placeholder: "https://github.com/your-org/spec-kit-step-deploy/blob/v1.0.0/CHANGELOG.md"
|
|
197
|
+
|
|
198
|
+
- type: textarea
|
|
199
|
+
id: testing-details
|
|
200
|
+
attributes:
|
|
201
|
+
label: Testing Details
|
|
202
|
+
description: Describe positive and negative configuration tests, execution/status/output tests, and any resume, nested, or concurrent behavior that applies
|
|
203
|
+
placeholder: |
|
|
204
|
+
**Tested with:** Spec Kit 0.11.0 on macOS and Ubuntu
|
|
205
|
+
|
|
206
|
+
**Evidence:**
|
|
207
|
+
- Valid configuration completes with the documented outputs
|
|
208
|
+
- Invalid configuration returns a failed result with an actionable error
|
|
209
|
+
- Release artifact installs with `specify workflow step add deploy --from ...`
|
|
210
|
+
validations:
|
|
211
|
+
required: true
|
|
212
|
+
|
|
213
|
+
- type: checkboxes
|
|
214
|
+
id: attestations
|
|
215
|
+
attributes:
|
|
216
|
+
label: Required Attestations
|
|
217
|
+
description: Confirm the submitted release satisfies the current external step-package contract
|
|
218
|
+
options:
|
|
219
|
+
- label: The release artifact contains regular, non-symlink `step.yml` and `__init__.py` files at the package root or under exactly one top-level directory
|
|
220
|
+
required: true
|
|
221
|
+
- label: The catalog ID, `step.type_key`, and the matching `StepBase.type_key` are identical and do not collide with a built-in step type
|
|
222
|
+
required: true
|
|
223
|
+
- label: The submitted version matches `step.version`, the download URL identifies that versioned release, and every catalog file URL is version-pinned
|
|
224
|
+
required: true
|
|
225
|
+
- label: The SHA-256 mapping covers exactly every file the catalog installer downloads
|
|
226
|
+
required: true
|
|
227
|
+
- label: The release artifact installs successfully with `specify workflow step add <step-id> --from <download-url>`
|
|
228
|
+
required: true
|
|
229
|
+
- label: Runtime and tool dependencies, side effects, configuration, outputs, and failure behavior are documented
|
|
230
|
+
required: true
|
|
231
|
+
- label: The repository includes the submitted license and complete source for the released package
|
|
232
|
+
required: true
|
|
233
|
+
- label: I understand that custom workflow steps execute Python with the user's privileges and that a community catalog listing is not a code audit, endorsement, or support commitment
|
|
234
|
+
required: true
|
|
235
|
+
|
|
236
|
+
- type: textarea
|
|
237
|
+
id: additional-context
|
|
238
|
+
attributes:
|
|
239
|
+
label: Additional Context
|
|
240
|
+
description: Optional links or notes that help maintainers verify the submitted metadata
|
|
241
|
+
placeholder: Release notes, compatibility notes, or related issue links
|
|
242
|
+
|
|
243
|
+
- type: textarea
|
|
244
|
+
id: ai-disclosure
|
|
245
|
+
attributes:
|
|
246
|
+
label: AI Disclosure
|
|
247
|
+
description: >-
|
|
248
|
+
Per our [Contributing guidelines](https://github.com/github/spec-kit/blob/main/CONTRIBUTING.md#ai-contributions-in-spec-kit),
|
|
249
|
+
any AI assistance used to create this issue must be disclosed. If you used AI, name the agent/tool, model(s),
|
|
250
|
+
settings/mode (reasoning effort; autonomous vs. human-supervised), and extent. Otherwise leave this as "N/A".
|
|
251
|
+
This does not change how your issue is handled — it just gives maintainers visibility into model/agent usage.
|
|
252
|
+
value: "N/A"
|
|
253
|
+
validations:
|
|
254
|
+
required: true
|
|
@@ -11,10 +11,18 @@ The toolkit supports multiple AI coding assistants, allowing teams to use their
|
|
|
11
11
|
## Adding or Updating CLI Commands
|
|
12
12
|
|
|
13
13
|
Before adding, updating, or reorganizing Specify CLI commands, read
|
|
14
|
-
[
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
[Shared Command Application Architecture](design/shared.md) and
|
|
15
|
+
[Specify CLI Command Architecture](design/cli.md). They define the shared
|
|
16
|
+
operation boundary, command-module naming, private phases, nested command
|
|
17
|
+
groups, registration ownership, and mirrored tests.
|
|
18
|
+
|
|
19
|
+
## Adding or Updating MCP Commands
|
|
20
|
+
|
|
21
|
+
Before adding or changing MCP tools for Specify commands, read
|
|
22
|
+
[Shared Command Application Architecture](design/shared.md) and
|
|
23
|
+
[Specify MCP Command Architecture](design/mcp.md). They define the shared
|
|
24
|
+
operation boundary, typed contracts, explicit inventory, side-effect metadata,
|
|
25
|
+
the local stdio protocol boundary, and mirrored tests.
|
|
18
26
|
|
|
19
27
|
## Adding or Updating Agent Integrations
|
|
20
28
|
|
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [1.1.2] - 2026-10-07
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- feat(mcp): add first-class artifact list tool (#4867)
|
|
10
|
+
- fix(workflows): remove the catalog source shown at the listed index (#4870)
|
|
11
|
+
- fix(bundler): resolve the active integration like the canonical reader (#4541)
|
|
12
|
+
- fix(workflows): an interrupted gate prompt must not approve the gate (#4529)
|
|
13
|
+
- [preset] Update Intake Authoring Governance preset to v0.3.7 (#4838)
|
|
14
|
+
- fix(workflows): state the equal-priority tie-break in 'workflow resolve' output (#4542)
|
|
15
|
+
- feat: add --json to preset info and extension info (#4833)
|
|
16
|
+
- feat(bundles): select exact bundle catalog releases (#4849)
|
|
17
|
+
- fix(bundler): treat an explicitly null catalog field as empty, not "None" (#4532)
|
|
18
|
+
- refactor(artifact): extract list operation (#4866)
|
|
19
|
+
- fix(bundler): report a newline-containing version constraint instead of crashing (#4538)
|
|
20
|
+
- feat(mcp): add first-class version tool (#4864)
|
|
21
|
+
- refactor(version): extract shared operation (#4863)
|
|
22
|
+
- feat(workflows): add workflow step submission intake (#4861)
|
|
23
|
+
- docs: define shared CLI and MCP command architecture (#4847)
|
|
24
|
+
- Add AttackTree extension to community catalog (#4859)
|
|
25
|
+
- Update SpecKit Companion extension to v0.24.0 (#4858)
|
|
26
|
+
- Automatically prioritize bundle submissions (#4856)
|
|
27
|
+
- Update SpecAssay preset to v0.5.6 (#4854)
|
|
28
|
+
- chore: release 1.1.1, begin 1.1.2.dev0 development (#4860)
|
|
29
|
+
|
|
5
30
|
## [1.1.1] - 2026-10-06
|
|
6
31
|
|
|
7
32
|
### Changed
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
# Specify CLI Command Architecture
|
|
2
2
|
|
|
3
|
-
This document defines the
|
|
4
|
-
|
|
5
|
-
command
|
|
3
|
+
This document defines the CLI adapter structure for Specify commands. It
|
|
4
|
+
explains where Typer handlers, CLI infrastructure, CLI-private phases, nested
|
|
5
|
+
command groups, and their tests belong.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Every CLI leaf that has another delivery adapter invokes the shared application
|
|
8
|
+
operation defined by
|
|
9
|
+
[Shared Command Application Architecture](shared.md). This document owns the
|
|
10
|
+
CLI surface; it does not redefine semantic validation, orchestration, results,
|
|
11
|
+
warnings, errors, or side effects.
|
|
12
|
+
|
|
13
|
+
The extension hierarchy supplies the reference command-group shape used in
|
|
14
|
+
this document. Do not create extra modules merely to make a small command
|
|
15
|
+
conform visually.
|
|
10
16
|
|
|
11
17
|
## Design goals
|
|
12
18
|
|
|
@@ -22,6 +28,8 @@ The design optimizes for:
|
|
|
22
28
|
the same file.
|
|
23
29
|
- **Explicit ownership:** shared infrastructure and command-private behavior
|
|
24
30
|
should not be mixed.
|
|
31
|
+
- **Adapter discipline:** CLI modules invoke shared operations rather than
|
|
32
|
+
becoming the application implementation.
|
|
25
33
|
- **Stable behavior:** structural refactoring must preserve registration,
|
|
26
34
|
output, error handling, compatibility paths, and tests.
|
|
27
35
|
- **Agentic development:** coding agents should be able to infer the relevant
|
|
@@ -50,17 +58,24 @@ Only modules representing actual CLI commands use the non-underscored
|
|
|
50
58
|
|
|
51
59
|
- The Typer-decorated handler.
|
|
52
60
|
- User-facing arguments and options.
|
|
53
|
-
-
|
|
61
|
+
- Mapping parsed values into the shared operation request.
|
|
62
|
+
- CLI prompting, progress, rendering, JSON streams, and exit-code mapping.
|
|
54
63
|
- Small helpers used only by that command.
|
|
55
64
|
|
|
65
|
+
Semantic validation, application orchestration, typed outcomes, warnings,
|
|
66
|
+
expected errors, and side effects belong below the adapter as defined in
|
|
67
|
+
[the shared design](shared.md). A CLI-only command may keep small behavior in
|
|
68
|
+
its command module, but behavior needed by another adapter must first move to a
|
|
69
|
+
shared operation or domain module.
|
|
70
|
+
|
|
56
71
|
The command function's docstring is user-facing because Typer may display it
|
|
57
72
|
as help text. A module docstring is internal and should identify the command,
|
|
58
73
|
registration path, and any adjacent private implementation modules.
|
|
59
74
|
|
|
60
75
|
### Command-private implementation modules
|
|
61
76
|
|
|
62
|
-
When a
|
|
63
|
-
testable, use:
|
|
77
|
+
When a CLI adapter has cohesive *CLI-specific* phases that are independently
|
|
78
|
+
understandable or testable, use:
|
|
64
79
|
|
|
65
80
|
```text
|
|
66
81
|
_command_<name>_<phase>.py
|
|
@@ -69,14 +84,13 @@ _command_<name>_<phase>.py
|
|
|
69
84
|
For example:
|
|
70
85
|
|
|
71
86
|
```text
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
_command_update_transaction.py
|
|
87
|
+
command_init.py
|
|
88
|
+
_command_init_prompting.py
|
|
89
|
+
_command_init_rendering.py
|
|
76
90
|
```
|
|
77
91
|
|
|
78
92
|
The leading underscore marks the module as private implementation. The
|
|
79
|
-
`
|
|
93
|
+
`command_init` portion groups it with the registered handler in searches and
|
|
80
94
|
file listings. The phase suffix communicates its ownership.
|
|
81
95
|
|
|
82
96
|
Private phase modules must not register additional CLI commands. The public
|
|
@@ -84,11 +98,16 @@ Private phase modules must not register additional CLI commands. The public
|
|
|
84
98
|
|
|
85
99
|
Split a command when a phase:
|
|
86
100
|
|
|
101
|
+
- Is specific to CLI invocation or presentation.
|
|
87
102
|
- Has distinct invariants or failure behavior.
|
|
88
103
|
- Can be tested as a meaningful boundary.
|
|
89
104
|
- Has enough implementation detail to distract from the CLI handler.
|
|
90
105
|
- Is likely to change independently from other phases.
|
|
91
106
|
|
|
107
|
+
If the phase performs semantic validation, planning, mutation, rollback, or
|
|
108
|
+
other behavior another adapter needs, use `_operation_<name>_<phase>.py`
|
|
109
|
+
instead, following [the shared design](shared.md#naming-and-layout).
|
|
110
|
+
|
|
92
111
|
Do not split a command solely because it crossed an arbitrary line count.
|
|
93
112
|
Excessive fragmentation makes control flow harder to follow and increases the
|
|
94
113
|
number of files an agent must inspect.
|
|
@@ -99,7 +118,8 @@ For a multi-command group, `_commands.py` owns:
|
|
|
99
118
|
|
|
100
119
|
- The command group's Typer application.
|
|
101
120
|
- Registration of the group's command modules.
|
|
102
|
-
-
|
|
121
|
+
- CLI infrastructure genuinely shared by multiple commands or external CLI
|
|
122
|
+
flows.
|
|
103
123
|
- Thin compatibility forwarders needed to preserve established import or
|
|
104
124
|
monkeypatch paths.
|
|
105
125
|
|
|
@@ -178,8 +198,9 @@ re-exports the command symbols for compatibility.
|
|
|
178
198
|
|
|
179
199
|
Do not create a nested directory for an implementation phase that is not a CLI
|
|
180
200
|
subcommand. For example, an `update/` directory would incorrectly suggest an
|
|
181
|
-
`extension update ...` subcommand group. Use `_command_update_<phase>.py`
|
|
182
|
-
|
|
201
|
+
`extension update ...` subcommand group. Use `_command_update_<phase>.py` for
|
|
202
|
+
a CLI-private phase and `_operation_update_<phase>.py` for semantic validation,
|
|
203
|
+
planning, mutation, rollback, or other behavior shared with another adapter.
|
|
183
204
|
|
|
184
205
|
## Registration
|
|
185
206
|
|
|
@@ -200,6 +221,27 @@ Registration imports should be explicit and ordered consistently. Do not rely
|
|
|
200
221
|
on filesystem discovery to import arbitrary modules, because command exposure
|
|
201
222
|
should remain reviewable in one place.
|
|
202
223
|
|
|
224
|
+
## Shared operation invocation
|
|
225
|
+
|
|
226
|
+
The CLI adapter maps parsed arguments and options into the shared typed request,
|
|
227
|
+
invokes the operation, and renders its outcome.
|
|
228
|
+
|
|
229
|
+
For project-scoped commands, the adapter supplies the explicit project or
|
|
230
|
+
target directory. When the user omits it, the CLI uses the cwd captured when
|
|
231
|
+
the invocation begins. The shared operation validates and resolves that path;
|
|
232
|
+
neither layer changes process-wide cwd.
|
|
233
|
+
|
|
234
|
+
The CLI runs with the invoking user's ordinary operating-system permissions.
|
|
235
|
+
It does not construct a shared policy or filesystem runtime. Prompting remains
|
|
236
|
+
CLI-specific:
|
|
237
|
+
|
|
238
|
+
- `--json`, `--non-interactive`, and local invocation do not imply `force`.
|
|
239
|
+
- External-source trust and overwrite consent remain explicit request values.
|
|
240
|
+
- A prompt may collect consent before constructing or retrying the request, but
|
|
241
|
+
the adapter does not add consent silently.
|
|
242
|
+
- Network and self-modifying behavior remain those defined by the operation and
|
|
243
|
+
CLI contract.
|
|
244
|
+
|
|
203
245
|
## Test structure
|
|
204
246
|
|
|
205
247
|
Command-focused tests mirror the source command surface under
|
|
@@ -215,23 +257,25 @@ src/specify_cli/extensions/catalog/command_add.py
|
|
|
215
257
|
tests/specify_cli/extensions/catalog/test_command_add.py
|
|
216
258
|
```
|
|
217
259
|
|
|
218
|
-
|
|
260
|
+
CLI-private phases use:
|
|
219
261
|
|
|
220
262
|
```text
|
|
221
|
-
src/specify_cli/
|
|
222
|
-
tests/specify_cli/
|
|
223
|
-
|
|
224
|
-
src/specify_cli/extensions/_command_update_artifacts.py
|
|
225
|
-
tests/specify_cli/extensions/test_command_update_artifacts.py
|
|
226
|
-
|
|
227
|
-
src/specify_cli/extensions/_command_update_transaction.py
|
|
228
|
-
tests/specify_cli/extensions/test_command_update_transaction.py
|
|
263
|
+
src/specify_cli/_command_init_prompting.py
|
|
264
|
+
tests/specify_cli/test_command_init_prompting.py
|
|
229
265
|
```
|
|
230
266
|
|
|
231
267
|
The primary `test_command_<name>.py` suite verifies the public command surface.
|
|
232
268
|
Phase-specific suites verify detailed invariants without obscuring the primary
|
|
233
269
|
command behavior.
|
|
234
270
|
|
|
271
|
+
CLI adapter tests verify explicit targets outside the launch directory and the
|
|
272
|
+
rule that machine modes do not add force, trust, or destructive consent.
|
|
273
|
+
|
|
274
|
+
Shared operation and phase tests use `test_operation_<name>.py` and
|
|
275
|
+
`test_operation_<name>_<phase>.py` as defined in
|
|
276
|
+
[the shared testing structure](shared.md#testing-structure). They do not move
|
|
277
|
+
under `test_command_*.py` merely because the CLI is one caller.
|
|
278
|
+
|
|
235
279
|
Domain source remains in the parent package's `__init__.py` or a focused
|
|
236
280
|
domain module without the `command_` prefix. Its mirrored tests use the domain
|
|
237
281
|
subject name, for example:
|
|
@@ -290,7 +334,8 @@ must remain represented. A matching total alone does not prove preservation.
|
|
|
290
334
|
|
|
291
335
|
## Reference layout
|
|
292
336
|
|
|
293
|
-
|
|
337
|
+
An extension command group using the shared application boundary has this
|
|
338
|
+
shape:
|
|
294
339
|
|
|
295
340
|
```text
|
|
296
341
|
src/specify_cli/extensions/
|
|
@@ -305,9 +350,10 @@ src/specify_cli/extensions/
|
|
|
305
350
|
├── command_search.py
|
|
306
351
|
├── command_set_priority.py
|
|
307
352
|
├── command_update.py
|
|
308
|
-
├──
|
|
309
|
-
├──
|
|
310
|
-
├──
|
|
353
|
+
├── _operation_update.py
|
|
354
|
+
├── _operation_update_discovery.py
|
|
355
|
+
├── _operation_update_artifacts.py
|
|
356
|
+
├── _operation_update_transaction.py
|
|
311
357
|
└── catalog/
|
|
312
358
|
├── __init__.py
|
|
313
359
|
├── _helpers.py
|
|
@@ -319,10 +365,11 @@ src/specify_cli/extensions/
|
|
|
319
365
|
The update command illustrates the distinction:
|
|
320
366
|
|
|
321
367
|
- `command_update.py` is the registered CLI adapter.
|
|
322
|
-
- `
|
|
323
|
-
- `
|
|
324
|
-
- `
|
|
325
|
-
|
|
368
|
+
- `_operation_update.py` is the shared application entry point.
|
|
369
|
+
- `_operation_update_discovery.py` determines available updates.
|
|
370
|
+
- `_operation_update_artifacts.py` prepares and validates update archives.
|
|
371
|
+
- `_operation_update_transaction.py` owns backup, installation, rollback, and
|
|
372
|
+
cleanup behavior for every adapter.
|
|
326
373
|
|
|
327
374
|
## Decision guide
|
|
328
375
|
|
|
@@ -331,9 +378,11 @@ When deciding where code belongs:
|
|
|
331
378
|
| Question | Location |
|
|
332
379
|
|---|---|
|
|
333
380
|
| Does it define a real CLI command? | `command_<name>.py` |
|
|
334
|
-
| Is it
|
|
335
|
-
| Is it a cohesive
|
|
336
|
-
|
|
|
381
|
+
| Is it a small CLI-only mapping or rendering helper? | That command module |
|
|
382
|
+
| Is it a cohesive CLI-only phase? | `_command_<name>_<phase>.py` |
|
|
383
|
+
| Does it define semantic validation or orchestration for an operation? | Existing domain module or `_operation_<name>.py` |
|
|
384
|
+
| Is it a cohesive shared operation phase? | `_operation_<name>_<phase>.py` |
|
|
385
|
+
| Is it CLI infrastructure shared by multiple command adapters? | `_commands.py` or a focused CLI helper |
|
|
337
386
|
| Does it define a nested CLI namespace? | A directory matching that namespace |
|
|
338
387
|
| Is it shared only by commands in a nested namespace? | The nested package's `_helpers.py` |
|
|
339
388
|
| Is it domain behavior independent of the CLI? | The package domain modules, not command modules |
|
|
@@ -346,6 +395,10 @@ Avoid:
|
|
|
346
395
|
- Naming a private implementation module `command_*.py`.
|
|
347
396
|
- Creating nested directories that do not correspond to CLI namespaces.
|
|
348
397
|
- Creating `_commands.py` files only for visual symmetry.
|
|
398
|
+
- Keeping semantic validation, orchestration, or side effects in a CLI adapter
|
|
399
|
+
when another adapter exposes the same logical operation.
|
|
400
|
+
- Calling or parsing another delivery adapter instead of invoking the shared
|
|
401
|
+
operation.
|
|
349
402
|
- Moving command-private helpers into shared infrastructure preemptively.
|
|
350
403
|
- Duplicating fixtures or helpers to make tests appear more mirrored.
|
|
351
404
|
- Splitting a linear function into many files without cohesive phase
|
|
@@ -359,9 +412,18 @@ For a new or refactored command:
|
|
|
359
412
|
|
|
360
413
|
- [ ] The CLI path maps predictably to a `command_<name>.py` module.
|
|
361
414
|
- [ ] Only the real command module registers a handler.
|
|
362
|
-
- [ ]
|
|
415
|
+
- [ ] The owning hierarchy records exactly one MCP inventory disposition for
|
|
416
|
+
the CLI leaf, including when it is unavailable or excluded.
|
|
417
|
+
- [ ] If another adapter exposes the operation, the CLI adapter maps into the
|
|
418
|
+
shared operation defined by `design/shared.md`.
|
|
419
|
+
- [ ] For a multi-adapter operation, semantic validation, orchestration, and
|
|
420
|
+
side effects are below the CLI adapter.
|
|
421
|
+
- [ ] When a shared request exists, project and target directories map into it
|
|
422
|
+
explicitly.
|
|
423
|
+
- [ ] CLI-private phase modules use `_command_<name>_<phase>.py`; shared phases
|
|
424
|
+
use `_operation_<name>_<phase>.py`.
|
|
363
425
|
- [ ] `_commands.py` contains only group infrastructure and genuinely shared
|
|
364
|
-
behavior.
|
|
426
|
+
CLI behavior.
|
|
365
427
|
- [ ] Nested directories correspond to real CLI namespaces.
|
|
366
428
|
- [ ] Command tests mirror the source structure.
|
|
367
429
|
- [ ] Domain and cross-domain tests remain in their appropriate suites.
|