devflow-cli 7.0.1__tar.gz → 7.1.0__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-7.1.0/.specify/specs/036-kks-433-run-progress/.gitignore +2 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/activity-contract.json +168 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/agent-execution.json +15 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/assessment.json +39 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/evidence/diff-inspection.json +34 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/evidence/regression-check.json +115 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/evidence/targeted-tests.json +29 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/implement-result.json +64 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/need.md +95 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/preflight-evidence-result.json +71 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/preflight-evidence.md +138 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/prepare-result.json +102 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/review-result.json +30 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/workflow-state.json +66 -0
- devflow_cli-7.1.0/.specify/specs/036-kks-433-run-progress/worklog.md +77 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/CHANGELOG.md +9 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/PKG-INFO +1 -1
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/cli-reference.md +9 -0
- devflow_cli-7.1.0/docs/releases/7.1.0.md +41 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/pyproject.toml +1 -1
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/__init__.py +1 -1
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/adaptive.py +27 -10
- devflow_cli-7.1.0/src/devflow_cli/core/run_progress.py +62 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_adaptive.py +182 -3
- devflow_cli-7.1.0/tests/test_run_progress.py +65 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/uv.lock +1 -1
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.ai/mcp/mcp.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.analyze.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.checklist.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.clarify.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.constitution.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.implement.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.specify.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.claude/commands/speckit.taskstoissues.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.githooks/post-checkout +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.githooks/post-merge +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.github/workflows/ci.yml +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.github/workflows/release.yml +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.github/workflows/version-check.yml +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/init-options.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/memory/constitution.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/scripts/bash/common.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/001-cli-init-options/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/002-cascade-regen/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/003-usecase-guides/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/005-implement-subphases/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/005-implement-subphases/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/005-implement-subphases/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/005-implement-subphases/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/006-template-upgrade/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/007-project-documentation/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/008-hardening-bugs/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/008-hardening-bugs/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/008-hardening-bugs/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/009-ci-pypi/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/009-ci-pypi/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/009-ci-pypi/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/009-ci-pypi/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/010-flexible-pipeline/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/011-cursor-support/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/011-cursor-support/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/011-cursor-support/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/011-cursor-support/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/011-cursor-support/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/013-align-truth-sources/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/013-align-truth-sources/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/016-harden-state-machine/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/016-harden-state-machine/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/016-harden-state-machine/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/019-quality-hardening/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/019-quality-hardening/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/019-quality-hardening/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/019-quality-hardening/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/019-quality-hardening/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/021-review-iterations/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/021-review-iterations/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/021-review-iterations/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/021-review-iterations/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/022-fix-regen-command/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/022-fix-regen-command/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/022-fix-regen-command/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/023-add-logging/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/023-add-logging/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/023-add-logging/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/023-add-logging/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/024-validate-constants/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/024-validate-constants/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/024-validate-constants/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/024-validate-constants/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/025-harden-tests/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/025-harden-tests/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/025-harden-tests/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/025-harden-tests/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/regression-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/targeted-tests.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/prepare-attempt.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/prepare-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/028-kks-411-feature-dir-ignored/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/evidence/regression-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/evidence/targeted-tests.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/prepare-attempt.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/prepare-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/029-kks-413/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/evidence/requirements-coverage.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/evidence/security-or-data-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/evidence/test-suite.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/omission-log.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/plan-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/research-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/research.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/review-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/risk-assessment-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/risk-assessment.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/rollback-check-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/spec-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/tasks-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/030-kks-416/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/contracts-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/requirements-coverage.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/test-suite.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/plan-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/spec-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-001/tasks-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/contracts-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/requirements-coverage.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/security-or-data-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/test-suite.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/plan-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/review-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/risk-assessment-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/rollback-check-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/spec-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/attempts/reopen-002/tasks-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/contracts-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/contracts.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/evidence/requirements-coverage.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/evidence/security-or-data-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/evidence/test-suite.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/issue-precommit-review.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/omission-log.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/plan-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/reopen-log.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/review-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/risk-assessment-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/risk-assessment.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/rollback-check-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/spec-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/tasks-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/031-kks-414/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/evidence/regression-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/evidence/targeted-tests.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/prepare-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/032-kks-419/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/evidence/regression-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/evidence/targeted-tests.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/prepare-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/033-kks-420-stale-commands-warning/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/contracts-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/contracts.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/requirements-coverage.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/security-or-data-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/test-suite.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/omission-log.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/plan-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/plan.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/review-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/risk-assessment-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/risk-assessment.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/rollback-check-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/spec-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/spec.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/tasks-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/tasks.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/validation-approvals.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/034-kks-421-decouple-guardrails/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/.gitignore +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/activity-contract.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/agent-execution.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/assessment.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/evidence/diff-inspection.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/evidence/targeted-check.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/implement-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/need.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/preflight-evidence-result.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/preflight-evidence.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/workflow-state.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/specs/035-kks-428-constitution-v2/worklog.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/agent-file-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/checklist-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/constitution-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/plan-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/spec-template-brownfield.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/spec-template-greenfield.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/spec-template-microservices.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/spec-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/.specify/templates/tasks-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/CLAUDE.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/CONTRIBUTING.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/FEEDBACK.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/LICENSE +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/README.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/commands/devflow.context.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/commands/devflow.extension.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/commands/devflow.init.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/commands/devflow.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/commands/devflow.regen.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/commands/devflow.status.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/activity-contracts.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/adr/0001-v4-workflow-compatibility.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/adr/0002-v5-rupture-and-provenance.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/adr/0003-v7-guardrails-rupture.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/commands-reference.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/cursor-guide.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/guides/brownfield.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/guides/greenfield.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/guides/microservices.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/index.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/pipeline-reference.generated.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/pipeline.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/4.0.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/4.0.1.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/4.0.3.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/4.0.4.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/4.0.5.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/4.0.6.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/5.0.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.0.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.1.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.1.1.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.1.2.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.2.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.3.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.3.1.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/6.4.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/7.0.0.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/releases/7.0.1.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/spec-driven.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/v5-decisions.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/v6-decisions.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/docs/v7-decisions.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/extensions/catalog.community.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/extensions/catalog.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/extensions/template/example-command.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/extensions/template/example-extension.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/scripts/check_release.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/adapters/__init__.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/adapters/agents.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/adapters/linear.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/cli.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/__init__.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/assess.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/check.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/context.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/docs_sync.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/export_cmd.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/extension.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/feature.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/feedback.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/hooks_cmd.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/init_cmd.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/linear.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/stale.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/status.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/traceability.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/upgrade_cmd.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/usage.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/commands/verify.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/__init__.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/activity_contracts.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/adaptive_runner.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/adaptive_workflow.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/agent_failure.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/assessment.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/automatic_evidence.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/catalog.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/contract_schemas.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/docgen.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/feedback.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/git.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/hooks.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/installer.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/manifest.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/operational.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/redaction.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/remediation.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/scanner.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/staleness.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/telemetry.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/traceability.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/validation_approvals.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/validators.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/verification.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/waivers.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/worklog.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/core/worktree_snapshot.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/schemas/activity-contract-v4.schema.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/schemas/activity-result-v1.schema.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/schemas/assessment-v4.schema.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/schemas/workflow-state-v5.schema.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/utils/__init__.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/utils/console.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/utils/logging.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/utils/paths.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/src/devflow_cli/utils/strings.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/agent-context-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/constitution-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/contracts/README-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/contracts/api-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/contracts/components-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/contracts/interfaces-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/contracts/services-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/contracts-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/data-model-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/devflow-hooks-template.yml +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/extension-manifest-template.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/plan-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/quickstart-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/spec-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/templates/tasks-template.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/conftest.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/fixtures/agents/mock-agent.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/fixtures/commands/mock-command.md +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/fixtures/mock-catalog.json +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/run-tests.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test-helpers.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test-template-variants.sh +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_activity_contracts.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_adaptive_runner.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_adaptive_workflow.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_agent_adapters.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_agent_failure.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_assessment.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_automatic_evidence.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_bash_runner.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_catalog.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_assess.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_check.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_context.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_docs_sync.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_extension.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_feature.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_feedback.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_hooks.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_init.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_linear.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_stale.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_status.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_traceability.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_upgrade.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_cmd_verify.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_constants.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_context.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_contract_schemas.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_docgen.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_feedback.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_git.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_guardrails.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_hooks.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_installer.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_integration.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_legacy_schema.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_linear_adapter.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_linear_order.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_logging.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_manifest.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_paths.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_paths_project_root.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_release.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_remediation.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_scanner.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_staleness.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_telemetry.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_traceability.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_validators.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_verification.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_version.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_waivers.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_wheel_adaptive_acceptance.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_wheel_install.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_worklog.py +0 -0
- {devflow_cli-7.0.1 → devflow_cli-7.1.0}/tests/test_worktree_snapshot.py +0 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"contractId": "KKS-433:standard:review:v4",
|
|
4
|
+
"issueId": "KKS-433",
|
|
5
|
+
"profile": "standard",
|
|
6
|
+
"guardrails": false,
|
|
7
|
+
"activity": "review",
|
|
8
|
+
"objective": "Afficher l'avancement d'une activite pendant adaptive run : ligne de demarrage et lignes periodiques, sortie --json inchangee ; version 7.1.0",
|
|
9
|
+
"featurePath": ".specify/specs/036-kks-433-run-progress",
|
|
10
|
+
"inputs": [
|
|
11
|
+
".specify/specs/036-kks-433-run-progress/need.md",
|
|
12
|
+
".specify/specs/036-kks-433-run-progress/assessment.json",
|
|
13
|
+
".specify/specs/036-kks-433-run-progress/workflow-state.json",
|
|
14
|
+
".specify/specs/036-kks-433-run-progress/prepare-result.json",
|
|
15
|
+
".specify/specs/036-kks-433-run-progress/implement-result.json",
|
|
16
|
+
".specify/specs/036-kks-433-run-progress/evidence/targeted-tests.json",
|
|
17
|
+
".specify/specs/036-kks-433-run-progress/evidence/regression-check.json",
|
|
18
|
+
".specify/specs/036-kks-433-run-progress/evidence/diff-inspection.json"
|
|
19
|
+
],
|
|
20
|
+
"allowedActions": [
|
|
21
|
+
"read",
|
|
22
|
+
"execute"
|
|
23
|
+
],
|
|
24
|
+
"constraints": [
|
|
25
|
+
"Respecter strictement l'objectif et le perimetre du contrat.",
|
|
26
|
+
"Le besoin de reference est .specify/specs/036-kks-433-run-progress/need.md ; en cas d'ecart avec objective, il fait foi.",
|
|
27
|
+
"Preserver les changements utilisateur sans rapport avec cette activite.",
|
|
28
|
+
"Ne pas modifier state.json, workflow-state.json ou assessment.json.",
|
|
29
|
+
"Ne pas creer de commit et ne pas changer de branche.",
|
|
30
|
+
"Signaler tout blocage au lieu de contourner une validation.",
|
|
31
|
+
"Dans checks, status vaut passed si et seulement si exitCode vaut 0. Une commande dont l'absence de resultat constitue le succes attendu doit etre declaree failed, ou remplacee par une commande qui renvoie 0 en cas de succes.",
|
|
32
|
+
"Donner un id stable a chaque objectif de check. Si un check echoue puis est corrige et relance pour le meme objectif, reutiliser cet id : seule la derniere tentative fait foi ; signaler dans remainingRisks toute instabilite encore pertinente.",
|
|
33
|
+
"Ne modifier aucun fichier pendant la review.",
|
|
34
|
+
"Examiner le besoin, le resultat de preparation, le diff et les preuves reelles.",
|
|
35
|
+
"Traiter les preuves source=devflow deja validees par verify comme les resultats d'execution de reference; controler leur contenu, leur actualite et leur adequation sans les ignorer.",
|
|
36
|
+
"Ne pas relancer une commande qui ecrit des artefacts de build dans ce sandbox en lecture seule. Une impossibilite de reecrire target, build ou dist n'est pas un blocker si la preuve Devflow correspondante est actuelle et passed.",
|
|
37
|
+
"Limiter les checks propres a la review aux inspections effectivement compatibles avec la lecture seule.",
|
|
38
|
+
"Retourner blocked avec des blockers explicites si un defaut significatif subsiste.",
|
|
39
|
+
"Ne produire la preuve de review attendue en passed que si le changement est coherent et suffisamment verifie."
|
|
40
|
+
],
|
|
41
|
+
"completionCriteria": [
|
|
42
|
+
"La conformite de l'implementation aux exigences est examinee.",
|
|
43
|
+
"Les preuves et risques restants sont pris en compte.",
|
|
44
|
+
"La preuve de review contient un rapport exploitable."
|
|
45
|
+
],
|
|
46
|
+
"requiredEvidence": [
|
|
47
|
+
"implementation-review"
|
|
48
|
+
],
|
|
49
|
+
"expectedOutput": {
|
|
50
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
51
|
+
"$id": "https://devflow.dev/schemas/activity-result/v1",
|
|
52
|
+
"title": "Devflow Activity Result v1",
|
|
53
|
+
"type": "object",
|
|
54
|
+
"required": [
|
|
55
|
+
"schemaVersion",
|
|
56
|
+
"contractId",
|
|
57
|
+
"status",
|
|
58
|
+
"summary",
|
|
59
|
+
"changedFiles",
|
|
60
|
+
"checks",
|
|
61
|
+
"evidence",
|
|
62
|
+
"remainingRisks",
|
|
63
|
+
"blockers"
|
|
64
|
+
],
|
|
65
|
+
"properties": {
|
|
66
|
+
"schemaVersion": {
|
|
67
|
+
"type": "integer",
|
|
68
|
+
"const": 1
|
|
69
|
+
},
|
|
70
|
+
"contractId": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"minLength": 1
|
|
73
|
+
},
|
|
74
|
+
"status": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": [
|
|
77
|
+
"completed",
|
|
78
|
+
"blocked"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"summary": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"minLength": 1
|
|
84
|
+
},
|
|
85
|
+
"changedFiles": {
|
|
86
|
+
"type": "array",
|
|
87
|
+
"items": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"minLength": 1
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"checks": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"items": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"required": [
|
|
97
|
+
"command",
|
|
98
|
+
"exitCode",
|
|
99
|
+
"status"
|
|
100
|
+
],
|
|
101
|
+
"properties": {
|
|
102
|
+
"id": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"minLength": 1
|
|
105
|
+
},
|
|
106
|
+
"command": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"minLength": 1
|
|
109
|
+
},
|
|
110
|
+
"exitCode": {
|
|
111
|
+
"type": "integer"
|
|
112
|
+
},
|
|
113
|
+
"status": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"enum": [
|
|
116
|
+
"passed",
|
|
117
|
+
"failed"
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"additionalProperties": false
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"evidence": {
|
|
125
|
+
"type": "array",
|
|
126
|
+
"items": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"required": [
|
|
129
|
+
"id",
|
|
130
|
+
"outcome",
|
|
131
|
+
"report"
|
|
132
|
+
],
|
|
133
|
+
"properties": {
|
|
134
|
+
"id": {
|
|
135
|
+
"type": "string",
|
|
136
|
+
"minLength": 1
|
|
137
|
+
},
|
|
138
|
+
"outcome": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"enum": [
|
|
141
|
+
"passed",
|
|
142
|
+
"failed"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
"report": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"minLength": 1
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"additionalProperties": false
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"remainingRisks": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"items": {
|
|
156
|
+
"type": "string"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"blockers": {
|
|
160
|
+
"type": "array",
|
|
161
|
+
"items": {
|
|
162
|
+
"type": "string"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"additionalProperties": false
|
|
167
|
+
}
|
|
168
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"runId": "4e3c2026-0bea-44e0-9a67-82f848971038",
|
|
4
|
+
"agent": "claude",
|
|
5
|
+
"activity": "review",
|
|
6
|
+
"returnCode": 0,
|
|
7
|
+
"durationSeconds": 69.403,
|
|
8
|
+
"finalOutputStatus": "present",
|
|
9
|
+
"finalOutputBytes": 4281,
|
|
10
|
+
"finalOutputDiagnostic": "validated",
|
|
11
|
+
"sessionId": null,
|
|
12
|
+
"timedOut": false,
|
|
13
|
+
"worktreeChanged": false,
|
|
14
|
+
"worktreeChangedFileCount": 0
|
|
15
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"issueId": "KKS-433",
|
|
4
|
+
"recommendedProfile": "standard",
|
|
5
|
+
"selectedProfile": "standard",
|
|
6
|
+
"confidence": "medium",
|
|
7
|
+
"signals": {
|
|
8
|
+
"scope": "multiple",
|
|
9
|
+
"ambiguity": "medium",
|
|
10
|
+
"risk": "low",
|
|
11
|
+
"contractChange": false,
|
|
12
|
+
"dataOrSecurity": false
|
|
13
|
+
},
|
|
14
|
+
"guardrails": {
|
|
15
|
+
"active": false,
|
|
16
|
+
"reasons": []
|
|
17
|
+
},
|
|
18
|
+
"reasons": [
|
|
19
|
+
"plusieurs composants sont affectes",
|
|
20
|
+
"certaines precisions peuvent etre necessaires"
|
|
21
|
+
],
|
|
22
|
+
"activities": [
|
|
23
|
+
"assess",
|
|
24
|
+
"prepare",
|
|
25
|
+
"preflight-evidence",
|
|
26
|
+
"implement",
|
|
27
|
+
"verify",
|
|
28
|
+
"review",
|
|
29
|
+
"done"
|
|
30
|
+
],
|
|
31
|
+
"requiredEvidence": [
|
|
32
|
+
"targeted-tests",
|
|
33
|
+
"regression-check",
|
|
34
|
+
"diff-inspection",
|
|
35
|
+
"implementation-review"
|
|
36
|
+
],
|
|
37
|
+
"assessedAt": "2026-09-30T17:33:37Z",
|
|
38
|
+
"summary": "Afficher l'avancement d'une activite pendant adaptive run : ligne de demarrage et lignes periodiques, sortie --json inchangee ; version 7.1.0"
|
|
39
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "diff-inspection",
|
|
4
|
+
"outcome": "passed",
|
|
5
|
+
"generatedAt": "2026-09-30T17:47:23Z",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
"CHANGELOG.md",
|
|
8
|
+
"docs/cli-reference.md",
|
|
9
|
+
"docs/releases/7.1.0.md",
|
|
10
|
+
"pyproject.toml",
|
|
11
|
+
"src/devflow_cli/__init__.py",
|
|
12
|
+
"src/devflow_cli/commands/adaptive.py",
|
|
13
|
+
"src/devflow_cli/core/run_progress.py",
|
|
14
|
+
"tests/test_cmd_adaptive.py",
|
|
15
|
+
"tests/test_run_progress.py",
|
|
16
|
+
"uv.lock"
|
|
17
|
+
],
|
|
18
|
+
"findings": [],
|
|
19
|
+
"gitDiffCheck": {
|
|
20
|
+
"id": "AUTO-DIFF",
|
|
21
|
+
"command": [
|
|
22
|
+
"git",
|
|
23
|
+
"diff",
|
|
24
|
+
"--check"
|
|
25
|
+
],
|
|
26
|
+
"blocking": true,
|
|
27
|
+
"returncode": 0,
|
|
28
|
+
"succeeded": true,
|
|
29
|
+
"timedOut": false,
|
|
30
|
+
"workingDirectory": ".",
|
|
31
|
+
"stdout": "",
|
|
32
|
+
"stderr": ""
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "regression-check",
|
|
4
|
+
"outcome": "passed",
|
|
5
|
+
"startedAt": "2026-09-30T17:45:58Z",
|
|
6
|
+
"completedAt": "2026-09-30T17:47:23Z",
|
|
7
|
+
"commands": [
|
|
8
|
+
{
|
|
9
|
+
"id": "AUTO-REGRESSION-PYTHON",
|
|
10
|
+
"command": [
|
|
11
|
+
"uv",
|
|
12
|
+
"run",
|
|
13
|
+
"python",
|
|
14
|
+
"-m",
|
|
15
|
+
"compileall",
|
|
16
|
+
"-q",
|
|
17
|
+
"src"
|
|
18
|
+
],
|
|
19
|
+
"blocking": true,
|
|
20
|
+
"returncode": 0,
|
|
21
|
+
"succeeded": true,
|
|
22
|
+
"timedOut": false,
|
|
23
|
+
"workingDirectory": ".",
|
|
24
|
+
"stdout": "",
|
|
25
|
+
"stderr": ""
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "PREP-targeted-tests",
|
|
29
|
+
"command": [
|
|
30
|
+
"uv",
|
|
31
|
+
"run",
|
|
32
|
+
"pytest",
|
|
33
|
+
"-q",
|
|
34
|
+
"tests/test_cmd_adaptive.py",
|
|
35
|
+
"tests/test_agent_adapters.py"
|
|
36
|
+
],
|
|
37
|
+
"blocking": true,
|
|
38
|
+
"returncode": 0,
|
|
39
|
+
"succeeded": true,
|
|
40
|
+
"timedOut": false,
|
|
41
|
+
"workingDirectory": ".",
|
|
42
|
+
"stdout": "........................................................................ [ 60%]\n............................................... [100%]\n119 passed in 10.49s\n",
|
|
43
|
+
"stderr": ""
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "PREP-release-version-tests",
|
|
47
|
+
"command": [
|
|
48
|
+
"uv",
|
|
49
|
+
"run",
|
|
50
|
+
"pytest",
|
|
51
|
+
"-q",
|
|
52
|
+
"tests/test_release.py",
|
|
53
|
+
"tests/test_version.py"
|
|
54
|
+
],
|
|
55
|
+
"blocking": true,
|
|
56
|
+
"returncode": 0,
|
|
57
|
+
"succeeded": true,
|
|
58
|
+
"timedOut": false,
|
|
59
|
+
"workingDirectory": ".",
|
|
60
|
+
"stdout": "............................... [100%]\n31 passed in 0.22s\n",
|
|
61
|
+
"stderr": ""
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "PREP-full-suite",
|
|
65
|
+
"command": [
|
|
66
|
+
"uv",
|
|
67
|
+
"run",
|
|
68
|
+
"pytest",
|
|
69
|
+
"-q"
|
|
70
|
+
],
|
|
71
|
+
"blocking": true,
|
|
72
|
+
"returncode": 0,
|
|
73
|
+
"succeeded": true,
|
|
74
|
+
"timedOut": false,
|
|
75
|
+
"workingDirectory": ".",
|
|
76
|
+
"stdout": "........................................................................ [ 4%]\n........................................................................ [ 8%]\n........................................................................ [ 12%]\n........................................................................ [ 17%]\n........................................................................ [ 21%]\n........................................................................ [ 25%]\n........................................................................ [ 30%]\n........................................................................ [ 34%]\n........................................................................ [ 38%]\n........................................................................ [ 43%]\n........................................................................ [ 47%]\n........................................................................ [ 51%]\n........................................................................ [ 56%]\n........................................................................ [ 60%]\n........................................................................ [ 64%]\n........................................................................ [ 69%]\n........................................................................ [ 73%]\n........................................................................ [ 77%]\n........................................................................ [ 82%]\n........................................................................ [ 86%]\n........................................................................ [ 90%]\n........................................................................ [ 95%]\n........................................................................ [ 99%]\n.......... [100%]\n1666 passed in 58.67s\n",
|
|
77
|
+
"stderr": ""
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "PREP-docs-sync",
|
|
81
|
+
"command": [
|
|
82
|
+
"uv",
|
|
83
|
+
"run",
|
|
84
|
+
"devflow",
|
|
85
|
+
"docs-sync",
|
|
86
|
+
"--check"
|
|
87
|
+
],
|
|
88
|
+
"blocking": true,
|
|
89
|
+
"returncode": 0,
|
|
90
|
+
"succeeded": true,
|
|
91
|
+
"timedOut": false,
|
|
92
|
+
"workingDirectory": ".",
|
|
93
|
+
"stdout": "[OK] Documentation déjà synchronisée.\n",
|
|
94
|
+
"stderr": ""
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "PREP-no-ansi-in-progress",
|
|
98
|
+
"command": [
|
|
99
|
+
"rg",
|
|
100
|
+
"-n",
|
|
101
|
+
"console\\.print\\(.*(en cours|demarr)",
|
|
102
|
+
"src/devflow_cli/commands/adaptive.py"
|
|
103
|
+
],
|
|
104
|
+
"blocking": false,
|
|
105
|
+
"returncode": 1,
|
|
106
|
+
"succeeded": false,
|
|
107
|
+
"timedOut": false,
|
|
108
|
+
"workingDirectory": ".",
|
|
109
|
+
"stdout": "",
|
|
110
|
+
"stderr": ""
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"worktreeMutations": [],
|
|
114
|
+
"waiversApplied": []
|
|
115
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "targeted-tests",
|
|
4
|
+
"outcome": "passed",
|
|
5
|
+
"startedAt": "2026-09-30T17:45:58Z",
|
|
6
|
+
"completedAt": "2026-09-30T17:47:23Z",
|
|
7
|
+
"commands": [
|
|
8
|
+
{
|
|
9
|
+
"id": "AUTO-PYTHON",
|
|
10
|
+
"command": [
|
|
11
|
+
"uv",
|
|
12
|
+
"run",
|
|
13
|
+
"pytest",
|
|
14
|
+
"-q",
|
|
15
|
+
"tests/test_cmd_adaptive.py",
|
|
16
|
+
"tests/test_run_progress.py"
|
|
17
|
+
],
|
|
18
|
+
"blocking": true,
|
|
19
|
+
"returncode": 0,
|
|
20
|
+
"succeeded": true,
|
|
21
|
+
"timedOut": false,
|
|
22
|
+
"workingDirectory": ".",
|
|
23
|
+
"stdout": "........................................................................ [ 78%]\n.................... [100%]\n92 passed in 11.52s\n",
|
|
24
|
+
"stderr": ""
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"worktreeMutations": [],
|
|
28
|
+
"waiversApplied": []
|
|
29
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contractId": "KKS-433:standard:implement:v4",
|
|
4
|
+
"status": "completed",
|
|
5
|
+
"summary": "Implémentation de l'option 1 retenue en préparation. Nouveau module src/devflow_cli/core/run_progress.py : emit_progress écrit des lignes complètes horodatées en UTC (« 2026-09-30T17:40:16Z [devflow] … ») via print(flush=True), sans rich ni séquence de contrôle. progress_stream renvoie stdout en mode texte et stderr en --json. heartbeat est un thread démon piloté par un Event : il émet « Activite '<a>' en cours depuis <durée> (agent <x>) » toutes les PROGRESS_INTERVAL_SECONDS (60 s, non configurable en CLI), refuse un intervalle <= 0 (ValueError), puis est arrêté et joint dans un finally, si bien que le message final reste le dernier. Dans adaptive.py, run_adaptive émet la ligne de démarrage (activité, agent, délai --timeout) juste avant execute_structured et entoure cet appel du heartbeat. _execute_local_verification émet « Activite 'verify' demarree : verification locale », donc aussi via adaptive verify. _run_until, agents.py, la télémétrie et _print_execution_json sont inchangés. Tests : 8 nouveaux tests dans tests/test_cmd_adaptive.py (démarrage avant l'agent, ligne périodique, activité courte sans ligne périodique, horodatage sans ESC, --json avec stdout en JSON unique, --until sur deux activités dans l'ordre, délai dépassé en dernier, démarrage avant la vérification locale) et le nouveau fichier tests/test_run_progress.py. Trois tests --json existants lisent désormais result.stdout au lieu de result.output, qui mêle stdout et stderr ; leur intention est inchangée. Version 7.1.0 concordante dans pyproject.toml, __init__.py, uv.lock (uv lock) et CHANGELOG.md. Ajouts : docs/releases/7.1.0.md et une section d'avancement dans docs/cli-reference.md. Suite complète : 1666 passed (base 1648).",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
"src/devflow_cli/core/run_progress.py",
|
|
8
|
+
"src/devflow_cli/commands/adaptive.py",
|
|
9
|
+
"tests/test_run_progress.py",
|
|
10
|
+
"tests/test_cmd_adaptive.py",
|
|
11
|
+
"pyproject.toml",
|
|
12
|
+
"src/devflow_cli/__init__.py",
|
|
13
|
+
"uv.lock",
|
|
14
|
+
"CHANGELOG.md",
|
|
15
|
+
"docs/releases/7.1.0.md",
|
|
16
|
+
"docs/cli-reference.md"
|
|
17
|
+
],
|
|
18
|
+
"checks": [
|
|
19
|
+
{
|
|
20
|
+
"id": "targeted-tests",
|
|
21
|
+
"command": "uv run pytest -q tests/test_cmd_adaptive.py tests/test_agent_adapters.py tests/test_run_progress.py",
|
|
22
|
+
"exitCode": 0,
|
|
23
|
+
"status": "passed"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "release-version-tests",
|
|
27
|
+
"command": "uv run pytest -q tests/test_release.py tests/test_version.py",
|
|
28
|
+
"exitCode": 0,
|
|
29
|
+
"status": "passed"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "full-suite",
|
|
33
|
+
"command": "uv run pytest -q",
|
|
34
|
+
"exitCode": 0,
|
|
35
|
+
"status": "passed"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "shell-tests",
|
|
39
|
+
"command": "./tests/run-tests.sh",
|
|
40
|
+
"exitCode": 0,
|
|
41
|
+
"status": "passed"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "docs-sync",
|
|
45
|
+
"command": "uv run devflow docs-sync --check",
|
|
46
|
+
"exitCode": 0,
|
|
47
|
+
"status": "passed"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "no-ansi-in-progress",
|
|
51
|
+
"command": "! rg -n 'console\\.print\\(.*(en cours|demarr)' src/devflow_cli/commands/adaptive.py",
|
|
52
|
+
"exitCode": 0,
|
|
53
|
+
"status": "passed"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"evidence": [],
|
|
57
|
+
"remainingRisks": [
|
|
58
|
+
"Les tests du heartbeat reposent sur des sleep courts (0,3 à 0,5 s, avec un intervalle patché à 0,1 s). Ils sont stables en local mais peuvent devenir instables sur une machine très chargée.",
|
|
59
|
+
"La ligne de démarrage de verify s'affiche aussi avec `devflow adaptive verify`, y compris avec --refresh. Elle va sur stderr en --json. Ce comportement est documenté dans les notes de version.",
|
|
60
|
+
"La branche ne contient pas la 7.0.1 déjà mergée sur main (PR 13) : un conflit est attendu au merge sur CHANGELOG.md, pyproject.toml, __init__.py et uv.lock. Intégrer main (par merge) reste une décision de Kelly.",
|
|
61
|
+
"Choix fixés en implémentation : horodatage UTC ISO, intervalle 60 s, avancement sur stdout en mode texte. Ils sont documentés dans docs/cli-reference.md."
|
|
62
|
+
],
|
|
63
|
+
"blockers": []
|
|
64
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# KKS-433 — Afficher l'avancement d'une activité pendant `adaptive run`
|
|
2
|
+
|
|
3
|
+
Source : retour d'usage de Kelly du 2026-09-30, friction `fa03b5f0` (majeur) du journal
|
|
4
|
+
`devflow feedback`. Issue Linear : KKS-433. Article IV de la constitution : addition justifiée
|
|
5
|
+
par une friction consignée.
|
|
6
|
+
|
|
7
|
+
## Problème
|
|
8
|
+
|
|
9
|
+
`devflow adaptive run` n'affiche rien entre son lancement et la fin de chaque activité. On
|
|
10
|
+
lance la commande, on attend, et on ne sait pas ce qui se passe jusqu'au verdict final (succès
|
|
11
|
+
ou refus, et conseil de reprise).
|
|
12
|
+
|
|
13
|
+
Constaté dans le code (7.0.0) :
|
|
14
|
+
|
|
15
|
+
- L'agent est lancé par `subprocess.run(..., capture_output=True)`
|
|
16
|
+
(`src/devflow_cli/adapters/agents.py`, `execute_structured`) : appel bloquant, sortie capturée.
|
|
17
|
+
- L'adaptateur Claude utilise `--output-format json`, qui ne rend qu'une enveloppe finale.
|
|
18
|
+
- Aucune ligne n'est émise au démarrage d'une activité : le premier message est
|
|
19
|
+
« Activite … validee » ou le refus.
|
|
20
|
+
|
|
21
|
+
Constaté à l'usage sur KKS-421 : `implement` a tourné 24 minutes sans aucune sortie ; les
|
|
22
|
+
activités documentaires ont tourné de 2 à 5 minutes chacune. Pendant un chaînage `--until`, la
|
|
23
|
+
seule façon de suivre le parcours est de lire `workflow-state.json` ou la liste des processus
|
|
24
|
+
depuis un autre terminal. Le superviseur qui lance la commande en arrière-plan lit un fichier de
|
|
25
|
+
sortie vide jusqu'à la fin de l'activité.
|
|
26
|
+
|
|
27
|
+
## Attendu
|
|
28
|
+
|
|
29
|
+
- À tout moment d'un `adaptive run`, la sortie dit quelle activité tourne, avec quel agent, et
|
|
30
|
+
depuis combien de temps.
|
|
31
|
+
- Dans un chaînage `--until`, chaque changement d'activité est visible au moment où il se
|
|
32
|
+
produit, pas à la fin du chaînage.
|
|
33
|
+
- Le message final (succès ou refus, reprise conseillée) est inchangé.
|
|
34
|
+
- Le résultat de la vérification locale (`verify` dans un chaînage) est aussi précédé d'une ligne
|
|
35
|
+
de démarrage.
|
|
36
|
+
|
|
37
|
+
## Options, à trancher en préparation
|
|
38
|
+
|
|
39
|
+
1. Minimum : une ligne au démarrage de chaque activité (activité, agent, heure, délai maximal),
|
|
40
|
+
puis une ligne périodique avec le temps écoulé, à intervalle fixe.
|
|
41
|
+
2. Signal d'activité sans contenu : nombre de tours de l'agent, nombre de fichiers modifiés
|
|
42
|
+
observés dans l'arbre de travail.
|
|
43
|
+
3. Flux d'événements de l'agent (`stream-json` pour Claude) résumé en une ligne par étape, sans
|
|
44
|
+
contenu de fichier ni de prompt.
|
|
45
|
+
4. Commande de suivi depuis un autre terminal, qui dit l'activité en cours et depuis quand.
|
|
46
|
+
|
|
47
|
+
Les options ne s'excluent pas. L'option 1 est la moins coûteuse et règle l'essentiel ; la
|
|
48
|
+
préparation dit laquelle ou lesquelles sont retenues, et pourquoi.
|
|
49
|
+
|
|
50
|
+
## Contraintes
|
|
51
|
+
|
|
52
|
+
- La sortie `--json` de `adaptive run` reste une sortie structurée unique, exploitable par la
|
|
53
|
+
CI : l'avancement va sur l'erreur standard, ou est désactivé dans ce mode.
|
|
54
|
+
- Hors terminal (sortie redirigée vers un fichier), pas d'animation ni de séquence de contrôle :
|
|
55
|
+
des lignes complètes, horodatées, chacune terminée par un saut de ligne.
|
|
56
|
+
- Aucun contenu de fichier, de prompt ni de réponse d'agent dans l'avancement : même règle que
|
|
57
|
+
la télémétrie.
|
|
58
|
+
- Le contrat de résultat des trois adaptateurs (Claude, Codex, Cursor) est inchangé ; la
|
|
59
|
+
télémétrie et son schéma sont inchangés.
|
|
60
|
+
- Le délai d'activité (`--timeout`) garde le même comportement.
|
|
61
|
+
|
|
62
|
+
## Tests attendus
|
|
63
|
+
|
|
64
|
+
- Démarrage d'activité : la ligne est émise avant le lancement de l'agent, et contient
|
|
65
|
+
l'activité, l'agent et le délai.
|
|
66
|
+
- Activité longue simulée (agent factice qui attend) : au moins une ligne d'avancement avant la
|
|
67
|
+
fin, avec le temps écoulé.
|
|
68
|
+
- Chaînage `--until` sur deux activités : deux lignes de démarrage, dans l'ordre.
|
|
69
|
+
- Mode `--json` : la sortie standard reste un JSON unique et valide.
|
|
70
|
+
- Sortie non interactive : aucune séquence de contrôle de terminal, lignes horodatées.
|
|
71
|
+
- Délai dépassé : le message de délai reste le dernier, après les lignes d'avancement.
|
|
72
|
+
- Cas limites : activité qui se termine avant le premier intervalle ; intervalle nul ou négatif
|
|
73
|
+
refusé si l'intervalle est configurable.
|
|
74
|
+
|
|
75
|
+
## Livraison
|
|
76
|
+
|
|
77
|
+
- Version 7.1.0 (nouvelle capacité), concordante dans `pyproject.toml`,
|
|
78
|
+
`src/devflow_cli/__init__.py`, `uv.lock` et `CHANGELOG.md` (cf. `scripts/check_release.py`,
|
|
79
|
+
`CONTRIBUTING.md`). Notes dans `docs/releases/7.1.0.md`. La branche part de `main` en 7.0.0 ;
|
|
80
|
+
la PR 13 (7.0.1, constitution) peut être mergée avant ou après.
|
|
81
|
+
- `docs/cli-reference.md` décrit l'avancement et son comportement en mode `--json`.
|
|
82
|
+
- `uv run devflow docs-sync --check` passe.
|
|
83
|
+
|
|
84
|
+
## Hors périmètre
|
|
85
|
+
|
|
86
|
+
- Synchronisation Linear (KKS-432), délégation à des sous-agents (KKS-429), frictions mineures
|
|
87
|
+
(KKS-430).
|
|
88
|
+
- Barre de progression ou estimation de durée restante.
|
|
89
|
+
- Changement du format de la télémétrie.
|
|
90
|
+
|
|
91
|
+
## Contraintes d'exécution
|
|
92
|
+
|
|
93
|
+
- Si une activité délègue à des sous-agents, ils sont lancés au premier plan et terminés avant
|
|
94
|
+
que le résultat structuré soit rendu. Aucun sous-agent en arrière-plan.
|
|
95
|
+
- Aucun commit ni push pendant les activités.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contractId": "KKS-433:standard:preflight-evidence:v4",
|
|
4
|
+
"status": "completed",
|
|
5
|
+
"summary": "Preflight KKS-433 rédigé. Le rapport confirme que l'appel agent est bloquant et que sa sortie est capturée (agents.py:157, capture_output). Il situe les points d'insertion : closure execute avant execute_structured (adaptive.py:384), _run_until qui rappelle run_adaptive (l. 501), et _execute_local_verification (l. 795). La version de départ est 7.0.0 et concorde dans les quatre fichiers. L'état de référence est sain : 111 tests ciblés, 31 tests de version, 1648 tests dans la suite complète, run-tests.sh 14/14, docs-sync OK. Point notable : la PR 13 (7.0.1) est déjà mergée sur main distant (bb59304), mais la branche ne l'intègre pas. Il y aura des conflits de version au merge, et la constitution de la branche reste la 1.3.0, qui ne contient pas l'article IV.",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
".specify/specs/036-kks-433-run-progress/preflight-evidence.md"
|
|
8
|
+
],
|
|
9
|
+
"checks": [
|
|
10
|
+
{
|
|
11
|
+
"id": "baseline-targeted-tests",
|
|
12
|
+
"command": "uv run pytest -q tests/test_agent_adapters.py tests/test_cmd_adaptive.py",
|
|
13
|
+
"exitCode": 0,
|
|
14
|
+
"status": "passed"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "baseline-release-version-tests",
|
|
18
|
+
"command": "uv run pytest -q tests/test_release.py tests/test_version.py",
|
|
19
|
+
"exitCode": 0,
|
|
20
|
+
"status": "passed"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "baseline-full-suite",
|
|
24
|
+
"command": "uv run pytest -q",
|
|
25
|
+
"exitCode": 0,
|
|
26
|
+
"status": "passed"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "baseline-shell-tests",
|
|
30
|
+
"command": "./tests/run-tests.sh",
|
|
31
|
+
"exitCode": 0,
|
|
32
|
+
"status": "passed"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "baseline-docs-sync",
|
|
36
|
+
"command": "uv run devflow docs-sync --check",
|
|
37
|
+
"exitCode": 0,
|
|
38
|
+
"status": "passed"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "baseline-no-rich-progress",
|
|
42
|
+
"command": "! rg -n 'console\\.print\\(.*(en cours|demarr)' src/devflow_cli/commands/adaptive.py",
|
|
43
|
+
"exitCode": 0,
|
|
44
|
+
"status": "passed"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"evidence": [
|
|
48
|
+
{
|
|
49
|
+
"id": "insertion-points",
|
|
50
|
+
"outcome": "passed",
|
|
51
|
+
"report": "execute_structured utilise subprocess.run avec capture_output=True (agents.py:157-165). La ligne de démarrage s'insère avant adapter.execute_structured (adaptive.py:384). _run_until rappelle run_adaptive (l. 501-508). La vérification locale passe par _execute_local_verification (l. 795) sans ligne préalable."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "version-baseline",
|
|
55
|
+
"outcome": "passed",
|
|
56
|
+
"report": "Version 7.0.0 concordante : pyproject.toml:7, __init__.py:3, uv.lock:150, CHANGELOG.md:8. docs/releases/7.1.0.md absent."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "pr13-state",
|
|
60
|
+
"outcome": "passed",
|
|
61
|
+
"report": "La PR 13 est MERGED depuis le 2026-09-30T17:33:39Z (bb59304 = origin main distant). La branche ne l'intègre pas : origin/035 n'est pas ancêtre de HEAD 32dadfb."
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"remainingRisks": [
|
|
65
|
+
"La branche n'intègre pas la 7.0.1 mergée sur main. Conflits attendus sur CHANGELOG.md, pyproject.toml, __init__.py et uv.lock. Intégrer main (merge, pas de rebase) : décision de Kelly.",
|
|
66
|
+
"La constitution de la branche est en 1.3.0 et ne contient pas l'article IV cité par need.md ; l'implémentation lira cette version tant que main n'est pas intégré.",
|
|
67
|
+
"Flux de l'avancement en mode texte, format d'horodatage et intervalle (60 s proposé) : à fixer en implement et à documenter dans cli-reference.md.",
|
|
68
|
+
"Les tests qui comparent la sortie texte de adaptive run peuvent être sensibles à la nouvelle ligne ; à constater en verify."
|
|
69
|
+
],
|
|
70
|
+
"blockers": []
|
|
71
|
+
}
|