deviatdd 2.5.1__tar.gz → 2.5.3__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.
- {deviatdd-2.5.1 → deviatdd-2.5.3}/CHANGELOG.md +28 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/PKG-INFO +38 -3
- {deviatdd-2.5.1 → deviatdd-2.5.3}/README.md +37 -2
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pyproject.toml +2 -2
- deviatdd-2.5.3/src/deviate/__init__.py +10 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/__init__.py +6 -2
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_init.py +29 -2
- {deviatdd-2.5.1 → deviatdd-2.5.3}/uv.lock +1 -1
- deviatdd-2.5.1/src/deviate/__init__.py +0 -3
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.deviate/.gitignore +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.deviate/config.toml +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.deviate/evaluations/deviate-flows-skill-2026-06-26.json +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.env.example +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.gitattributes +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.githooks/pre-commit +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.githooks/pre-push +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.github/ISSUE_TEMPLATE/bug.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.github/workflows/ci.yml +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.gitignore +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.opencode/.gitignore +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/.opencode/opencode.json +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/AGENTS.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/CLAUDE.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/CODE_OF_CONDUCT.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/CONTRIBUTING.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/LICENSE +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/SECURITY.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/deviatdd.png +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/mise.toml +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat/001-deviate-cli-python/008-meso-macro-automated-orchestration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat/adhoc/006-context-cli-integration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-001-deviate-cli-python-001-cli-initialization-governance-provisioning-pr-11.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-001-deviate-cli-python-003-meso-layer-specification-task-decomposition.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-001-deviate-cli-python-004-micro-layer-tdd-sandbox-execution.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-001-deviate-cli-python-005-cli-architecture-realignment-skill-integration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-001-deviate-cli-python-007-macro-meso-parity-backward-compatibility.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-002-deviatdd-gap-analysis-001-foundation-cli-infrastructure.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-002-deviatdd-gap-analysis-003-fast-path-commands.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-002-deviatdd-gap-analysis-004-governance-inspection.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-adhoc-001-streaming-pipeline-monitor.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-adhoc-008-ast-phase-prioritization.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat_002-deviatdd-gap-analysis_001-foundation-cli-infrastructure.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/001-cli-initialization-governance-provisioning/manifest-t001.json +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/001-cli-initialization-governance-provisioning/manifest-t002.json +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/001-cli-initialization-governance-provisioning/manifest-t004.json +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/001-cli-initialization-governance-provisioning/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/001-cli-initialization-governance-provisioning/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/002-macro-layer-state-ledger-management/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/002-macro-layer-state-ledger-management/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/003-meso-layer-specification-task-decomposition/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/003-meso-layer-specification-task-decomposition/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/004-micro-layer-tdd-sandbox-execution/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/004-micro-layer-tdd-sandbox-execution/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/004-micro-layer-tdd-sandbox-execution/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/005-cli-architecture-realignment-skill-integration/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/005-cli-architecture-realignment-skill-integration/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/007-macro-meso-parity-backward-compatibility/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/007-macro-meso-parity-backward-compatibility/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/008-meso-macro-automated-orchestration/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/008-meso-macro-automated-orchestration/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/008-meso-macro-automated-orchestration/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/data-model.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/design.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/explore.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/001-cli-initialization-governance-provisioning.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/002-macro-layer-state-ledger-management.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/003-meso-layer-specification-task-decomposition.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/004-micro-layer-tdd-sandbox-execution.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/005-cli-architecture-realignment-skill-integration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/006-state-persistence-concurrency-safety.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/007-macro-meso-parity-backward-compatibility.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/issues/008-meso-macro-automated-orchestration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/001-deviate-cli-python/prd.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/001-foundation-cli-infrastructure/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/001-foundation-cli-infrastructure/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/001-foundation-cli-infrastructure/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/003-fast-path-commands/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/003-fast-path-commands/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/003-fast-path-commands/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/004-governance-inspection/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/004-governance-inspection/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/004-governance-inspection/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/005-micro-layer-integrity/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/005-micro-layer-integrity/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/005-micro-layer-integrity/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/data-model.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/design.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/explore.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/001-foundation-cli-infrastructure.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/002-context-pipeline.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/003-fast-path-commands.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/004-governance-inspection.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/005-micro-layer-integrity.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/plan-tdd-integration-gap.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/prd.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/003-graphite-cli-integration/explore.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/DeviaTDD-api.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/DeviaTDD-architecture.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/_product/flows/flows-product.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/_product/flows/index.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/001-streaming-pipeline-monitor/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/001-streaming-pipeline-monitor/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/001-streaming-pipeline-monitor/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/003-meso-layer-restructuring/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/003-meso-layer-restructuring/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/003-meso-layer-restructuring/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/004-deviate-review-skill/spec.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/004-deviate-review-skill/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/004-deviate-review-skill/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/005-per-phase-model-configuration/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/005-per-phase-model-configuration/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/005-per-phase-model-configuration/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/006-context-cli-integration/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/006-context-cli-integration/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/006-context-cli-integration/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/007-graphite-cli/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/007-graphite-cli/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/007-graphite-cli/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/008-ast-phase-prioritization/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/008-ast-phase-prioritization/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/008-ast-phase-prioritization/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/009-pi-agent-backend-integration/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/009-pi-agent-backend-integration/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/009-pi-agent-backend-integration/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/010-deviate-setup-product-layer/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/010-deviate-setup-product-layer/tasks.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/010-deviate-setup-product-layer/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/001-streaming-pipeline-monitor.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/002-aider-agent-backend-integration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/003-meso-layer-restructuring.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/004-deviate-review-skill.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/005-per-phase-model-configuration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/006-context-cli-integration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/007-graphite-cli.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/008-ast-phase-prioritization.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/009-pi-agent-backend-integration.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/issues/010-deviate-setup-product-layer.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/adhoc/prd.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/constitution.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/explore/ast-tree-sitter.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/explore/graphite-cli.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/explore/pi-agent-backend.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/explore/product-layer.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/implementation-gap.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/specs/issues.jsonl +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/_common.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/adhoc.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/constitution.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/feature.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/init.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/inspect.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/macro.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/meso.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/micro.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/cli/review.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/_shared.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/agent.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/cache_discipline.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/commands.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/commit.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/complexity.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/constitution.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/contract.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/convention.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/epic.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/issues.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/prd.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/profile.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/repo.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/run_logger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/tasks_ledger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/analysis.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/models.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/parser.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/bash.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/c_sharp.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/cpp.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/css.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/dockerfile.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/elixir.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/go.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/hcl.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/html.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/javascript.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/json.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/kotlin.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/markdown.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/python.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/rust.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/sql.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/swift.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/toml.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/tsx.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/typescript.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/treesitter/queries/yaml.scm +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/validation.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/core/worktree.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/main.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/assembly.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/execute.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/explore.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/green.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/judge.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/prd.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/red.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/refactor.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/research.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/shard.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/specify.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/auto/tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-adhoc.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-architecture.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-constitution.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-e2e.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-execute.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-explore.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-flows.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-green.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-hotfix.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-init.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-judge.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-merge.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-plan.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-pr.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-prd.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-prune.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-red.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-refactor.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-release.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-research.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-review.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-shard.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-tasks.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/commands/deviate-triage.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/constitution_seed.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/core.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/macro-auto.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/macro-command.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/macro-skill.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/meso-auto.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/meso-command.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/meso-skill.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/micro-auto.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/micro-command.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/core/micro-skill.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/extras/deviate-pr-graphite-routing.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/governance/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/governance/agents_seed.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/governance/claudemd_seed.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/governance/graphite_seed.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/prompts/governance/libref_seed.md +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/state/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/state/config.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/state/ledger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/ui/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/ui/monitor.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/src/deviate/ui/render.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/conftest.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/core/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/core/test_agent.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/core/test_treesitter.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/e2e/test_macro_workflow.bats +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_adhoc.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_common.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_constitution.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_feature.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_inspect.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_macro_contracts.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_meso.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_meso_contracts.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_micro.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_cli/test_review.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_agent.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_cache_discipline.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_commands.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_commit.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_complexity.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_constitution.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_contract.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_convention.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_epic.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_issues.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_ledger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_prd.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_profile.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_repo.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_tasks_ledger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_validation.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_core/test_worktree.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/conftest.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_command_installation.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_init_export_cycle.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_macro_full_cycle.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_macro_layer.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_macro_orchestration.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_meso_layer.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_meso_orchestration.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_meso_task_ledger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_parity.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_integration/test_skill_installation.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/test_explore.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/test_macro_model_routing.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/test_macro_orchestration.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/test_prd.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/test_research.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_macro/test_shard.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_auto_prompt_templates.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_meso_model_routing.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_meso_orchestration.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_plan_structure_injection.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_prompt_assembly.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_specify.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_meso/test_tasks.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/conftest.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_e2e.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_execute.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_green.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_hotfix.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_judge.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_orchestration.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_output_filter.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_red.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_refactor.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_run.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_micro/test_task_label.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_state/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_state/test_config.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_state/test_ledger.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_state/test_session.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_ui/__init__.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_ui/test_monitor.py +0 -0
- {deviatdd-2.5.1 → deviatdd-2.5.3}/tests/test_ui/test_render.py +0 -0
|
@@ -28,6 +28,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
28
28
|
on the process command line — no exposure in `ps aux`,
|
|
29
29
|
`/proc/<pid>/cmdline`, audit logs, or shell history. `uv publish` reads
|
|
30
30
|
`UV_PUBLISH_TOKEN` natively.
|
|
31
|
+
- README: PyPI version badge in the badge row; one-line `deviate --version`
|
|
32
|
+
verification step in Quickstart (right after `uv tool install deviatdd`);
|
|
33
|
+
new `## Troubleshooting` section covering the five most common first-run
|
|
34
|
+
failures (no `uv`, CLI binary confusion, slash commands not appearing,
|
|
35
|
+
missing PyPI token, missing agent backend), each with a one-paragraph
|
|
36
|
+
fix and a link back to the canonical docs (`CONTRIBUTING.md`,
|
|
37
|
+
`specs/constitution.md`).
|
|
38
|
+
|
|
39
|
+
- README: Quickstart wording updated — "four agent directories" → "all
|
|
40
|
+
supported agent directories" to track the six backends listed in the
|
|
41
|
+
install comment.
|
|
42
|
+
|
|
31
43
|
|
|
32
44
|
|
|
33
45
|
- `format_commit_message()` and `_commit_phase()` accept an optional `phase`
|
|
@@ -37,6 +49,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
37
49
|
test is visible at a glance; `feat:` commits continue to use ✨
|
|
38
50
|
regardless of phase.
|
|
39
51
|
|
|
52
|
+
### Fixed
|
|
53
|
+
- `deviate --version` (and any code path importing `deviate.__version__`)
|
|
54
|
+
raised `importlib.metadata.PackageNotFoundError: No package metadata was
|
|
55
|
+
found for deviate` at import time. The two call sites in
|
|
56
|
+
`src/deviate/__init__.py` and `src/deviate/cli/__init__.py` queried
|
|
57
|
+
metadata for the import name `"deviate"` instead of the distribution
|
|
58
|
+
name `"deviatdd"` declared in `pyproject.toml`. Both now query
|
|
59
|
+
`"deviatdd"` and additionally fall back to a `"0.0.0+unknown"` sentinel
|
|
60
|
+
(so source checkouts without a dist-info still import). The
|
|
61
|
+
`test_version` test was tautological (asserted against the same broken
|
|
62
|
+
`version("deviate")` call it was meant to guard); it now asserts
|
|
63
|
+
`deviate --version` stdout equals the real
|
|
64
|
+
`importlib.metadata.version("deviatdd")`, and a new
|
|
65
|
+
`test_module_version_resolves` import-time guard fails loudly if the
|
|
66
|
+
module-level lookup regresses.
|
|
67
|
+
|
|
40
68
|
### Changed
|
|
41
69
|
- **Shard prompts now own all vertical-slicing rules**; the PRD prompt's
|
|
42
70
|
§Issue Sharding Strategy was removed to eliminate drift between the two.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deviatdd
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.3
|
|
4
4
|
Summary: DeviaTDD CLI — agent orchestration framework
|
|
5
5
|
Project-URL: Homepage, https://github.com/wernerbisschoff/deviatdd
|
|
6
6
|
Project-URL: Repository, https://github.com/wernerbisschoff/deviatdd
|
|
@@ -60,6 +60,7 @@ Description-Content-Type: text/markdown
|
|
|
60
60
|
[](LICENSE)
|
|
61
61
|
[](https://www.python.org/downloads/)
|
|
62
62
|
[](https://docs.astral.sh/uv/)
|
|
63
|
+
[](https://pypi.org/project/deviatdd/)
|
|
63
64
|
|
|
64
65
|
# DeviaTDD
|
|
65
66
|
|
|
@@ -87,17 +88,18 @@ Most AI coding agents stop at "write code that passes." DeviaTDD goes further
|
|
|
87
88
|
## Quickstart
|
|
88
89
|
|
|
89
90
|
```bash
|
|
90
|
-
# Install (requires Python 3.13+ and uv)
|
|
91
|
+
# Install (requires Python 3.13+ and uv).
|
|
91
92
|
# The PyPI package is `deviatdd`; the CLI binary it installs is `deviate`.
|
|
92
93
|
|
|
93
94
|
uv tool install deviatdd
|
|
95
|
+
deviate --version # confirm install
|
|
94
96
|
|
|
95
97
|
# Bootstrap a new project + install slash commands into your agent of
|
|
96
98
|
# choice. Does it all in one shot: scaffolds .deviate/, specs/constitution.md,
|
|
97
99
|
# governance blocks, and installs /deviate-* slash commands for every
|
|
98
100
|
# supported agent. The --agent flag picks the default backend persisted
|
|
99
101
|
# to .deviate/config.toml (slash commands themselves are installed to all
|
|
100
|
-
#
|
|
102
|
+
# supported agent directories regardless).
|
|
101
103
|
deviate setup --agent claude # or: opencode | pi | droid | factory | omp
|
|
102
104
|
```
|
|
103
105
|
|
|
@@ -381,6 +383,39 @@ Claims in this README flagged with an italic _design proposal_ note have **no di
|
|
|
381
383
|
|
|
382
384
|
---
|
|
383
385
|
|
|
386
|
+
## Troubleshooting
|
|
387
|
+
|
|
388
|
+
**`uv: command not found`** — Install [uv](https://docs.astral.sh/uv/) first
|
|
389
|
+
(it's the project's mandated package manager per
|
|
390
|
+
[`specs/constitution.md`](specs/constitution.md)). macOS / Linux:
|
|
391
|
+
`curl -LsSf https://astral.sh/uv/install.sh | sh`.
|
|
392
|
+
|
|
393
|
+
**`deviate: command not found` after `uv tool install deviatdd`** — Verify
|
|
394
|
+
the install landed: `uv tool list | grep deviatdd`. Reinstall if missing:
|
|
395
|
+
`uv tool install --reinstall deviatdd`. The PyPI package name and the CLI
|
|
396
|
+
binary name differ — that's intentional (see [Quickstart](#quickstart)).
|
|
397
|
+
|
|
398
|
+
**`deviate setup` runs but `/deviate-*` commands don't appear in the
|
|
399
|
+
agent** — Slash commands are installed to `<workdir>/.claude/commands/`,
|
|
400
|
+
`.opencode/commands/`, `.omp/commands/`, `.factory/commands/`, and
|
|
401
|
+
`.pi/prompts/`. Verify the directory exists and is readable, then restart
|
|
402
|
+
the agent so it picks up the new commands.
|
|
403
|
+
|
|
404
|
+
**`mise run publish` fails with `PYPI_API_TOKEN is not set`** — The task
|
|
405
|
+
loads `.env` from the project root. `.env` must contain
|
|
406
|
+
`PYPI_API_TOKEN=pypi-...`. `.env.example` documents the variable name;
|
|
407
|
+
`.env` itself is gitignored.
|
|
408
|
+
|
|
409
|
+
**Agent backend not installed** — `deviate setup --agent <name>` scaffolds
|
|
410
|
+
the project without the agent present, but invoking `/deviate-*` slash
|
|
411
|
+
commands requires the agent to be installed. Install Claude Code / OpenCode
|
|
412
|
+
/ Pi / Droid / Factory / OMP first per their respective install
|
|
413
|
+
instructions.
|
|
414
|
+
|
|
415
|
+
For development-setup details, see
|
|
416
|
+
[`CONTRIBUTING.md`](CONTRIBUTING.md#development-setup) and
|
|
417
|
+
[`specs/constitution.md`](specs/constitution.md).
|
|
418
|
+
|
|
384
419
|
## License
|
|
385
420
|
|
|
386
421
|
[MIT](LICENSE) © 2026 Werner Bisschoff
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://www.python.org/downloads/)
|
|
8
8
|
[](https://docs.astral.sh/uv/)
|
|
9
|
+
[](https://pypi.org/project/deviatdd/)
|
|
9
10
|
|
|
10
11
|
# DeviaTDD
|
|
11
12
|
|
|
@@ -33,17 +34,18 @@ Most AI coding agents stop at "write code that passes." DeviaTDD goes further
|
|
|
33
34
|
## Quickstart
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
|
-
# Install (requires Python 3.13+ and uv)
|
|
37
|
+
# Install (requires Python 3.13+ and uv).
|
|
37
38
|
# The PyPI package is `deviatdd`; the CLI binary it installs is `deviate`.
|
|
38
39
|
|
|
39
40
|
uv tool install deviatdd
|
|
41
|
+
deviate --version # confirm install
|
|
40
42
|
|
|
41
43
|
# Bootstrap a new project + install slash commands into your agent of
|
|
42
44
|
# choice. Does it all in one shot: scaffolds .deviate/, specs/constitution.md,
|
|
43
45
|
# governance blocks, and installs /deviate-* slash commands for every
|
|
44
46
|
# supported agent. The --agent flag picks the default backend persisted
|
|
45
47
|
# to .deviate/config.toml (slash commands themselves are installed to all
|
|
46
|
-
#
|
|
48
|
+
# supported agent directories regardless).
|
|
47
49
|
deviate setup --agent claude # or: opencode | pi | droid | factory | omp
|
|
48
50
|
```
|
|
49
51
|
|
|
@@ -327,6 +329,39 @@ Claims in this README flagged with an italic _design proposal_ note have **no di
|
|
|
327
329
|
|
|
328
330
|
---
|
|
329
331
|
|
|
332
|
+
## Troubleshooting
|
|
333
|
+
|
|
334
|
+
**`uv: command not found`** — Install [uv](https://docs.astral.sh/uv/) first
|
|
335
|
+
(it's the project's mandated package manager per
|
|
336
|
+
[`specs/constitution.md`](specs/constitution.md)). macOS / Linux:
|
|
337
|
+
`curl -LsSf https://astral.sh/uv/install.sh | sh`.
|
|
338
|
+
|
|
339
|
+
**`deviate: command not found` after `uv tool install deviatdd`** — Verify
|
|
340
|
+
the install landed: `uv tool list | grep deviatdd`. Reinstall if missing:
|
|
341
|
+
`uv tool install --reinstall deviatdd`. The PyPI package name and the CLI
|
|
342
|
+
binary name differ — that's intentional (see [Quickstart](#quickstart)).
|
|
343
|
+
|
|
344
|
+
**`deviate setup` runs but `/deviate-*` commands don't appear in the
|
|
345
|
+
agent** — Slash commands are installed to `<workdir>/.claude/commands/`,
|
|
346
|
+
`.opencode/commands/`, `.omp/commands/`, `.factory/commands/`, and
|
|
347
|
+
`.pi/prompts/`. Verify the directory exists and is readable, then restart
|
|
348
|
+
the agent so it picks up the new commands.
|
|
349
|
+
|
|
350
|
+
**`mise run publish` fails with `PYPI_API_TOKEN is not set`** — The task
|
|
351
|
+
loads `.env` from the project root. `.env` must contain
|
|
352
|
+
`PYPI_API_TOKEN=pypi-...`. `.env.example` documents the variable name;
|
|
353
|
+
`.env` itself is gitignored.
|
|
354
|
+
|
|
355
|
+
**Agent backend not installed** — `deviate setup --agent <name>` scaffolds
|
|
356
|
+
the project without the agent present, but invoking `/deviate-*` slash
|
|
357
|
+
commands requires the agent to be installed. Install Claude Code / OpenCode
|
|
358
|
+
/ Pi / Droid / Factory / OMP first per their respective install
|
|
359
|
+
instructions.
|
|
360
|
+
|
|
361
|
+
For development-setup details, see
|
|
362
|
+
[`CONTRIBUTING.md`](CONTRIBUTING.md#development-setup) and
|
|
363
|
+
[`specs/constitution.md`](specs/constitution.md).
|
|
364
|
+
|
|
330
365
|
## License
|
|
331
366
|
|
|
332
367
|
[MIT](LICENSE) © 2026 Werner Bisschoff
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "deviatdd"
|
|
3
|
-
version = "2.5.
|
|
3
|
+
version = "2.5.3"
|
|
4
4
|
description = "DeviaTDD CLI — agent orchestration framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -90,4 +90,4 @@ dev = [
|
|
|
90
90
|
"pytest-testmon>=2.2.0",
|
|
91
91
|
"ruff>=0.15.16",
|
|
92
92
|
"typer>=0.26.7",
|
|
93
|
-
]
|
|
93
|
+
]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from importlib.metadata import PackageNotFoundError, version as _version
|
|
2
|
+
|
|
3
|
+
try:
|
|
4
|
+
__version__ = _version("deviatdd")
|
|
5
|
+
except PackageNotFoundError:
|
|
6
|
+
# Source checkouts without an editable install (e.g. running the module
|
|
7
|
+
# directly from a git clone) have no dist-info. Fall back to a sentinel
|
|
8
|
+
# so the CLI still imports; downstream code can detect it via the
|
|
9
|
+
# "+unknown" suffix.
|
|
10
|
+
__version__ = "0.0.0+unknown"
|
|
@@ -59,9 +59,13 @@ AGENT_CHOICES: tuple[str, ...] = ("factory", "droid", "claude", "opencode", "pi"
|
|
|
59
59
|
|
|
60
60
|
def _version_callback(value: bool) -> None:
|
|
61
61
|
if value:
|
|
62
|
-
from importlib.metadata import version
|
|
62
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
try:
|
|
65
|
+
ver = version("deviatdd")
|
|
66
|
+
except PackageNotFoundError:
|
|
67
|
+
ver = "0.0.0+unknown"
|
|
68
|
+
typer.echo(f"deviate {ver}")
|
|
65
69
|
raise typer.Exit()
|
|
66
70
|
|
|
67
71
|
|
|
@@ -1217,9 +1217,36 @@ class TestInitPiBackend:
|
|
|
1217
1217
|
)
|
|
1218
1218
|
|
|
1219
1219
|
|
|
1220
|
+
def test_module_version_resolves():
|
|
1221
|
+
"""Import-time guard: deviate.__version__ must not raise PackageNotFoundError.
|
|
1222
|
+
|
|
1223
|
+
Regression: src/deviate/__init__.py previously called
|
|
1224
|
+
version("deviate") (the import name) instead of "deviatdd" (the
|
|
1225
|
+
distribution name in pyproject.toml), so importing the package failed
|
|
1226
|
+
with PackageNotFoundError and the entire CLI was unreachable.
|
|
1227
|
+
"""
|
|
1228
|
+
import importlib
|
|
1229
|
+
|
|
1230
|
+
import deviate
|
|
1231
|
+
|
|
1232
|
+
importlib.reload(deviate) # force re-evaluation of the module-level call
|
|
1233
|
+
assert deviate.__version__, "deviate.__version__ must be a non-empty string"
|
|
1234
|
+
assert "+unknown" not in deviate.__version__, (
|
|
1235
|
+
f"deviate.__version__ is the missing-metadata fallback: {deviate.__version__!r}. "
|
|
1236
|
+
"Check that the deviatdd distribution is installed (e.g. "
|
|
1237
|
+
"`uv tool install --force .`)."
|
|
1238
|
+
)
|
|
1239
|
+
|
|
1240
|
+
|
|
1220
1241
|
def test_version():
|
|
1242
|
+
"""`deviate --version` prints the installed distribution version.
|
|
1243
|
+
|
|
1244
|
+
Asserts the CLI output matches `importlib.metadata.version("deviatdd")`
|
|
1245
|
+
directly — re-deriving the expected string via the same broken lookup
|
|
1246
|
+
would let a regression slip through.
|
|
1247
|
+
"""
|
|
1221
1248
|
from importlib.metadata import version
|
|
1222
1249
|
|
|
1223
1250
|
result = runner.invoke(cli, ["--version"])
|
|
1224
|
-
assert result.exit_code == 0
|
|
1225
|
-
assert result.stdout.strip() == f"deviate {version('
|
|
1251
|
+
assert result.exit_code == 0, result.output
|
|
1252
|
+
assert result.stdout.strip() == f"deviate {version('deviatdd')}"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-adhoc-001-streaming-pipeline-monitor.md
RENAMED
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/pr_descriptions/feat-adhoc-008-ast-phase-prioritization.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/003-fast-path-commands/spec.md
RENAMED
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/003-fast-path-commands/tasks.jsonl
RENAMED
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/003-fast-path-commands/tasks.md
RENAMED
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/004-governance-inspection/spec.md
RENAMED
|
File without changes
|
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/004-governance-inspection/tasks.md
RENAMED
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/005-micro-layer-integrity/spec.md
RENAMED
|
File without changes
|
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/005-micro-layer-integrity/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/002-context-pipeline.md
RENAMED
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/issues/003-fast-path-commands.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deviatdd-2.5.1 → deviatdd-2.5.3}/specs/002-deviatdd-gap-analysis/plan-tdd-integration-gap.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|