devflow-cli 3.0.1__tar.gz → 4.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.idea/workspace.xml +30 -31
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/CHANGELOG.md +28 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/CLAUDE.md +1 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/PKG-INFO +18 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/README.md +17 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/activity-contracts.md +19 -5
- devflow_cli-4.0.2/docs/adr/0001-v4-workflow-compatibility.md +49 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/cli-reference.md +1 -0
- devflow_cli-4.0.2/docs/pipeline-reference.generated.md +31 -0
- devflow_cli-4.0.2/docs/pipeline.md +46 -0
- devflow_cli-4.0.2/docs/releases/4.0.0.md +53 -0
- devflow_cli-4.0.2/docs/releases/4.0.1.md +17 -0
- devflow_cli-4.0.2/docs/v4-migration.md +53 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/pyproject.toml +1 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/__init__.py +3 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/adapters/agents.py +108 -17
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/adaptive.py +83 -2
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/assess.py +1 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/activity_contracts.py +68 -15
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/adaptive_runner.py +19 -5
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/adaptive_workflow.py +22 -6
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/assessment.py +17 -4
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/automatic_evidence.py +32 -5
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/contract_schemas.py +28 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/docgen.py +3 -3
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/operational.py +1 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/remediation.py +1 -0
- devflow_cli-4.0.2/src/devflow_cli/core/v4_migration.py +134 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/worklog.py +18 -0
- devflow_cli-4.0.2/src/devflow_cli/schemas/activity-contract-v2.schema.json +32 -0
- devflow_cli-4.0.2/src/devflow_cli/schemas/assessment-v2.schema.json +36 -0
- devflow_cli-4.0.2/src/devflow_cli/schemas/workflow-state-v3.schema.json +36 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_activity_contracts.py +29 -3
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_adaptive_runner.py +17 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_agent_adapters.py +67 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_automatic_evidence.py +8 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_adaptive.py +150 -22
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_assess.py +2 -1
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_contract_schemas.py +19 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_docgen.py +2 -2
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_integration.py +11 -6
- devflow_cli-4.0.2/tests/test_v4_migration.py +162 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_wheel_adaptive_acceptance.py +21 -4
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_wheel_install.py +3 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_worklog.py +19 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/uv.lock +1 -1
- devflow_cli-3.0.1/docs/pipeline-reference.generated.md +0 -30
- devflow_cli-3.0.1/docs/pipeline.md +0 -28
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.ai/mcp/mcp.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.analyze.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.checklist.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.clarify.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.constitution.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.implement.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.specify.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.claude/commands/speckit.taskstoissues.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.githooks/post-checkout +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.githooks/post-merge +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.github/workflows/ci.yml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.github/workflows/release.yml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.gitignore +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.idea/.gitignore +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.idea/devflow.iml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.idea/misc.xml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.idea/modules.xml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.idea/vcs.xml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/init-options.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/memory/constitution.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/scripts/bash/common.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/scripts/bash/setup-plan.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/001-cli-init-options/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/002-cascade-regen/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/003-usecase-guides/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/005-implement-subphases/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/005-implement-subphases/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/005-implement-subphases/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/005-implement-subphases/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/006-template-upgrade/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/007-project-documentation/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/008-hardening-bugs/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/008-hardening-bugs/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/008-hardening-bugs/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/009-ci-pypi/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/009-ci-pypi/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/009-ci-pypi/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/009-ci-pypi/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/010-flexible-pipeline/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/011-cursor-support/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/011-cursor-support/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/011-cursor-support/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/011-cursor-support/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/011-cursor-support/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/013-align-truth-sources/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/013-align-truth-sources/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/016-harden-state-machine/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/016-harden-state-machine/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/016-harden-state-machine/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/019-quality-hardening/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/019-quality-hardening/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/019-quality-hardening/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/019-quality-hardening/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/019-quality-hardening/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/021-review-iterations/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/021-review-iterations/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/021-review-iterations/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/021-review-iterations/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/022-fix-regen-command/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/022-fix-regen-command/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/022-fix-regen-command/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/023-add-logging/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/023-add-logging/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/023-add-logging/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/023-add-logging/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/024-validate-constants/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/024-validate-constants/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/024-validate-constants/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/024-validate-constants/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/025-harden-tests/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/025-harden-tests/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/025-harden-tests/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/025-harden-tests/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/agent-file-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/checklist-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/constitution-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/plan-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/spec-template-brownfield.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/spec-template-greenfield.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/spec-template-microservices.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/spec-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/.specify/templates/tasks-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/CONTRIBUTING.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/LICENSE +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/commands/devflow.context.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/commands/devflow.extension.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/commands/devflow.init.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/commands/devflow.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/commands/devflow.regen.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/commands/devflow.status.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/commands-reference.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/cursor-guide.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/guides/brownfield.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/guides/greenfield.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/guides/microservices.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/index.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/docs/spec-driven.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/extensions/catalog.community.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/extensions/catalog.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/extensions/template/example-command.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/extensions/template/example-extension.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/adapters/__init__.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/adapters/linear.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/cli.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/__init__.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/check.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/context.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/docs_sync.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/export_cmd.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/extension.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/feature.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/hooks_cmd.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/init_cmd.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/linear.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/migrate_cmd.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/stale.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/status.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/traceability.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/upgrade_cmd.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/commands/verify.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/__init__.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/catalog.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/git.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/hooks.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/installer.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/manifest.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/redaction.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/scanner.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/staleness.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/traceability.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/validators.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/verification.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/waivers.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/core/worktree_snapshot.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/schemas/activity-contract-v1.schema.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/schemas/activity-result-v1.schema.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/schemas/assessment-v1.schema.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/schemas/workflow-state-v2.schema.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/utils/__init__.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/utils/console.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/utils/logging.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/utils/paths.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/src/devflow_cli/utils/strings.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/agent-context-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/constitution-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/contracts/README-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/contracts/api-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/contracts/components-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/contracts/interfaces-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/contracts/services-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/contracts-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/data-model-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/devflow-hooks-template.yml +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/extension-manifest-template.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/plan-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/quickstart-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/research-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/spec-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/templates/tasks-template.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/conftest.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/fixtures/agents/mock-agent.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/fixtures/commands/mock-command.md +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/fixtures/mock-catalog.json +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/run-tests.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test-helpers.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test-template-variants.sh +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_adaptive_workflow.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_assessment.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_bash_runner.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_catalog.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_check.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_context.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_docs_sync.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_extension.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_feature.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_hooks.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_init.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_linear.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_migrate.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_stale.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_status.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_traceability.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_upgrade.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_cmd_verify.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_constants.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_context.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_git.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_hooks.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_installer.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_linear_adapter.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_linear_order.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_logging.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_manifest.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_paths.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_paths_project_root.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_scanner.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_staleness.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_traceability.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_validators.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_verification.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_version.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_waivers.py +0 -0
- {devflow_cli-3.0.1 → devflow_cli-4.0.2}/tests/test_worktree_snapshot.py +0 -0
|
@@ -4,16 +4,14 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="4d5164b1-14ff-40b3-8f55-b6f2c3abff01" name="Changes" comment=""
|
|
8
|
-
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
9
|
-
</list>
|
|
7
|
+
<list default="true" id="4d5164b1-14ff-40b3-8f55-b6f2c3abff01" name="Changes" comment="" />
|
|
10
8
|
<option name="SHOW_DIALOG" value="false" />
|
|
11
9
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
12
10
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
13
11
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
14
12
|
</component>
|
|
15
13
|
<component name="EmbeddingIndexingInfo">
|
|
16
|
-
<option name="cachedIndexableFilesCount" value="
|
|
14
|
+
<option name="cachedIndexableFilesCount" value="1731" />
|
|
17
15
|
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
|
|
18
16
|
</component>
|
|
19
17
|
<component name="Git.Settings">
|
|
@@ -196,34 +194,34 @@
|
|
|
196
194
|
<option name="hideEmptyMiddlePackages" value="true" />
|
|
197
195
|
<option name="showLibraryContents" value="true" />
|
|
198
196
|
</component>
|
|
199
|
-
<component name="PropertiesComponent"
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
197
|
+
<component name="PropertiesComponent">{
|
|
198
|
+
"keyToString": {
|
|
199
|
+
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
|
200
|
+
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
|
201
|
+
"RunOnceActivity.MCP Project settings loaded": "true",
|
|
202
|
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
203
|
+
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
|
204
|
+
"RunOnceActivity.git.unshallow": "true",
|
|
205
|
+
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
|
206
|
+
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
|
207
|
+
"codeWithMe.voiceChat.enabledByDefault": "false",
|
|
208
|
+
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
|
|
209
|
+
"dart.analysis.tool.window.visible": "false",
|
|
210
|
+
"git-widget-placeholder": "main",
|
|
211
|
+
"junie.onboarding.icon.badge.shown": "true",
|
|
212
|
+
"kotlin-language-version-configured": "true",
|
|
213
|
+
"last_opened_file_path": "/Users/kellysossoe/Code/Apps/devflow",
|
|
214
|
+
"node.js.detected.package.eslint": "true",
|
|
215
|
+
"node.js.detected.package.tslint": "true",
|
|
216
|
+
"node.js.selected.package.eslint": "(autodetect)",
|
|
217
|
+
"node.js.selected.package.tslint": "(autodetect)",
|
|
218
|
+
"nodejs_package_manager_path": "npm",
|
|
219
|
+
"settings.editor.selected.configurable": "settings.sync",
|
|
220
|
+
"show.migrate.to.gradle.popup": "false",
|
|
221
|
+
"to.speed.mode.migration.done": "true",
|
|
222
|
+
"vue.rearranger.settings.migration": "true"
|
|
225
223
|
}
|
|
226
|
-
}
|
|
224
|
+
}</component>
|
|
227
225
|
<component name="SharedIndexes">
|
|
228
226
|
<attachedChunks>
|
|
229
227
|
<set>
|
|
@@ -241,6 +239,7 @@
|
|
|
241
239
|
<updated>1786957258019</updated>
|
|
242
240
|
<workItem from="1786957259143" duration="1286000" />
|
|
243
241
|
<workItem from="1787262300781" duration="3274000" />
|
|
242
|
+
<workItem from="1787616969795" duration="2101000" />
|
|
244
243
|
</task>
|
|
245
244
|
<servers />
|
|
246
245
|
</component>
|
|
@@ -5,6 +5,34 @@ Tous les changements notables de ce projet sont documentés dans ce fichier.
|
|
|
5
5
|
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
|
|
6
6
|
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
7
7
|
|
|
8
|
+
## [4.0.2] - 2026-08-27
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- La vérification V4 accepte les preuves de plan V1 conservées lors d'une migration V3 vers V4, sans réécrire les artefacts historiques.
|
|
13
|
+
- Une régression couvre la reprise d'un workflow critical migré avec un plan V1 et une implémentation V2.
|
|
14
|
+
|
|
15
|
+
## [4.0.1] - 2026-08-26
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Les échecs de clôture structurée Codex sont catégorisés sans exposer de contenu de dépôt ou de sortie.
|
|
20
|
+
- Les écritures observées sont tracées par indicateur et compteur dans l'audit et le worklog, sans relance automatique.
|
|
21
|
+
- La migration V3 → V4 est couverte pour les quatre profils, y compris une reprise critical avancée.
|
|
22
|
+
|
|
23
|
+
## [4.0.0] - 2026-08-26
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- Activité `preflight-evidence` dédiée avant toute implémentation, avec artefact unique, contrôle de fraîcheur et détection de secrets.
|
|
28
|
+
- Schémas publics `assessment` v2 et `workflow-state` v3, sans modification des schémas V3 publiés.
|
|
29
|
+
- Migration atomique et auditée via `devflow adaptive migrate`, avec dry-run et sauvegarde restaurable.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- Les quatre profils utilisent une route V4 explicite et transmettent la preuve de pré-vol à `implement`.
|
|
34
|
+
- La version du paquet et de la CLI passe à 4.0.0.
|
|
35
|
+
|
|
8
36
|
## [3.0.1] - 2026-08-25
|
|
9
37
|
|
|
10
38
|
### Fixed
|
|
@@ -5,7 +5,7 @@ politique passent par `assessment.json`; les transitions passent par la CLI et
|
|
|
5
5
|
ne doivent jamais être réalisées en éditant les fichiers d’état.
|
|
6
6
|
|
|
7
7
|
<!-- devflow:pipeline:start -->
|
|
8
|
-
Workflow adaptatif à quatre profils, sélectionné par `devflow assess` : quick: assess → implement → verify → done; standard: assess → prepare → implement → verify → done; deep: assess → spec → plan → tasks → implement → verify → review → done; critical: assess → risk-assessment → spec → research → contracts → plan → tasks → implement → verify → review → rollback-check → done. `assessment.json` porte la politique et `workflow-state.json` porte uniquement la progression et les preuves.
|
|
8
|
+
Workflow adaptatif à quatre profils, sélectionné par `devflow assess` : quick: assess → preflight-evidence → implement → verify → done; standard: assess → prepare → preflight-evidence → implement → verify → done; deep: assess → spec → plan → tasks → preflight-evidence → implement → verify → review → done; critical: assess → risk-assessment → spec → research → contracts → plan → tasks → preflight-evidence → implement → verify → review → rollback-check → done. `assessment.json` porte la politique et `workflow-state.json` porte uniquement la progression et les preuves.
|
|
9
9
|
<!-- devflow:pipeline:end -->
|
|
10
10
|
|
|
11
11
|
## Commandes de développement
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: devflow-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.2
|
|
4
4
|
Summary: Spec-Driven Development workflow CLI
|
|
5
5
|
Project-URL: Homepage, https://github.com/sopequenoteck/devflow
|
|
6
6
|
Project-URL: Repository, https://github.com/sopequenoteck/devflow
|
|
@@ -73,6 +73,10 @@ Chaque invocation de `adaptive run` traite une activité. La politique est dans
|
|
|
73
73
|
`workflow-state.json`. Les résultats agent sont validés par schéma et les
|
|
74
74
|
preuves d’exécution sensibles sont produites localement par Devflow.
|
|
75
75
|
|
|
76
|
+
En V4, chaque profil exécute `preflight-evidence` avant `implement`. Cette
|
|
77
|
+
activité archive des faits externes reproductibles dans
|
|
78
|
+
`preflight-evidence.md`, sans secret ni donnée utilisateur.
|
|
79
|
+
|
|
76
80
|
Les trois adaptateurs acceptent les mêmes contrats structurés :
|
|
77
81
|
|
|
78
82
|
```bash
|
|
@@ -83,6 +87,19 @@ devflow adaptive run KS-123 --agent cursor
|
|
|
83
87
|
|
|
84
88
|
## Migrer une ancienne feature
|
|
85
89
|
|
|
90
|
+
Pour un workflow adaptatif V3 déjà persisté :
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
devflow adaptive migrate KS-123 --dry-run
|
|
94
|
+
devflow adaptive migrate KS-123
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
La migration V4 traite ensemble `assessment.json` et `workflow-state.json`,
|
|
98
|
+
conserve une sauvegarde auditée et restaure le couple original en cas d'échec.
|
|
99
|
+
Voir [le guide V4](docs/v4-migration.md).
|
|
100
|
+
|
|
101
|
+
Pour une feature antérieure au moteur adaptatif :
|
|
102
|
+
|
|
86
103
|
```bash
|
|
87
104
|
devflow migrate KS-123 --dry-run
|
|
88
105
|
devflow migrate KS-123 --profile deep
|
|
@@ -45,6 +45,10 @@ Chaque invocation de `adaptive run` traite une activité. La politique est dans
|
|
|
45
45
|
`workflow-state.json`. Les résultats agent sont validés par schéma et les
|
|
46
46
|
preuves d’exécution sensibles sont produites localement par Devflow.
|
|
47
47
|
|
|
48
|
+
En V4, chaque profil exécute `preflight-evidence` avant `implement`. Cette
|
|
49
|
+
activité archive des faits externes reproductibles dans
|
|
50
|
+
`preflight-evidence.md`, sans secret ni donnée utilisateur.
|
|
51
|
+
|
|
48
52
|
Les trois adaptateurs acceptent les mêmes contrats structurés :
|
|
49
53
|
|
|
50
54
|
```bash
|
|
@@ -55,6 +59,19 @@ devflow adaptive run KS-123 --agent cursor
|
|
|
55
59
|
|
|
56
60
|
## Migrer une ancienne feature
|
|
57
61
|
|
|
62
|
+
Pour un workflow adaptatif V3 déjà persisté :
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
devflow adaptive migrate KS-123 --dry-run
|
|
66
|
+
devflow adaptive migrate KS-123
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
La migration V4 traite ensemble `assessment.json` et `workflow-state.json`,
|
|
70
|
+
conserve une sauvegarde auditée et restaure le couple original en cas d'échec.
|
|
71
|
+
Voir [le guide V4](docs/v4-migration.md).
|
|
72
|
+
|
|
73
|
+
Pour une feature antérieure au moteur adaptatif :
|
|
74
|
+
|
|
58
75
|
```bash
|
|
59
76
|
devflow migrate KS-123 --dry-run
|
|
60
77
|
devflow migrate KS-123 --profile deep
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
Les quatre frontières centrales sont décrites par des JSON Schemas Draft
|
|
6
6
|
2020-12 embarqués dans le wheel :
|
|
7
7
|
|
|
8
|
-
- `assessment-v1.schema.json` pour
|
|
9
|
-
- `workflow-state-
|
|
10
|
-
- `activity-contract-v1.schema.json` pour
|
|
11
|
-
l'
|
|
8
|
+
- `assessment-v1.schema.json` et `workflow-state-v2.schema.json` pour les workflows V3 conservés ;
|
|
9
|
+
- `assessment-v2.schema.json` et `workflow-state-v3.schema.json` pour les routes Devflow V4 ;
|
|
10
|
+
- `activity-contract-v1.schema.json` pour les activités V3 et
|
|
11
|
+
`activity-contract-v2.schema.json` pour l'instruction V4 incluant le pré-vol ;
|
|
12
12
|
- `activity-result-v1.schema.json` pour la réponse structurée de l'agent.
|
|
13
13
|
|
|
14
14
|
Le schéma vérifie la structure, les types, les champs obligatoires et refuse les
|
|
@@ -43,12 +43,20 @@ validation par devflow
|
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Le moteur construit un contrat uniquement pour l'activité courante. Dans le
|
|
46
|
-
profil `quick`,
|
|
46
|
+
profil `quick`, `preflight-evidence` précède `implement`. Le profil `standard`
|
|
47
47
|
ajoute `prepare`, exécutée en lecture seule et conservée dans
|
|
48
48
|
`prepare-result.json`. Deep enchaîne `spec`, `plan`, `tasks`, `implement`,
|
|
49
49
|
`verify` et `review`. `assess` est déjà terminé au démarrage, tandis que `done`
|
|
50
50
|
reste une transition déterministe de la CLI.
|
|
51
51
|
|
|
52
|
+
`preflight-evidence` est une activité documentaire autonome : elle ne réutilise
|
|
53
|
+
pas le contrat conditionnel de `plan`, écrit uniquement
|
|
54
|
+
`preflight-evidence.md` et emploie l'`ActivityResult` commun sans
|
|
55
|
+
`validationPlan`. L'artefact doit décrire les faits, leur source, leur
|
|
56
|
+
reproductibilité, le périmètre, la confidentialité et les limites. Il est
|
|
57
|
+
revalidé avant `implement`; une preuve absente, vide, plus ancienne qu'un
|
|
58
|
+
artefact d'entrée ou ressemblant à un secret bloque la transition.
|
|
59
|
+
|
|
52
60
|
## Contenu du contrat
|
|
53
61
|
|
|
54
62
|
Un `ActivityContract` versionné contient :
|
|
@@ -149,6 +157,12 @@ Les sorties brutes et validées sont conservées respectivement dans
|
|
|
149
157
|
`activity-result.raw.txt` et `activity-result.json`. Une réponse bloquée ou
|
|
150
158
|
invalide ne fait jamais progresser la machine d'état.
|
|
151
159
|
|
|
160
|
+
`agent-execution.json` conserve uniquement les métadonnées non sensibles de
|
|
161
|
+
l'exécution : code retour, durée, présence et taille de la réponse finale,
|
|
162
|
+
timeout et identifiant opaque de session lorsqu'il est disponible. Codex
|
|
163
|
+
distingue une réponse finale absente, un fichier vide, un JSON invalide et un
|
|
164
|
+
payload refusé par le schéma; aucun de ces cas ne fait progresser le workflow.
|
|
165
|
+
|
|
152
166
|
Les activités documentaires Deep écrivent exclusivement `spec.md`, `plan.md`
|
|
153
167
|
ou `tasks.md`, puis réutilisent les validateurs historiques et le contrôle de
|
|
154
168
|
traçabilité exigences-tâches. Leurs résultats sont conservés dans
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# ADR-0001 — Compatibilité des workflows Devflow V3 vers V4
|
|
2
|
+
|
|
3
|
+
- Statut : accepté
|
|
4
|
+
- Date : 2026-08-26
|
|
5
|
+
|
|
6
|
+
## Contexte
|
|
7
|
+
|
|
8
|
+
Devflow V3 persiste la route dans `assessment.json` v1 et
|
|
9
|
+
`workflow-state.json` v2. Le lecteur vérifie son égalité exacte avec la
|
|
10
|
+
politique du profil. Insérer silencieusement `preflight-evidence` rendrait donc
|
|
11
|
+
les états V3 illisibles ou, pire, changerait leur sens pendant une reprise.
|
|
12
|
+
|
|
13
|
+
## Décision
|
|
14
|
+
|
|
15
|
+
Devflow V4 publie `assessment` v2, `workflow-state` v3 et
|
|
16
|
+
`activity-contract` v2. Les quatre routes — quick, standard, deep et critical
|
|
17
|
+
— insèrent l'activité autonome `preflight-evidence` immédiatement avant
|
|
18
|
+
`implement`. Les schémas V3 restent immuables et leur lecteur demeure utile à
|
|
19
|
+
la validation de migration.
|
|
20
|
+
|
|
21
|
+
La migration est une commande latérale explicite. Elle verrouille le workflow,
|
|
22
|
+
valide le couple V3, calcule les deux documents V4, sauvegarde les originaux et
|
|
23
|
+
remplace les deux fichiers. Une interruption restaure le couple original. Le
|
|
24
|
+
dry-run n'écrit rien. Aucune migration automatique n'a lieu lors de `start`,
|
|
25
|
+
`status` ou `run`.
|
|
26
|
+
|
|
27
|
+
Un workflow situé avant `implement` conserve son activité. S'il attendait
|
|
28
|
+
`implement`, il reprend à `preflight-evidence`. S'il a dépassé
|
|
29
|
+
`implement`, sa progression n'est conservée que lorsqu'un
|
|
30
|
+
`preflight-evidence.md` V4 valide est déjà présent; cette preuve est alors
|
|
31
|
+
reconnue explicitement dans l'audit. Il n'existe aucune réécriture silencieuse
|
|
32
|
+
spécifique à KKS-300.
|
|
33
|
+
|
|
34
|
+
## Invariants
|
|
35
|
+
|
|
36
|
+
- Assessment et état sont toujours migrés ou restaurés ensemble.
|
|
37
|
+
- Les dates, preuves et activités V3 terminées sont conservées.
|
|
38
|
+
- La migration est idempotente par détection d'un couple déjà V4.
|
|
39
|
+
- Les originaux et leurs empreintes sont archivés sous `migrations/v4-*`.
|
|
40
|
+
- Une route non canonique, des versions mélangées ou une preuve manquante
|
|
41
|
+
provoquent un refus actionnable.
|
|
42
|
+
|
|
43
|
+
## Conséquences
|
|
44
|
+
|
|
45
|
+
La V4 ajoute des fichiers de schéma et une étape obligatoire à chaque nouveau
|
|
46
|
+
workflow. La compatibilité demande une action opérateur, mais les reprises,
|
|
47
|
+
rollbacks et audits restent déterministes. Le détournement historique d'un
|
|
48
|
+
`plan` rouvert pour produire une preuve disparaît au profit d'un contrat simple
|
|
49
|
+
et stable.
|
|
@@ -24,6 +24,7 @@ Un profil forcé peut augmenter mais jamais réduire la recommandation.
|
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
devflow adaptive start ISSUE_ID
|
|
27
|
+
devflow adaptive migrate ISSUE_ID [--dry-run] [--json]
|
|
27
28
|
devflow adaptive status ISSUE_ID [--json]
|
|
28
29
|
devflow adaptive contract ISSUE_ID [--json|--prompt]
|
|
29
30
|
devflow adaptive run ISSUE_ID --agent codex|claude|cursor
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Référence générée du workflow adaptatif
|
|
2
|
+
|
|
3
|
+
> Généré par `devflow docs-sync`. Ne pas modifier manuellement.
|
|
4
|
+
|
|
5
|
+
Workflow adaptatif à quatre profils, sélectionné par `devflow assess` : quick: assess → preflight-evidence → implement → verify → done; standard: assess → prepare → preflight-evidence → implement → verify → done; deep: assess → spec → plan → tasks → preflight-evidence → implement → verify → review → done; critical: assess → risk-assessment → spec → research → contracts → plan → tasks → preflight-evidence → implement → verify → review → rollback-check → done. `assessment.json` porte la politique et `workflow-state.json` porte uniquement la progression et les preuves.
|
|
6
|
+
|
|
7
|
+
| Profil | Activités | Preuves requises |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `quick` | `assess → preflight-evidence → implement → verify → done` | `targeted-check, diff-inspection` |
|
|
10
|
+
| `standard` | `assess → prepare → preflight-evidence → implement → verify → done` | `targeted-tests, regression-check, diff-inspection` |
|
|
11
|
+
| `deep` | `assess → spec → plan → tasks → preflight-evidence → implement → verify → review → done` | `requirements-coverage, test-suite, implementation-review` |
|
|
12
|
+
| `critical` | `assess → risk-assessment → spec → research → contracts → plan → tasks → preflight-evidence → implement → verify → review → rollback-check → done` | `requirements-coverage, test-suite, security-or-data-check, rollback-plan, independent-review` |
|
|
13
|
+
|
|
14
|
+
## Synchronisation Linear
|
|
15
|
+
|
|
16
|
+
| Activité | Statut |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `assess` | Backlog |
|
|
19
|
+
| `prepare` | Plan |
|
|
20
|
+
| `risk-assessment` | Research |
|
|
21
|
+
| `spec` | Spec |
|
|
22
|
+
| `research` | Research |
|
|
23
|
+
| `contracts` | Plan |
|
|
24
|
+
| `plan` | Plan |
|
|
25
|
+
| `tasks` | Tasks |
|
|
26
|
+
| `preflight-evidence` | Plan |
|
|
27
|
+
| `implement` | In Progress |
|
|
28
|
+
| `verify` | Review |
|
|
29
|
+
| `review` | Review |
|
|
30
|
+
| `rollback-check` | Review |
|
|
31
|
+
| `done` | Done |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Workflow adaptatif
|
|
2
|
+
|
|
3
|
+
<!-- devflow:pipeline:start -->
|
|
4
|
+
Workflow adaptatif à quatre profils, sélectionné par `devflow assess` : quick: assess → preflight-evidence → implement → verify → done; standard: assess → prepare → preflight-evidence → implement → verify → done; deep: assess → spec → plan → tasks → preflight-evidence → implement → verify → review → done; critical: assess → risk-assessment → spec → research → contracts → plan → tasks → preflight-evidence → implement → verify → review → rollback-check → done. `assessment.json` porte la politique et `workflow-state.json` porte uniquement la progression et les preuves.
|
|
5
|
+
<!-- devflow:pipeline:end -->
|
|
6
|
+
|
|
7
|
+
## Sources de vérité
|
|
8
|
+
|
|
9
|
+
- `assessment.json` : identité, signaux, profil, route et preuves exigées.
|
|
10
|
+
- `workflow-state.json` : activité courante, progression et preuves constatées.
|
|
11
|
+
- `activity-contract.json` : autorisations et critères de l’activité courante.
|
|
12
|
+
- `activity-result.json` : résultat structuré et validé de l’agent.
|
|
13
|
+
- `worklog.md` : synthèse humaine, sans autorité sur les transitions.
|
|
14
|
+
|
|
15
|
+
## Cycle
|
|
16
|
+
|
|
17
|
+
1. `feature` crée seulement la branche et l’espace de travail.
|
|
18
|
+
2. `assess` calcule la politique de façon déterministe.
|
|
19
|
+
3. `adaptive start` initialise la route choisie.
|
|
20
|
+
4. `adaptive run` archive une preuve externe reproductible dans
|
|
21
|
+
`preflight-evidence.md` avant toute implémentation.
|
|
22
|
+
5. `adaptive run` construit un contrat, appelle l’adaptateur et valide le
|
|
23
|
+
résultat.
|
|
24
|
+
6. `verify` produit localement les preuves de tests, régression, sécurité et
|
|
25
|
+
inspection du diff selon le profil.
|
|
26
|
+
7. Une transition n’est acceptée que lorsque ses preuves ont la bonne source
|
|
27
|
+
et le résultat `passed`.
|
|
28
|
+
|
|
29
|
+
Une activité bloquée reste courante. `adaptive reopen` permet une remédiation
|
|
30
|
+
explicite avec motif, sans réécrire l’historique.
|
|
31
|
+
|
|
32
|
+
## Compatibilité V3 → V4
|
|
33
|
+
|
|
34
|
+
Les schémas V3 publiés restent inchangés. Un couple persisté
|
|
35
|
+
`assessment` v1 / `workflow-state` v2 se migre explicitement et ensemble :
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
devflow adaptive migrate KS-123 --dry-run
|
|
39
|
+
devflow adaptive migrate KS-123
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
La migration vérifie les invariants, verrouille le workflow, écrit les deux
|
|
43
|
+
fichiers atomiquement et conserve les originaux avec un journal d'audit sous
|
|
44
|
+
`migrations/v4-*`. Un workflow ayant déjà dépassé `implement` n'est accepté
|
|
45
|
+
que si une preuve de pré-vol V4 valide existe déjà. Aucun fichier n'est modifié
|
|
46
|
+
en dry-run et une erreur intermédiaire restaure le couple original.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Devflow 4.0.0 — Notes de release et décision go/no-go
|
|
2
|
+
|
|
3
|
+
Date de validation : 2026-08-26
|
|
4
|
+
|
|
5
|
+
## Contenu
|
|
6
|
+
|
|
7
|
+
- Routes V4 pour quick, standard, deep et critical avec
|
|
8
|
+
`preflight-evidence` avant `implement`.
|
|
9
|
+
- Schémas publics `assessment` v2, `workflow-state` v3 et
|
|
10
|
+
`activity-contract` v2; les versions V3 restent inchangées.
|
|
11
|
+
- Migration V3 → V4 atomique, auditée, réversible et disponible en dry-run.
|
|
12
|
+
- Validation du pré-vol : structure, fraîcheur, confidentialité et propagation
|
|
13
|
+
explicite vers l'implémentation.
|
|
14
|
+
- Diagnostics Codex distincts pour sortie absente, vide, JSON invalide et
|
|
15
|
+
schéma refusé, avec arrêt sûr après mutation partielle.
|
|
16
|
+
|
|
17
|
+
## Matrice validée
|
|
18
|
+
|
|
19
|
+
| Parcours | Preuve |
|
|
20
|
+
|---|---|
|
|
21
|
+
| Nouveau quick, standard, deep, critical | Test d'acceptation black-box depuis le wheel installé |
|
|
22
|
+
| V3 avant implémentation | Migration positionnant le workflow sur `preflight-evidence` |
|
|
23
|
+
| V3 avancé sans preuve | Refus sans mutation |
|
|
24
|
+
| Dry-run | Empreintes des deux fichiers inchangées |
|
|
25
|
+
| Interruption au second remplacement | Restauration byte-for-byte des deux originaux |
|
|
26
|
+
| Pré-vol vide, incomplet, secret ou désuet | Refus ciblé |
|
|
27
|
+
| Codex final absent, vide, JSON invalide ou hors schéma | Aucun avancement |
|
|
28
|
+
| Build et installation hors dépôt | Wheel 4.0.0 importé avec tous les schémas publics |
|
|
29
|
+
|
|
30
|
+
## Retour arrière
|
|
31
|
+
|
|
32
|
+
Pour une migration, restaurer ensemble `assessment.json` et
|
|
33
|
+
`workflow-state.json` depuis le même dossier `migrations/v4-*`, après arrêt des
|
|
34
|
+
exécutions. Pour la distribution, réinstaller 3.0.1 et reprendre uniquement un
|
|
35
|
+
couple V3 restauré; la CLI 3.x ne doit jamais ouvrir un état V4.
|
|
36
|
+
|
|
37
|
+
## Risques résiduels
|
|
38
|
+
|
|
39
|
+
- La détection de secrets est défensive mais ne remplace pas une politique DLP;
|
|
40
|
+
le contrat interdit toute donnée utilisateur ou privée.
|
|
41
|
+
- La fraîcheur repose sur les dates de modification des artefacts d'entrée;
|
|
42
|
+
les systèmes qui réécrivent arbitrairement ces dates doivent régénérer la
|
|
43
|
+
preuve.
|
|
44
|
+
- La reprise de session Codex dépend des capacités du CLI installé. Après une
|
|
45
|
+
mutation suivie d'une réponse finale absente, Devflow exige une
|
|
46
|
+
réconciliation manuelle et ne rejoue pas automatiquement l'activité.
|
|
47
|
+
|
|
48
|
+
## Décision
|
|
49
|
+
|
|
50
|
+
**GO** pour la release 4.0.0 : la suite complète, l'acceptation des quatre
|
|
51
|
+
profils, la migration/ restauration, la synchronisation documentaire, le build
|
|
52
|
+
source+wheel et l'import depuis l'installation hors dépôt sont validés. Les
|
|
53
|
+
risques résiduels ci-dessus sont documentés et ne contournent aucune gate.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Devflow 4.0.1 — Correctif de fiabilité Codex
|
|
2
|
+
|
|
3
|
+
## Correctifs
|
|
4
|
+
|
|
5
|
+
- Les sorties structurées Codex distinguent désormais quatre échecs sûrs :
|
|
6
|
+
fichier final vide, absent, JSON invalide et schéma refusé.
|
|
7
|
+
- L'audit d'exécution et le worklog indiquent le diagnostic, la présence
|
|
8
|
+
d'écritures observées et leur nombre, sans révéler de chemin ou de contenu.
|
|
9
|
+
- Une écriture suivie d'un échec reste bloquée pour réconciliation manuelle ;
|
|
10
|
+
aucune relance automatique n'est effectuée.
|
|
11
|
+
|
|
12
|
+
## Validation
|
|
13
|
+
|
|
14
|
+
- Suite complète : 476 tests.
|
|
15
|
+
- Acceptation adaptative depuis le wheel installé : validée.
|
|
16
|
+
- Migration V3 → V4 couverte pour quick, standard, deep et critical, dont une
|
|
17
|
+
reprise critical avec preuve de pré-vol valide.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Migration vers Devflow V4
|
|
2
|
+
|
|
3
|
+
Devflow V4 ajoute `preflight-evidence` immédiatement avant `implement` dans
|
|
4
|
+
les quatre profils. Les workflows V3 ne sont jamais réécrits silencieusement.
|
|
5
|
+
|
|
6
|
+
## Contrôles préalables
|
|
7
|
+
|
|
8
|
+
Le dossier doit contenir un couple cohérent `assessment.json` v1 et
|
|
9
|
+
`workflow-state.json` v2. Commencez toujours par :
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
devflow adaptive migrate ISSUE_ID --dry-run --json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Le dry-run valide les schémas, l'identité, le profil, la route et la
|
|
16
|
+
progression sans créer de sauvegarde ni modifier un octet. Si `implement` a
|
|
17
|
+
déjà commencé ou est terminé, fournissez un `preflight-evidence.md` complet;
|
|
18
|
+
sinon la migration est refusée.
|
|
19
|
+
|
|
20
|
+
## Migration et reprise
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
devflow adaptive migrate ISSUE_ID
|
|
24
|
+
devflow adaptive status ISSUE_ID
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
La commande sérialise l'opération avec le verrou du workflow. Les originaux et
|
|
28
|
+
`migration-audit.json` sont conservés sous `migrations/v4-<horodatage>/`. Si
|
|
29
|
+
l'écriture du second fichier échoue, les deux originaux sont restaurés. Une
|
|
30
|
+
nouvelle tentative est sûre : un couple déjà migré est détecté et n'est pas
|
|
31
|
+
réécrit.
|
|
32
|
+
|
|
33
|
+
Un workflow qui attendait `implement` attend désormais
|
|
34
|
+
`preflight-evidence`. Un workflow moins avancé conserve son activité courante.
|
|
35
|
+
Un workflow plus avancé conserve sa progression uniquement si sa preuve de
|
|
36
|
+
pré-vol existante est reconnue et validée.
|
|
37
|
+
|
|
38
|
+
## Retour arrière
|
|
39
|
+
|
|
40
|
+
Arrêtez toute exécution du workflow, puis restaurez ensemble
|
|
41
|
+
`assessment.json` et `workflow-state.json` depuis le même dossier
|
|
42
|
+
`migrations/v4-*`. Ne restaurez jamais un seul des deux fichiers. Vérifiez les
|
|
43
|
+
empreintes `beforeSha256` de `migration-audit.json`, puis utilisez la CLI V3
|
|
44
|
+
pour reprendre ce couple V3.
|
|
45
|
+
|
|
46
|
+
## Diagnostics
|
|
47
|
+
|
|
48
|
+
- « migration attend assessment v1 et workflow-state v2 ensemble » : versions
|
|
49
|
+
mélangées ou fichier déjà altéré ; restaurez un couple cohérent.
|
|
50
|
+
- « route V3 non canonique » : la route persistée ne correspond pas au profil ;
|
|
51
|
+
examinez le fichier au lieu de forcer une réécriture.
|
|
52
|
+
- « preflight-evidence.md absent/vide/desuète » : produisez une preuve complète
|
|
53
|
+
sans secret avant de migrer un workflow déjà avancé.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""devflow CLI — workflow de développement adaptatif."""
|
|
2
2
|
|
|
3
|
-
VERSION = "
|
|
3
|
+
VERSION = "4.0.2"
|
|
4
4
|
|
|
5
5
|
SUPPORTED_AGENTS = ["claude-code", "codex", "cursor"]
|
|
6
6
|
|
|
@@ -13,6 +13,7 @@ ACTIVITY_LINEAR_MAPPING = {
|
|
|
13
13
|
"contracts": "Plan",
|
|
14
14
|
"plan": "Plan",
|
|
15
15
|
"tasks": "Tasks",
|
|
16
|
+
"preflight-evidence": "Plan",
|
|
16
17
|
"implement": "In Progress",
|
|
17
18
|
"verify": "Review",
|
|
18
19
|
"review": "Review",
|
|
@@ -38,6 +39,7 @@ ARTIFACTS = [
|
|
|
38
39
|
"contracts.md",
|
|
39
40
|
"plan.md",
|
|
40
41
|
"tasks.md",
|
|
42
|
+
"preflight-evidence.md",
|
|
41
43
|
"worklog.md",
|
|
42
44
|
"activity-contract.json",
|
|
43
45
|
"activity-result.json",
|