specify-cli 1.0.11__tar.gz → 1.0.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/agent_request.yml +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/feature_request.yml +1 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/codeql.yml +2 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/lint.yml +51 -3
- specify_cli-1.0.13/.github/workflows/stale.yml +63 -0
- specify_cli-1.0.13/AGENTS.md +58 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/CHANGELOG.md +50 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/CONTRIBUTING.md +63 -8
- {specify_cli-1.0.11 → specify_cli-1.0.13}/PKG-INFO +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/bundles/catalog.community.json +28 -4
- {specify_cli-1.0.11 → specify_cli-1.0.13}/design/cli.md +23 -0
- specify_cli-1.0.13/design/integration.md +108 -0
- specify_cli-1.0.13/design/workflow-step.md +64 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/README.md +1 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/community/bundles.md +1 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/community/extensions.md +7 -4
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/community/friends.md +5 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/community/presets.md +2 -1
- specify_cli-1.0.13/docs/guides/agentic-sdlc.md +285 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/monorepo.md +8 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/index.md +8 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/install/air-gapped.md +2 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/installation.md +7 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/agentic-sdd.md +3 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/authentication.md +72 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/bundles.md +2 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/core.md +4 -4
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/extensions.md +5 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/integrations.md +2 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/presets.md +3 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/workflows.md +3 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/toc.yml +2 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/business-analyst/bundle.yml +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/developer/bundle.yml +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/product-manager/bundle.yml +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/security-researcher/bundle.yml +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/agent-context-defaults.json +1 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/extension.yml +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/catalog.community.json +147 -22
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/catalog.json +16 -2
- specify_cli-1.0.13/extensions/github/README.md +104 -0
- specify_cli-1.0.13/extensions/github/commands/speckit.github.taskstoissues.md +106 -0
- specify_cli-1.0.13/extensions/github/extension.yml +36 -0
- specify_cli-1.0.13/extensions/github/scripts/bash/resolve-tasks.sh +264 -0
- specify_cli-1.0.13/extensions/github/scripts/powershell/resolve-tasks.ps1 +236 -0
- specify_cli-1.0.13/extensions/github/scripts/python/resolve_tasks.py +261 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/integrations/CONTRIBUTING.md +19 -19
- {specify_cli-1.0.11 → specify_cli-1.0.13}/integrations/catalog.json +10 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/ARCHITECTURE.md +4 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/README.md +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/catalog.community.json +53 -19
- {specify_cli-1.0.11 → specify_cli-1.0.13}/pyproject.toml +2 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/bash/common.sh +23 -14
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/powershell/common.ps1 +10 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/python/common.py +210 -49
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_invocation_style.py +2 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/__init__.py +2 -0
- specify_cli-1.0.13/src/specify_cli/authentication/bitbucket.py +78 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/config.py +26 -6
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/adapters.py +13 -7
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/command_init.py +7 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/events/__init__.py +10 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/__init__.py +2 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/_helpers.py +54 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_upgrade.py +9 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/copilot/__init__.py +23 -8
- specify_cli-1.0.13/src/specify_cli/integrations/mcode/__init__.py +74 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/vibe/__init__.py +28 -0
- specify_cli-1.0.13/src/specify_cli/presets/__init__.py +64 -0
- specify_cli-1.0.13/src/specify_cli/presets/_catalog.py +926 -0
- specify_cli-1.0.13/src/specify_cli/presets/_manager.py +969 -0
- specify_cli-1.0.13/src/specify_cli/presets/_manager_commands.py +1284 -0
- specify_cli-1.0.13/src/specify_cli/presets/_manager_skills.py +1544 -0
- specify_cli-1.0.13/src/specify_cli/presets/_manifest.py +438 -0
- specify_cli-1.0.13/src/specify_cli/presets/_registry.py +245 -0
- specify_cli-1.0.13/src/specify_cli/presets/_resolver.py +949 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/expressions.py +62 -4
- specify_cli-1.0.13/tests/extensions/github/test_github_extension.py +1422 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/test_update_agent_context_python_parity.py +27 -6
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integration/test_preset_update_workflow.py +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_extra_args.py +53 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_alquimia.py +106 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_copilot.py +31 -0
- specify_cli-1.0.13/tests/integrations/test_integration_mcode.py +145 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_vibe.py +48 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_zed.py +2 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_registry.py +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/parity_helpers.py +107 -2
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/authentication/test_authentication.py +237 -0
- specify_cli-1.0.13/tests/specify_cli/bundles/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_adapters.py +23 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/events/test_events.py +63 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_upgrade.py +189 -0
- specify_cli-1.0.13/tests/specify_cli/presets/_helpers.py +254 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/conftest.py +1 -1
- specify_cli-1.0.13/tests/specify_cli/presets/test_catalog.py +1668 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_domain_exports.py +30 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_manager.py +1609 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_manager_commands.py +3160 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_manager_skills.py +2807 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_manifest.py +555 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_registry.py +396 -0
- specify_cli-1.0.13/tests/specify_cli/presets/test_resolver.py +1802 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_agent_config_consistency.py +25 -0
- specify_cli-1.0.13/tests/test_catalog_trust_docs.py +37 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_extension_skills.py +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_github_workflows.py +40 -0
- specify_cli-1.0.13/tests/test_presets.py +808 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_ps1_encoding.py +1 -0
- specify_cli-1.0.13/tests/test_resolve_template_python_parity.py +1510 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_workflows.py +113 -3
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/unit/test_condition_expression_block.py +15 -20
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/ARCHITECTURE.md +1 -1
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/PUBLISHING.md +7 -6
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/README.md +1 -1
- specify_cli-1.0.11/.github/workflows/stale.yml +0 -43
- specify_cli-1.0.11/AGENTS.md +0 -611
- specify_cli-1.0.11/src/specify_cli/presets/__init__.py +0 -6259
- specify_cli-1.0.11/tests/specify_cli/presets/_helpers.py +0 -128
- specify_cli-1.0.11/tests/test_presets.py +0 -12884
- specify_cli-1.0.11/tests/test_resolve_template_python_parity.py +0 -787
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.devcontainer/devcontainer.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.devcontainer/post-create.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.editorconfig +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.gitattributes +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/CODEOWNERS +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/bundle_submission.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/extension_submission.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/ISSUE_TEMPLATE/preset_submission.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/aw/actions-lock.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/dependabot.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/scripts/check_extension_version_bump.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/scripts/check_security_requirements.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/security-audit-requirements.txt +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/skills/add-community-extension/SKILL.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/skills/code-review/SKILL.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/RELEASE-PROCESS.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/add-community-bundle.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/add-community-bundle.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/add-community-extension.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/add-community-extension.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/add-community-preset.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/add-community-preset.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/bug-assess.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/bug-assess.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/bug-fix.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/bug-fix.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/bug-test.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/bug-test.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/catalog-assign.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/docs.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/extension-version-guard.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/feature-assess.lock.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/feature-assess.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/publish-pypi.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/release-trigger.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/release.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/security.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.github/workflows/test.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.gitignore +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.markdownlint-cli2.jsonc +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.pre-commit-config.yaml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/.zenodo.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/CITATION.cff +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/CODE_OF_CONDUCT.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/DEVELOPMENT.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/LICENSE +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/README.ja.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/README.zh-CN.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/SECURITY.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/SUPPORT.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/bundles/assess/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/bundles/assess/bundle.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/bundles/bugfix/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/bundles/bugfix/bundle.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/bundles/catalog.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/.gitignore +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/community/overview.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/community/walkthroughs.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/concepts/complex-features.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/concepts/sdd.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/concepts/spec-of-specs.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/concepts/spec-persistence.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/docfx.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/assessment.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/bugfix.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/contract-driven-development.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/customization.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/evolving-specs.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/guides/existing-projects.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/history.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/images/spec-kit-logo.webp +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/install/one-time.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/install/pipx.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/install/pypi.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/install/uv.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/local-development.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/quickstart.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/agentic-assessment.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/agentic-bugfix.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/artifacts.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/reference/overview.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/template/public/main.css +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/docs/upgrade.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/business-analyst/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/developer/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/product-manager/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/examples/bundles/security-researcher/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/EXTENSION-PUBLISHING-GUIDE.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/EXTENSION-USER-GUIDE.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/RFC-EXTENSION-SYSTEM.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/agent-context-config.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/commands/speckit.agent-context.update.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/scripts/bash/update-agent-context.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/scripts/powershell/update-agent-context.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/agent-context/scripts/python/update_agent_context.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/commands/speckit.assess.decide.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/commands/speckit.assess.define.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/commands/speckit.assess.intake.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/commands/speckit.assess.research.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/commands/speckit.assess.shape.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/assess/extension.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/bug/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/bug/commands/speckit.bug.assess.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/bug/commands/speckit.bug.fix.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/bug/commands/speckit.bug.test.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/bug/extension.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/commands/speckit.git.commit.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/commands/speckit.git.feature.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/commands/speckit.git.initialize.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/commands/speckit.git.remote.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/commands/speckit.git.validate.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/config-template.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/extension.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/git-config.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/bash/auto-commit.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/bash/create-new-feature-branch.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/bash/git-common.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/bash/initialize-repo.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/powershell/auto-commit.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/powershell/create-new-feature-branch.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/powershell/git-common.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/powershell/initialize-repo.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/python/auto_commit.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/python/create_new_feature_branch.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/python/git_common.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/git/scripts/python/initialize_repo.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/selftest/commands/selftest.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/selftest/extension.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/.gitignore +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/CHANGELOG.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/EXAMPLE-README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/LICENSE +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/commands/example.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/config-template.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/extensions/template/extension.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/integrations/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/integrations/catalog.community.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/media/bootstrap-claude-code.gif +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/media/logo_large.webp +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/media/logo_small.webp +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/media/spec-kit-video-header.jpg +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/media/specify_cli.gif +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-April.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-August.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-February.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-July.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-June.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-March.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/newsletters/2026-May.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/PUBLISHING.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/catalog.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/constitution-sync/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/constitution-sync/commands/speckit.constitution.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/constitution-sync/preset.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/commands/speckit.constitution.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/commands/speckit.implement.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/commands/speckit.plan.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/commands/speckit.specify.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/commands/speckit.tasks.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/lean/preset.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/scaffold/README.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/scaffold/commands/speckit.myext.myextcmd.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/scaffold/commands/speckit.specify.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/scaffold/preset.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/scaffold/templates/myext-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/scaffold/templates/spec-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/commands/speckit.specify.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/commands/speckit.wrap-test.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/preset.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/templates/checklist-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/templates/constitution-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/templates/plan-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/templates/spec-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/presets/self-test/templates/tasks-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/bash/check-prerequisites.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/bash/create-new-feature.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/bash/resolve-template.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/bash/setup-plan.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/bash/setup-tasks.sh +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/powershell/check-prerequisites.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/powershell/create-new-feature.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/powershell/resolve-template.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/powershell/setup-plan.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/powershell/setup-tasks.ps1 +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/python/check_prerequisites.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/python/create_new_feature.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/python/resolve_template.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/python/setup_plan.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/scripts/python/setup_tasks.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/spec-driven.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/spec-kit.code-workspace +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_agent_config.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_assets.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_console.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_download_security.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_init_options.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_installed_list_json.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_project.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_toml_string.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_utils.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/_version.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/agents.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/_identifiers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/catalog.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/command_lookup.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/models.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/artifacts/resolution.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/azure_devops.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/base.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/github.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/github_http.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/authentication/http.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundler.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalog/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalog/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalog/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalog_config.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalog_stack.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/catalogs.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_build.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_init.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_install.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/command_validate.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/conflict.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/installer.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/manifest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/packager.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/primitives.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/project.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/records.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/references.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/resolver.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/sources.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/validator.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/versioning.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/bundles/yamlio.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/catalogs.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/command_check.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/command_version.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/events/command_run.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/_command_update_artifacts.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/_command_update_discovery.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/_command_update_transaction.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/catalog/_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/catalog/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/catalog/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/catalog/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_set_priority.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/extensions/command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integration_runtime.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integration_state.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integration_status.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/_command_scaffold_generation.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/_command_upgrade_layout.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/agy/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/alquimia/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/amp/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/auggie/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/base.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/bob/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/catalog/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/catalog/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/catalog/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/claude/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/cline/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/codebuddy/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/codex/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_code/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_install.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_scaffold.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_status.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_switch.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_uninstall.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/command_use.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/cursor_agent/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/devin/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/docker_agent/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/droid/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/dsh/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/firebender/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/forge/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/gemini/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/generic/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/goose/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/grok/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/hermes/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/junie/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/kilocode/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/kimi/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/kiro_cli/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/lingma/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/manifest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/muse/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/omp/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/opencode/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/pi/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/qodercli/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/qwen/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/rovodev/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/shai/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/tabnine/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/trae/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/zcode/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/integrations/zed/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/catalog/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/catalog/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/catalog/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_resolve.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_set_priority.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/presets/command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/selfs/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/selfs/command_check.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/selfs/command_upgrade.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/shared_infra.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/_command_resume_state.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/_command_run_ownership.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/base.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/catalog/_domain.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/catalog/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/catalog/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/catalog/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_resolve.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_resume.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_run.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_status.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/engine.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/command_set_priority.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/composer.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/layer_sources.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/merge.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/operations.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/resolver.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/overlay/schema.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/catalog/_domain.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/catalog/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/catalog/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/catalog/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/command/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/do_while/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/fan_in/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/fan_out/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/gate/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/if_then/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/init/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/prompt/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/shell/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/slot/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/switch/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/src/specify_cli/workflows/step/while_loop/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/checklist-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/analyze.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/checklist.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/clarify.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/constitution.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/converge.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/implement.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/plan.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/specify.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/tasks.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/commands/taskstoissues.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/constitution-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/plan-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/spec-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/tasks-template.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/templates/vscode-settings.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_bundled_extension_update_delivery.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_bundled_extension_versions.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_catalog_schema.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_extension_version_guard_script.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_firstparty_bundle_catalog_consistency.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_manifest_schema.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_wheel_bundled_presets.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_wheel_bundled_workflows.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/contract/test_wheel_core_pack_scripts.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/assess/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/assess/test_assess_extension.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/bug/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/bug/test_bug_extension.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/git/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/git/test_git_extension.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/git/test_git_extension_python_parity.py +0 -0
- {specify_cli-1.0.11/tests/integrations → specify_cli-1.0.13/tests/extensions/github}/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/test_agent_context_cli_free.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/test_extension_agent_context.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/extensions/test_update_agent_context_feature_json.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/hooks/TESTING.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/hooks/plan.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/hooks/spec.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/hooks/tasks.md +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/http_helpers.py +0 -0
- {specify_cli-1.0.11/tests/specify_cli/bundles → specify_cli-1.0.13/tests/integrations}/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_base.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_cli.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_home_isolation.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_agy.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_amp.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_auggie.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_base_markdown.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_base_skills.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_base_toml.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_base_yaml.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_bob.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_claude.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_cline.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_codebuddy.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_codex.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_command_code.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_cursor_agent.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_devin.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_docker_agent.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_droid.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_dsh.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_firebender.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_forge.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_gemini.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_generic.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_goose.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_grok.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_hermes.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_junie.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_kilocode.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_kimi.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_kiro_cli.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_lingma.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_muse.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_omp.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_opencode.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_pi.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_qodercli.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_qwen.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_rovodev.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_shai.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_state.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_tabnine.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_trae.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_integration_zcode.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_manifest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/integrations/test_skill_frontmatter_quoting.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/test_catalog.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/test_catalog_parity.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/test_command_lookup.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/artifacts/test_registration.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/authentication/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/authentication/helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/authentication/test_github_http.py +0 -0
- {specify_cli-1.0.11/tests/specify_cli/bundles/catalog → specify_cli-1.0.13/tests/specify_cli/bundles}/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/_command_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/catalog/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/catalog/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/catalog/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_bundles.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_catalog_config.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_catalog_stack.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_build.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_init.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_install.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_command_validate.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_commands.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_conflict.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_installer.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_offline.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_packager.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_primitives.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_records.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_references.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_resolver.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_security_paths.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_sources.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_validator.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_versioning.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/bundles/test_yamlio.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/events/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/events/test_command_run.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/catalog/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/catalog/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/catalog/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_add_path_traversal.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_set_priority.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_update_artifacts.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_update_discovery.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/extensions/test_command_update_transaction.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/_catalog_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/_scaffold_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/catalog/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/catalog/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/catalog/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_catalog.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_install.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_scaffold.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_scaffold_generation.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_status.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_switch.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_uninstall.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_upgrade_layout.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_command_use.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_lifecycle.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/integrations/test_registration.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/_fixtures.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/catalog/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/catalog/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/catalog/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_resolve.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_set_priority.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/presets/test_registration.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/self_upgrade_helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/selfs/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/selfs/test_command_check.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/selfs/test_command_upgrade.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_agent_config.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_check_tool.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_command_check.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_command_init.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_command_version.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_root_version_callback.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_version_detection.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_version_execution.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_version_guidance.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_version_imports.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_version_release.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/test_version_verification.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/catalog/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/catalog/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/catalog/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/helpers.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/test_command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/test_command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/overlay/test_command_set_priority.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/catalog/__init__.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/catalog/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/catalog/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/catalog/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/step/test_command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_add.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_disable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_enable.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_info.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_list.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_remove.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_resolve.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_resume.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_resume_state.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_run.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_run_ownership.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_search.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_status.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/specify_cli/workflows/test_command_update.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_branch_numbering.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_bug_fix_workflow.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_check_prerequisites_paths_only.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_check_prerequisites_python_parity.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_clarify_stage_gate.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_command_template_hooks.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_command_template_py_scripts.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_console_imports.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_constitution_template_sync_report.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_converge_template_scaffold.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_create_new_feature_python_parity.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_download_security.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_extension_registration.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_extensions.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_init_dir.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_init_dir_cli.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_installed_list_json.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_live_transient_windows.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_merge.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_post_process.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_registrar_path_traversal.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_security_workflow.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_setup_plan_feature_json.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_setup_plan_no_overwrite.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_setup_plan_python_parity.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_setup_tasks.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_setup_tasks_python_parity.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_shared_infra_gitignore.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_shared_infra_integrity.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_skill_placeholder_py.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_specify_no_persist.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_specify_template_numbering.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_tasks_template_constraints.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_timestamp_branches.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_utils.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/test_utils_assets_imports.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/conftest.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_bundled_bugfix_assess_workflows.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_bundled_speckit_workflow.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_overlay_composer.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_overlay_layer_sources.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_overlay_merge.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_overlay_schema.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_resolver_integration.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/tests/workflows/test_slot_step.py +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/assess/workflow.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/bugfix/workflow.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/catalog.community.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/catalog.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/speckit/workflow.yml +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/step-catalog.community.json +0 -0
- {specify_cli-1.0.11 → specify_cli-1.0.13}/workflows/step-catalog.json +0 -0
|
@@ -8,7 +8,7 @@ body:
|
|
|
8
8
|
value: |
|
|
9
9
|
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
|
|
10
10
|
|
|
11
|
-
**Currently supported agents**: Alquimia AI, Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Command Code, Cursor, Devin for Terminal, Docker Agent, Factory Droid, DeepSeek Harness, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Muse Code, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
|
|
11
|
+
**Currently supported agents**: Alquimia AI, Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Command Code, Cursor, Devin for Terminal, Docker Agent, Factory Droid, DeepSeek Harness, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Grok Build, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, MiniMax Code, Mistral Vibe, Muse Code, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
|
|
12
12
|
|
|
13
13
|
- type: input
|
|
14
14
|
id: agent-name
|
|
@@ -22,11 +22,11 @@ jobs:
|
|
|
22
22
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
23
|
|
|
24
24
|
- name: Initialize CodeQL
|
|
25
|
-
uses: github/codeql-action/init@
|
|
25
|
+
uses: github/codeql-action/init@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4
|
|
26
26
|
with:
|
|
27
27
|
languages: ${{ matrix.language }}
|
|
28
28
|
|
|
29
29
|
- name: Perform CodeQL Analysis
|
|
30
|
-
uses: github/codeql-action/analyze@
|
|
30
|
+
uses: github/codeql-action/analyze@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4
|
|
31
31
|
with:
|
|
32
32
|
category: "/language:${{ matrix.language }}"
|
|
@@ -10,6 +10,20 @@ on:
|
|
|
10
10
|
jobs:
|
|
11
11
|
markdownlint:
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
|
+
env:
|
|
14
|
+
DOC_GLOBS: |
|
|
15
|
+
docs/**/*.md
|
|
16
|
+
README.md
|
|
17
|
+
README.zh-CN.md
|
|
18
|
+
CODE_OF_CONDUCT.md
|
|
19
|
+
CONTRIBUTING.md
|
|
20
|
+
DEVELOPMENT.md
|
|
21
|
+
SECURITY.md
|
|
22
|
+
SUPPORT.md
|
|
23
|
+
spec-driven.md
|
|
24
|
+
integrations/*.md
|
|
25
|
+
presets/*.md
|
|
26
|
+
workflows/*.md
|
|
13
27
|
steps:
|
|
14
28
|
- name: Checkout
|
|
15
29
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
@@ -36,12 +50,46 @@ jobs:
|
|
|
36
50
|
git diff --check refs/checks/push-before HEAD
|
|
37
51
|
fi
|
|
38
52
|
|
|
53
|
+
# Documentation only. Commands, skills, prompt templates, agent
|
|
54
|
+
# instructions (AGENTS.md) and .github/ content are inputs to coding
|
|
55
|
+
# agents rather than prose, and are deliberately left unlinted so a
|
|
56
|
+
# documentation pass never reformats them. Add new documentation
|
|
57
|
+
# paths to the DOC_GLOBS list above.
|
|
58
|
+
- name: Verify the documentation globs match files
|
|
59
|
+
shell: bash
|
|
60
|
+
run: |
|
|
61
|
+
set -euo pipefail
|
|
62
|
+
shopt -s globstar nullglob
|
|
63
|
+
|
|
64
|
+
# Checked per glob, not on the total: one stale entry among several
|
|
65
|
+
# still leaves that part of the documentation unlinted, which is the
|
|
66
|
+
# failure #4526 was about.
|
|
67
|
+
count=0
|
|
68
|
+
empty=()
|
|
69
|
+
while IFS= read -r glob; do
|
|
70
|
+
[ -z "$glob" ] && continue
|
|
71
|
+
matched=0
|
|
72
|
+
for path in $glob; do
|
|
73
|
+
[ -f "$path" ] && matched=$((matched + 1))
|
|
74
|
+
done
|
|
75
|
+
# An array, not a string: nullglob is on, so re-expanding an
|
|
76
|
+
# unquoted list of unmatched globs would erase it.
|
|
77
|
+
[ "$matched" -eq 0 ] && empty+=("$glob")
|
|
78
|
+
count=$((count + matched))
|
|
79
|
+
done <<< "$DOC_GLOBS"
|
|
80
|
+
|
|
81
|
+
echo "documentation files matched: $count"
|
|
82
|
+
if [ ${#empty[@]} -gt 0 ]; then
|
|
83
|
+
for glob in "${empty[@]}"; do
|
|
84
|
+
echo "::error::markdownlint glob matches no files: $glob (see #4526)"
|
|
85
|
+
done
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
|
|
39
89
|
- name: Run markdownlint-cli2
|
|
40
90
|
uses: DavidAnson/markdownlint-cli2-action@21c1be1b93ad9ed58fa840aacc3f279cde2a72ff # v24.2.0
|
|
41
91
|
with:
|
|
42
|
-
globs:
|
|
43
|
-
'**/*.md'
|
|
44
|
-
!extensions/**/*.md
|
|
92
|
+
globs: ${{ env.DOC_GLOBS }}
|
|
45
93
|
|
|
46
94
|
shellcheck:
|
|
47
95
|
runs-on: ubuntu-latest
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: 'Close stale issues and PRs'
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '0 0 * * *' # Run daily at midnight UTC
|
|
6
|
+
workflow_dispatch: # Allow manual triggering
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
actions: write
|
|
10
|
+
issues: write
|
|
11
|
+
pull-requests: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
stale:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
|
|
18
|
+
with:
|
|
19
|
+
# Days of inactivity before an issue or PR becomes stale
|
|
20
|
+
days-before-stale: 60
|
|
21
|
+
# Days of inactivity before a stale issue or PR is closed (after being marked stale)
|
|
22
|
+
days-before-close: 30
|
|
23
|
+
|
|
24
|
+
# Stale issue settings
|
|
25
|
+
stale-issue-message: >-
|
|
26
|
+
This issue has been automatically marked as stale because it has had no activity for 60 days.
|
|
27
|
+
It will be closed in 30 days unless there is a substantive update. If the problem still applies,
|
|
28
|
+
please provide updated context such as whether it is still reproducible, the affected version or
|
|
29
|
+
environment, its current impact, and any new reproduction details. A comment that only states that
|
|
30
|
+
the issue is "still relevant" does not give maintainers enough information to reconsider it.
|
|
31
|
+
close-issue-message: >-
|
|
32
|
+
This issue has been automatically closed after 90 days without activity. To request reconsideration,
|
|
33
|
+
please provide updated reproduction details, the currently affected version or environment, and the
|
|
34
|
+
present impact. Ask a maintainer to reopen this issue if it is fundamentally the same problem. If the
|
|
35
|
+
scope or reproduction has materially changed, create a new issue, link this one, and explain what has
|
|
36
|
+
changed.
|
|
37
|
+
stale-issue-label: 'stale'
|
|
38
|
+
|
|
39
|
+
# Stale PR settings
|
|
40
|
+
stale-pr-message: >-
|
|
41
|
+
This pull request has been automatically marked as stale because it has had no activity for 60 days.
|
|
42
|
+
It will be closed in 30 days unless there is a substantive update. If you intend to continue, please
|
|
43
|
+
describe the current status, address or acknowledge outstanding feedback, and confirm whether the
|
|
44
|
+
branch can be updated and the change remains ready for review. A comment that only states that the
|
|
45
|
+
pull request is "still relevant" does not provide enough context for maintainers.
|
|
46
|
+
close-pr-message: >-
|
|
47
|
+
This pull request has been automatically closed after 90 days without activity. To request
|
|
48
|
+
reconsideration, please explain why the change is still needed, confirm that the implementation is
|
|
49
|
+
current and ready for review, and address any outstanding feedback or conflicts. Ask a maintainer to
|
|
50
|
+
reopen this pull request if the existing branch and approach remain valid. Otherwise, create a new pull
|
|
51
|
+
request, link this one, and explain what has changed.
|
|
52
|
+
stale-pr-label: 'stale'
|
|
53
|
+
|
|
54
|
+
# Exempt issues and PRs with these labels from being marked as stale
|
|
55
|
+
exempt-issue-labels: 'pinned,security'
|
|
56
|
+
exempt-pr-labels: 'pinned,security'
|
|
57
|
+
|
|
58
|
+
# Only issues or PRs with all of these labels are checked
|
|
59
|
+
# Leave empty to check all issues and PRs
|
|
60
|
+
any-of-labels: ''
|
|
61
|
+
|
|
62
|
+
# Operations per run (helps avoid rate limits)
|
|
63
|
+
operations-per-run: 250
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## About Spec Kit and Specify
|
|
4
|
+
|
|
5
|
+
**GitHub Spec Kit** is a comprehensive toolkit for implementing Spec-Driven Development (SDD) - a methodology that emphasizes creating clear specifications before implementation. The toolkit includes templates, scripts, and workflows that guide development teams through a structured approach to building software.
|
|
6
|
+
|
|
7
|
+
**Specify CLI** is the command-line interface that bootstraps projects with the Spec Kit framework. It sets up the necessary directory structures, templates, and AI agent integrations to support the Spec-Driven Development workflow.
|
|
8
|
+
|
|
9
|
+
The toolkit supports multiple AI coding assistants, allowing teams to use their preferred tools while maintaining consistent project structure and development practices.
|
|
10
|
+
|
|
11
|
+
## Adding or Updating CLI Commands
|
|
12
|
+
|
|
13
|
+
Before adding, updating, or reorganizing Specify CLI commands, read
|
|
14
|
+
[Specify CLI Command Architecture](design/cli.md). It defines command-module
|
|
15
|
+
naming, private command phases, nested command groups, registration ownership,
|
|
16
|
+
mirrored tests, and the rationale for making the CLI structure predictable for
|
|
17
|
+
both humans and coding agents.
|
|
18
|
+
|
|
19
|
+
## Adding or Updating Agent Integrations
|
|
20
|
+
|
|
21
|
+
Before adding or changing AI agent integrations, read
|
|
22
|
+
[Agent Integration Design](design/integration.md). It covers
|
|
23
|
+
delivery routes, output formats, registration, and install/uninstall ownership.
|
|
24
|
+
|
|
25
|
+
## Adding or Updating Workflow Steps
|
|
26
|
+
|
|
27
|
+
Before adding or changing workflow step types, read
|
|
28
|
+
[Workflow Step Design](design/workflow-step.md). It covers registration,
|
|
29
|
+
validation, execution, resume, and installed step packages.
|
|
30
|
+
|
|
31
|
+
## Testing Executable Behavior
|
|
32
|
+
|
|
33
|
+
Before changing code or configuration that runs or controls execution without
|
|
34
|
+
an LLM, read
|
|
35
|
+
[Testing deterministic behavior](CONTRIBUTING.md#testing-deterministic-behavior).
|
|
36
|
+
Behavioral changes need positive and negative coverage; bug fixes need
|
|
37
|
+
before-and-after regression evidence.
|
|
38
|
+
|
|
39
|
+
## Branches and Agent Contributions
|
|
40
|
+
|
|
41
|
+
When creating a branch, follow [Branch naming](CONTRIBUTING.md#branch-naming).
|
|
42
|
+
Before authoring commits, opening PRs, or posting review comments, read
|
|
43
|
+
[Agent-authored Git and review activity](CONTRIBUTING.md#agent-authored-git-and-review-activity).
|
|
44
|
+
Agent-authored commits and AI-generated PRs and comments each require their
|
|
45
|
+
own disclosure; a PR-body disclosure alone does not cover later activity.
|
|
46
|
+
|
|
47
|
+
## Other Contribution Guidance
|
|
48
|
+
|
|
49
|
+
For contribution or repository-workflow questions not covered above, or when
|
|
50
|
+
the applicable guidance is unclear, read [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
51
|
+
before acting.
|
|
52
|
+
|
|
53
|
+
## Common Pitfalls
|
|
54
|
+
|
|
55
|
+
- **Running tests against the wrong environment:** Run the suite inside this
|
|
56
|
+
worktree's own virtualenv (`uv sync --extra test` then
|
|
57
|
+
`.venv/bin/python -m pytest`). A bare `uv run pytest` can pick up an
|
|
58
|
+
editable install from another worktree and fail to import new subpackages.
|
|
@@ -2,6 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- insert new changelog below this comment -->
|
|
4
4
|
|
|
5
|
+
## [1.0.13] - 2026-09-29
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- community: add Raaghu Spec Kit Azure DevOps extension to friends (#4782)
|
|
10
|
+
- feat(extensions): add bundled `github` extension for taskstoissues (#4488)
|
|
11
|
+
- fix(integrations): drop invalid --model/--output-format flags from Vibe dispatch (#4784)
|
|
12
|
+
- Update Superpowers Implementation Bridge extension to v1.3.0 (#4783)
|
|
13
|
+
- fix(workflows): evaluate parenthesised expressions (#4417)
|
|
14
|
+
- fix(workflows): resolve negative list indices in expressions (#4416)
|
|
15
|
+
- docs: explain how Spec Kit uses an agentic SDLC (#4774)
|
|
16
|
+
- fix(copilot): detect copilot.exe on Windows instead of assuming copilot.cmd (#4758)
|
|
17
|
+
- fix: keep non-ASCII text readable in merged JSON settings files (#4773)
|
|
18
|
+
- Added openspec extension (#4765)
|
|
19
|
+
- feat(integrations): add MiniMax Code (mcode) integration (#4644) (#4645)
|
|
20
|
+
- docs(community): add Specstride to Community Friends (#4762)
|
|
21
|
+
- docs: clarify feature directories may live outside the project root (#4739)
|
|
22
|
+
- fix(scripts): honor SPECKIT_PYTHON override for preset manifest parsing (#4445)
|
|
23
|
+
- chore: clarify stale issue and PR guidance (#4772)
|
|
24
|
+
- Update OWASP LLM Threat Model extension to v2.1.2 (#4771)
|
|
25
|
+
- docs: correct workflow publishing security-review claim, add catalog vetting notes (#4736)
|
|
26
|
+
- [preset] Update Intake Sequencing Governance preset to v0.2.6 (#4761)
|
|
27
|
+
- [extension] Add Test Validation extension to community catalog (#4760)
|
|
28
|
+
- chore: release 1.0.12, begin 1.0.13.dev0 development (#4759)
|
|
29
|
+
|
|
30
|
+
## [1.0.12] - 2026-09-25
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- fix(workflows): reject a multi-argument filter call in expressions (#3893)
|
|
35
|
+
- feat(auth): add Bitbucket authentication provider (#4629)
|
|
36
|
+
- Add Agentstandards bundle to community catalog (#4751)
|
|
37
|
+
- docs: consolidate design guidance and contribution guidelines (#4752)
|
|
38
|
+
- Add Agentstandards Task Gate preset to community catalog (#4749)
|
|
39
|
+
- fix(alquimia): render `/speckit-<name>` invocations for the skills-only Alquimia agent (#4137)
|
|
40
|
+
- [preset] Update Intake Review Governance preset to v0.2.3 (#4748)
|
|
41
|
+
- refactor(presets): split domain internals into private modules (#4747)
|
|
42
|
+
- chore(deps): bump the codeql-action group with 2 updates (#4742)
|
|
43
|
+
- Add Agentstandards Architecture Council extension to community catalog (#4730)
|
|
44
|
+
- fix(ci): make the markdownlint job lint files again (#4526) (#4584)
|
|
45
|
+
- Update SpecAssay community bundle to v0.5.2 (#4737)
|
|
46
|
+
- Update SpecAssay Check extension to v0.5.2 (#4735)
|
|
47
|
+
- [preset] Update SpecAssay preset to v0.5.2 (#4717)
|
|
48
|
+
- fix: sync integration manifest hashes after preset re-registration on upgrade (#4697)
|
|
49
|
+
- [extension] Update OKF Knowledge Bundle Generator to v0.9.2 (#4700)
|
|
50
|
+
- Update Intake Authoring Governance preset to v0.3.4 (#4716)
|
|
51
|
+
- fix: eliminate TOCTOU races in catalog_fetch() for file:// and bare path URLs (#3910)
|
|
52
|
+
- fix: add ValueError guard for timeout in _build_opencode_plugin (#3973)
|
|
53
|
+
- chore: release 1.0.11, begin 1.0.12.dev0 development (#4723)
|
|
54
|
+
|
|
5
55
|
## [1.0.11] - 2026-09-24
|
|
6
56
|
|
|
7
57
|
### Changed
|
|
@@ -38,7 +38,7 @@ On [GitHub Codespaces](https://github.com/features/codespaces) it's even simpler
|
|
|
38
38
|
1. Fork and clone the repository
|
|
39
39
|
1. Configure and install the dependencies: `uv sync --extra test`
|
|
40
40
|
1. Make sure the CLI works on your machine: `uv run specify --help`
|
|
41
|
-
1. Create a new branch
|
|
41
|
+
1. Create a new branch (see [Branch naming](#branch-naming) below)
|
|
42
42
|
1. Make your change, add tests, and make sure everything still works
|
|
43
43
|
1. Test the CLI functionality with a sample project if relevant
|
|
44
44
|
1. Push to your fork and submit a pull request
|
|
@@ -55,7 +55,7 @@ Here are a few things you can do that will increase the likelihood of your pull
|
|
|
55
55
|
- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
|
|
56
56
|
- Test your changes with the Spec-Driven Development workflow to ensure compatibility.
|
|
57
57
|
|
|
58
|
-
Accounts with three open pull requests may continue submitting changes, but additional submissions may be placed behind contributions from other authors in the review queue. Coding agents
|
|
58
|
+
Accounts with three open pull requests may continue submitting changes, but additional submissions may be placed behind contributions from other authors in the review queue. Coding agents must follow the [agent-authored PR rules](#agent-authored-git-and-review-activity) before opening another pull request.
|
|
59
59
|
|
|
60
60
|
### Evidence gate
|
|
61
61
|
|
|
@@ -137,7 +137,9 @@ fix to a broken entry is still an update and needs the same validation. Always p
|
|
|
137
137
|
|
|
138
138
|
### Branch naming
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
When an issue exists, name the branch `<type>/<issue-number>-<short-slug>`.
|
|
141
|
+
For PR-only changes without an issue, use `<type>/<short-slug>` instead.
|
|
142
|
+
Choose the prefix from:
|
|
141
143
|
|
|
142
144
|
| Prefix | When to use | Example |
|
|
143
145
|
|---|---|---|
|
|
@@ -147,7 +149,9 @@ We recommend naming branches as `<type>/<number>-<short-slug>`, where `<number>`
|
|
|
147
149
|
| `community/` | Community catalog additions | `community/2492-add-mde-extension` |
|
|
148
150
|
| `chore/` | Maintenance, tooling, CI | `chore/2366-editorconfig` |
|
|
149
151
|
|
|
150
|
-
|
|
152
|
+
Put an existing issue number immediately after the prefix to make the branch
|
|
153
|
+
traceable; do not add a PR number later for PR-only changes. Keep the slug
|
|
154
|
+
short, descriptive, and kebab-case.
|
|
151
155
|
|
|
152
156
|
## Development workflow
|
|
153
157
|
|
|
@@ -179,6 +183,22 @@ When working on spec-kit:
|
|
|
179
183
|
3. Test script functionality in the `scripts/` directory
|
|
180
184
|
4. Ensure memory files (`memory/constitution.md`) are updated if major process changes are made
|
|
181
185
|
|
|
186
|
+
### Testing deterministic behavior
|
|
187
|
+
|
|
188
|
+
Behavioral changes to repository-maintained code or configuration that runs or
|
|
189
|
+
controls execution without an LLM require tests for both intended behavior
|
|
190
|
+
(positive cases) and relevant invalid inputs, failures, or prevented behavior
|
|
191
|
+
(negative cases). This includes Python, shell, and PowerShell code in the CLI,
|
|
192
|
+
core scripts, extensions, presets, and tooling; workflow step types; and
|
|
193
|
+
execution wiring such as script selection, workflow shell steps, and CI `run:`
|
|
194
|
+
steps. Existing tests count when they cover the changed behavior.
|
|
195
|
+
|
|
196
|
+
Bug fixes also need a regression test that fails before the fix and passes
|
|
197
|
+
afterward. If a baseline or an execution path cannot be tested automatically,
|
|
198
|
+
explain the limitation and provide reproducible evidence for the affected
|
|
199
|
+
success and failure paths. Prompt-only and other non-behavioral edits do not
|
|
200
|
+
require invented tests.
|
|
201
|
+
|
|
182
202
|
### Recommended validation flow
|
|
183
203
|
|
|
184
204
|
For the smoothest review experience, validate changes in this order:
|
|
@@ -278,7 +298,7 @@ Any change that affects a slash command's behavior requires manually testing tha
|
|
|
278
298
|
|
|
279
299
|
Paste this into your PR:
|
|
280
300
|
|
|
281
|
-
|
|
301
|
+
```markdown
|
|
282
302
|
## Manual test results
|
|
283
303
|
|
|
284
304
|
**Agent**: [e.g., GitHub Copilot in VS Code] | **OS/Shell**: [e.g., macOS/zsh]
|
|
@@ -286,13 +306,13 @@ Paste this into your PR:
|
|
|
286
306
|
| Command tested | Notes |
|
|
287
307
|
|----------------|-------|
|
|
288
308
|
| `/speckit.command` | |
|
|
289
|
-
|
|
309
|
+
```
|
|
290
310
|
|
|
291
311
|
#### Determining which tests to run
|
|
292
312
|
|
|
293
313
|
Copy this prompt into your agent. Include the agent's response (selected tests plus a brief explanation of the mapping) in your PR.
|
|
294
314
|
|
|
295
|
-
|
|
315
|
+
```text
|
|
296
316
|
Read CONTRIBUTING.md, then run `git diff --name-only main` to get my changed files.
|
|
297
317
|
For each changed file, determine which slash commands it affects by reading
|
|
298
318
|
the command templates in templates/commands/ to understand what each command
|
|
@@ -324,7 +344,7 @@ Number each test sequentially (T1, T2, ...). List prerequisite tests first.
|
|
|
324
344
|
|
|
325
345
|
- T1: /speckit.command — (reason)
|
|
326
346
|
- T2: /speckit.command — (reason)
|
|
327
|
-
|
|
347
|
+
```
|
|
328
348
|
|
|
329
349
|
## AI contributions in Spec Kit
|
|
330
350
|
|
|
@@ -346,6 +366,8 @@ That being said, if you are using any kind of AI assistance (e.g., agents, ChatG
|
|
|
346
366
|
If your PR responses or comments are being generated by an AI, disclose that as well, naming the same agent, model(s), settings/mode, and extent.
|
|
347
367
|
|
|
348
368
|
As an exception, trivial spacing or typo fixes don't need to be disclosed, so long as the changes are limited to small parts of the code or short phrases. The catalog-submission issue forms (extension, preset, and bundle submissions) feed content-neutral validation automation rather than code review, so they carry no disclosure field and are exempt from this requirement. Spec Kit's own bundled agentic workflows (the automated bug-fix and community-catalog prompts under `.github/workflows/`) are likewise exempt: they run as a fixed, known agent and open draft PRs for maintainer review, so their agent identity is inherent to the workflow rather than self-declared per contribution.
|
|
369
|
+
The trivial-fix exception does not waive the disclosures below for agents acting
|
|
370
|
+
on behalf of a contributor; the bundled workflows retain their exception.
|
|
349
371
|
|
|
350
372
|
An example disclosure:
|
|
351
373
|
|
|
@@ -365,6 +387,39 @@ what extent, which in turn helps us judge whether our [`AGENTS.md`](./AGENTS.md)
|
|
|
365
387
|
In a perfect world, AI assistance would produce equal or higher quality work than any human. That isn't the world we live in today, and in most cases
|
|
366
388
|
where human supervision or expertise is not in the loop, it's generating code that cannot be reasonably maintained or evolved.
|
|
367
389
|
|
|
390
|
+
### Agent-authored Git and review activity
|
|
391
|
+
|
|
392
|
+
For an agent acting on behalf of a contributor, disclosure is continuous: the
|
|
393
|
+
PR body, each agent-authored commit, and each AI-generated PR comment or reply
|
|
394
|
+
must independently identify the agent's involvement. A PR-body disclosure does
|
|
395
|
+
not cover later commits or review rounds.
|
|
396
|
+
|
|
397
|
+
- **Before opening a PR:** Check whether the filing account already has three
|
|
398
|
+
open PRs in this repository. If so, explain that another submission may
|
|
399
|
+
receive lower review priority and obtain the filer's explicit permission.
|
|
400
|
+
Without it, including during autonomous operation, leave the work on a branch
|
|
401
|
+
and report that confirmation is required. Repository-owned `gh-aw` maintenance
|
|
402
|
+
workflows are exempt from this count check.
|
|
403
|
+
- **For every agent-authored commit:** Include an `Assisted-by:` trailer naming
|
|
404
|
+
the actual agent and model and whether it acted `autonomous` or `supervised`,
|
|
405
|
+
for example, `Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous)`.
|
|
406
|
+
Use `model: unknown` only if the model genuinely cannot be determined. Use
|
|
407
|
+
`supervised` only if a human authored or line-by-line reviewed the change
|
|
408
|
+
before commit. Do not hide agent authorship behind the operator's git
|
|
409
|
+
identity or remove tool-generated `Co-authored-by:` trailers.
|
|
410
|
+
- **For each AI-generated PR comment:** Identify the contributor on whose
|
|
411
|
+
behalf it is posted, the agent, model, settings/mode, and extent of AI
|
|
412
|
+
involvement. Restate this in every review-round summary, not just the PR
|
|
413
|
+
body. Post one top-level summary per round with the changes and commit SHA;
|
|
414
|
+
reply inline only for disagreement, deferral, or a non-obvious fix, and keep
|
|
415
|
+
those replies brief. Do not resolve conversations on a reviewer's behalf.
|
|
416
|
+
Avoid emoji, celebratory framing, checklist mirroring, and restating the
|
|
417
|
+
reviewer's comments. Re-request review once, after all feedback is addressed.
|
|
418
|
+
|
|
419
|
+
Fast responses do not replace disclosure: do not post an unexplained "Done" or
|
|
420
|
+
push an undisclosed fix moments after review. Do not claim personal human review
|
|
421
|
+
or testing for an automated change; describe the automation truthfully.
|
|
422
|
+
|
|
368
423
|
### What we're looking for
|
|
369
424
|
|
|
370
425
|
When submitting AI-assisted contributions, please ensure they include:
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "1.0",
|
|
3
|
-
"updated_at": "2026-
|
|
3
|
+
"updated_at": "2026-09-25T00:00:00Z",
|
|
4
4
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/bundles/catalog.community.json",
|
|
5
5
|
"bundles": {
|
|
6
|
+
"agentstandards": {
|
|
7
|
+
"name": "Agentstandards Multi-Vendor Architecture",
|
|
8
|
+
"id": "agentstandards",
|
|
9
|
+
"version": "0.1.1",
|
|
10
|
+
"role": "architecture-governance",
|
|
11
|
+
"description": "Installs a Codex-orchestrated, multi-vendor architecture council, its hard task gate, and the supporting Spec Kit workflow.",
|
|
12
|
+
"author": "bbjwz",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"download_url": "https://github.com/bbjwz/agentstandards/releases/download/v0.1.1/agentstandards-bundle-0.1.1.zip",
|
|
15
|
+
"sha256": "0306cdc780f4107e6702cd25680afede8acea866dfbb0ba81f9ea9c8f960a9dc",
|
|
16
|
+
"repository": "https://github.com/bbjwz/agentstandards",
|
|
17
|
+
"requires": {
|
|
18
|
+
"speckit_version": ">=1.0.8,<2.0.0"
|
|
19
|
+
},
|
|
20
|
+
"provides": {
|
|
21
|
+
"extensions": 1,
|
|
22
|
+
"presets": 1,
|
|
23
|
+
"steps": 0,
|
|
24
|
+
"workflows": 1
|
|
25
|
+
},
|
|
26
|
+
"tags": ["architecture", "governance", "multi-vendor", "codex"],
|
|
27
|
+
"verified": false
|
|
28
|
+
},
|
|
6
29
|
"sicario-spec": {
|
|
7
30
|
"name": "SicarioSpec Security & Governance Bundle",
|
|
8
31
|
"id": "sicario-spec",
|
|
@@ -34,15 +57,16 @@
|
|
|
34
57
|
"specassay": {
|
|
35
58
|
"name": "SpecAssay",
|
|
36
59
|
"id": "specassay",
|
|
37
|
-
"version": "0.
|
|
60
|
+
"version": "0.5.2",
|
|
38
61
|
"role": "developer",
|
|
39
62
|
"description": "Durable-ID promotion for stock Spec Kit: templates, Gate 2 refusal, and trace-manifest emission.",
|
|
40
63
|
"author": "Rik Dryfoos",
|
|
41
64
|
"license": "MIT",
|
|
42
|
-
"download_url": "https://github.com/rdryfoos/specassay/releases/download/v0.
|
|
65
|
+
"download_url": "https://github.com/rdryfoos/specassay/releases/download/v0.5.2/specassay-0.5.2.zip",
|
|
66
|
+
"sha256": "a9acd0848132bee975be7ca6759a531ff02b736c99a98b1bc4e7d8da90da7c82",
|
|
43
67
|
"repository": "https://github.com/rdryfoos/specassay",
|
|
44
68
|
"requires": {
|
|
45
|
-
"speckit_version": ">=0.14.0"
|
|
69
|
+
"speckit_version": ">=0.14.0,<2.0.0"
|
|
46
70
|
},
|
|
47
71
|
"provides": {
|
|
48
72
|
"extensions": 1,
|
|
@@ -249,6 +249,25 @@ the domain has the same name as that CLI namespace. The nested directory is
|
|
|
249
249
|
reserved for `test_command_<name>.py` suites that exercise its actual
|
|
250
250
|
subcommands.
|
|
251
251
|
|
|
252
|
+
When a domain implementation is split into private modules, mirror those
|
|
253
|
+
boundaries in its tests, dropping the source module's leading underscore:
|
|
254
|
+
|
|
255
|
+
| Preset implementation | Mirrored test under `tests/specify_cli/presets/` |
|
|
256
|
+
| --- | --- |
|
|
257
|
+
| `_manifest.py` | `test_manifest.py` |
|
|
258
|
+
| `_registry.py` | `test_registry.py` |
|
|
259
|
+
| `_catalog.py` | `test_catalog.py` |
|
|
260
|
+
| `_resolver.py` | `test_resolver.py` |
|
|
261
|
+
| `_manager.py` | `test_manager.py` |
|
|
262
|
+
| `_manager_commands.py` | `test_manager_commands.py` |
|
|
263
|
+
| `_manager_skills.py` | `test_manager_skills.py` |
|
|
264
|
+
|
|
265
|
+
`test_manager_commands.py` exercises domain command-artifact behavior, not a
|
|
266
|
+
registered CLI handler. The `test_command_*.py` suites continue to cover the
|
|
267
|
+
CLI surface. `test_catalog.py` belongs at the parent preset package level;
|
|
268
|
+
`catalog/test_command_*.py` covers the nested catalog CLI. Package export
|
|
269
|
+
compatibility is covered separately by `test_domain_exports.py`.
|
|
270
|
+
|
|
252
271
|
Not every test is a command test, even when it belongs in the mirrored package
|
|
253
272
|
tree:
|
|
254
273
|
|
|
@@ -264,6 +283,10 @@ tree:
|
|
|
264
283
|
|
|
265
284
|
Moving tests must preserve coverage rather than duplicating it. Run both the
|
|
266
285
|
new command-focused suites and the legacy suites from which tests were moved.
|
|
286
|
+
For domain splits, also run all new domain suites and any remaining cross-domain
|
|
287
|
+
tests in the legacy file. Compare full-suite collection before and after the
|
|
288
|
+
move: the count must not decrease, and every existing parametrized test case
|
|
289
|
+
must remain represented. A matching total alone does not prove preservation.
|
|
267
290
|
|
|
268
291
|
## Reference layout
|
|
269
292
|
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Agent Integration Design
|
|
2
|
+
|
|
3
|
+
Integrations adapt the shared Spec Kit workflows to an AI coding agent. Their
|
|
4
|
+
**availability** (built-in, generic, or catalog-only) is separate from their
|
|
5
|
+
**output format** (commands, recipes, skills, or a custom layout). The Python
|
|
6
|
+
integration registry owns installation behavior; catalogs provide discovery,
|
|
7
|
+
not executable integration implementations.
|
|
8
|
+
|
|
9
|
+
## Availability
|
|
10
|
+
|
|
11
|
+
| Route | What ships | How users get it |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| Built-in | A registered class under `src/specify_cli/integrations/` and, for discovery, an entry in `integrations/catalog.json` | `specify init my-project --integration copilot` or, in an initialized project, `specify integration install copilot` |
|
|
14
|
+
| Generic | The registered `generic` integration, with a user-supplied `--commands-dir` and optional `--skills` | `specify init my-project --integration generic --integration-options="--commands-dir .agent/commands"` |
|
|
15
|
+
| Community | Metadata in `integrations/catalog.community.json` pointing to an external project | Discover with `specify integration list --catalog` or `search`; obtain and vet it from its source |
|
|
16
|
+
|
|
17
|
+
The default community catalog is discovery-only. A catalog entry (including
|
|
18
|
+
one in a custom catalog) does **not** register a Python integration or make
|
|
19
|
+
`specify integration install <key>` work: installation resolves keys through
|
|
20
|
+
`INTEGRATION_REGISTRY`. See [catalog contribution guidance](../integrations/CONTRIBUTING.md)
|
|
21
|
+
for descriptor and submission details.
|
|
22
|
+
|
|
23
|
+
## Built-in contract
|
|
24
|
+
|
|
25
|
+
Each built-in agent has one Python-safe subpackage: `copilot` lives in
|
|
26
|
+
`src/specify_cli/integrations/copilot/` and exposes `CopilotIntegration`.
|
|
27
|
+
Hyphenated keys use underscores in package names. Its class declares:
|
|
28
|
+
|
|
29
|
+
- `key`: unique user-facing identifier. CLI-backed integrations normally use
|
|
30
|
+
the executable name: tool checks use the key and runtime dispatch defaults
|
|
31
|
+
to it. Agents with a different executable must handle both paths explicitly;
|
|
32
|
+
IDE-only agents use their canonical identifier.
|
|
33
|
+
- `config`: agent name, folder, commands subdirectory, install URL, and
|
|
34
|
+
`requires_cli`.
|
|
35
|
+
- `registrar_config`: output directory, format, argument placeholder, and
|
|
36
|
+
file extension.
|
|
37
|
+
|
|
38
|
+
Import and `_register()` the class in `src/specify_cli/integrations/__init__.py`
|
|
39
|
+
(both lists alphabetically). This registry is the source of built-in Python
|
|
40
|
+
integration behavior. If the agent supports non-interactive workflows, implement
|
|
41
|
+
`build_exec_args()` with the full base signature; `options()` declares
|
|
42
|
+
install-time `--integration-options`, not per-workflow runtime options.
|
|
43
|
+
Agent-specific native events can be declared on the integration. Set
|
|
44
|
+
`multi_install_safe = True` only for a static, non-overlapping agent root and
|
|
45
|
+
command directory; shared dynamic paths are not safe by default.
|
|
46
|
+
|
|
47
|
+
## Output flavors
|
|
48
|
+
|
|
49
|
+
Choose the smallest base class that matches the agent's native format. The
|
|
50
|
+
format bases render shared `templates/commands/*.md`; `IntegrationBase.setup()`
|
|
51
|
+
copies templates raw unless overridden. Paths below are relative to each
|
|
52
|
+
agent's configured root.
|
|
53
|
+
|
|
54
|
+
| Flavor | Base class | Typical output | Arguments |
|
|
55
|
+
|---|---|---|---|
|
|
56
|
+
| Markdown commands | `MarkdownIntegration` | `commands/speckit.plan.md` | `$ARGUMENTS` |
|
|
57
|
+
| TOML commands | `TomlIntegration` | `commands/speckit.plan.toml` | `{{args}}` |
|
|
58
|
+
| YAML recipes | `YamlIntegration` | `recipes/speckit.plan.yaml` | `{{args}}` |
|
|
59
|
+
| Agent skills | `SkillsIntegration` | `skills/speckit-plan/SKILL.md` | `$ARGUMENTS` |
|
|
60
|
+
| Nonstandard or dual-mode | `IntegrationBase` or a targeted override of a format base | Agent-specific files, companions, or settings | Agent-specific |
|
|
61
|
+
|
|
62
|
+
`registrar_config["args"]` selects the installed argument syntax;
|
|
63
|
+
`command_filename()` and `setup()` are override points when the native layout
|
|
64
|
+
demands them. Keep mode selection, invocation spelling, and registration in
|
|
65
|
+
sync. Agent-specific layouts and options belong in the integration code and
|
|
66
|
+
the [supported-integrations reference](../docs/reference/integrations.md).
|
|
67
|
+
|
|
68
|
+
Core templates that call scripts declare `sh`, `ps`, and `py` commands in
|
|
69
|
+
`scripts:` frontmatter; template processing replaces `{SCRIPT}` with the
|
|
70
|
+
selected variant. `py` is opt-in; non-interactive init defaults to `sh` on
|
|
71
|
+
POSIX or `ps` on Windows. Maintain equivalent stdout behavior across all three.
|
|
72
|
+
Bundled extension commands do not yet use this core-template script routing.
|
|
73
|
+
`__AGENT__` and command references are resolved during rendering, not by
|
|
74
|
+
adding per-agent wrapper scripts.
|
|
75
|
+
|
|
76
|
+
## Ownership and lifecycle
|
|
77
|
+
|
|
78
|
+
An installation records its files and SHA-256 hashes in
|
|
79
|
+
`.specify/integrations/<key>.manifest.json`. Custom `setup()` code must track
|
|
80
|
+
files it creates via the manifest (`record_file()` or the base class's
|
|
81
|
+
write-and-record helpers). Do not track a pre-existing user file merely because
|
|
82
|
+
you merged settings into it: unchanged tracked files are deleted on uninstall.
|
|
83
|
+
`teardown()` preserves modified tracked files by default; `--force` can remove
|
|
84
|
+
them. Keep agent-specific settings and events consistent with that lifecycle.
|
|
85
|
+
|
|
86
|
+
The integration does **not** own agent context files such as `AGENTS.md` or
|
|
87
|
+
`CLAUDE.md`. The opt-in `extensions/agent-context/` owns their defaults,
|
|
88
|
+
configuration, and managed sections; do not add `context_file` fields or
|
|
89
|
+
context-file handling to the CLI. `specify init` does not enable the extension
|
|
90
|
+
implicitly. Extensions and presets register command or skill overrides for the
|
|
91
|
+
current default integration, not every installed integration.
|
|
92
|
+
|
|
93
|
+
## Adding an agent
|
|
94
|
+
|
|
95
|
+
1. Run `specify integration scaffold my-agent --type markdown` from this
|
|
96
|
+
repository (`toml`, `yaml`, and `skills` are also supported), or start with
|
|
97
|
+
a custom class only when necessary.
|
|
98
|
+
2. Review the generated `config` and `registrar_config`; register the class
|
|
99
|
+
alphabetically and add a matching entry to `integrations/catalog.json`.
|
|
100
|
+
3. Add focused coverage in `tests/integrations/test_integration_<package_dir>.py`
|
|
101
|
+
for metadata, generated output, installation, and uninstall (including
|
|
102
|
+
preservation of edited files where applicable).
|
|
103
|
+
4. Exercise `specify init my-project --integration <key>` and the install/uninstall
|
|
104
|
+
lifecycle; update the [supported agents](../docs/reference/integrations.md)
|
|
105
|
+
and devcontainer setup if the agent needs additional tooling.
|
|
106
|
+
|
|
107
|
+
The scaffold creates a package and test skeleton, **not** registry or catalog
|
|
108
|
+
entries. Prefer existing bases and shared processing over copied setup loops.
|