devflow-cli 8.2.0__tar.gz → 8.3.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-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/.gitignore +2 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/activity-contract.json +169 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/agent-execution.json +15 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/assessment.json +45 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/attempts/reopen-001/activity-contract.json +223 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/attempts/reopen-001/prepare-result.json +126 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/attempts/reopen-001/risk-assessment-result.json +46 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/diff-inspection.json +47 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/regression-check.json +103 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/security-or-data-check.json +47 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/targeted-tests.json +34 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/implement-result.json +87 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/need.md +136 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/preflight-evidence-result.json +73 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/preflight-evidence.md +278 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/prepare-result.json +129 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/reopen-log.json +29 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/review-result.json +55 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment-result.json +46 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment.md +199 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/rollback-check-result.json +55 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/workflow-state.json +114 -0
- devflow_cli-8.3.0/.specify/specs/041-kks-530-verify-refusals-recovery/worklog.md +108 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/CHANGELOG.md +20 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/PKG-INFO +8 -4
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/README.md +7 -3
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/activity-contracts.md +23 -3
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/cli-reference.md +30 -6
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/pipeline.md +8 -3
- devflow_cli-8.3.0/docs/releases/8.3.0.md +99 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/pyproject.toml +1 -1
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/__init__.py +1 -1
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/adaptive.py +59 -9
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/assess.py +11 -1
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/activity_contracts.py +8 -2
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/adaptive_runner.py +32 -3
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/automatic_evidence.py +57 -9
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/waivers.py +42 -1
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/worklog.py +10 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_activity_contracts.py +55 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_adaptive_runner.py +309 -1
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_automatic_evidence.py +290 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_adaptive.py +542 -2
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_assess.py +58 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_waivers.py +137 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_worklog.py +53 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/uv.lock +1 -1
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.ai/mcp/mcp.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.analyze.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.checklist.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.clarify.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.constitution.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.implement.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.specify.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.claude/commands/speckit.taskstoissues.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.githooks/post-checkout +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.githooks/post-merge +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.github/workflows/ci.yml +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.github/workflows/release.yml +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.github/workflows/version-check.yml +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/init-options.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/memory/constitution.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/scripts/bash/common.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/001-cli-init-options/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/002-cascade-regen/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/003-usecase-guides/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/005-implement-subphases/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/005-implement-subphases/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/005-implement-subphases/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/005-implement-subphases/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/006-template-upgrade/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/007-project-documentation/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/008-hardening-bugs/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/008-hardening-bugs/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/008-hardening-bugs/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/009-ci-pypi/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/009-ci-pypi/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/009-ci-pypi/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/009-ci-pypi/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/010-flexible-pipeline/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/011-cursor-support/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/011-cursor-support/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/011-cursor-support/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/011-cursor-support/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/011-cursor-support/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/013-align-truth-sources/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/013-align-truth-sources/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/016-harden-state-machine/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/016-harden-state-machine/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/016-harden-state-machine/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/019-quality-hardening/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/019-quality-hardening/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/019-quality-hardening/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/019-quality-hardening/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/019-quality-hardening/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/021-review-iterations/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/021-review-iterations/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/021-review-iterations/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/021-review-iterations/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/022-fix-regen-command/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/022-fix-regen-command/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/022-fix-regen-command/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/023-add-logging/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/023-add-logging/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/023-add-logging/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/023-add-logging/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/024-validate-constants/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/024-validate-constants/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/024-validate-constants/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/024-validate-constants/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/025-harden-tests/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/025-harden-tests/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/025-harden-tests/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/025-harden-tests/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/prepare-attempt.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/028-kks-411-feature-dir-ignored/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/prepare-attempt.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/029-kks-413/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/omission-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/research-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/research.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/030-kks-416/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/contracts-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-001/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/contracts-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/attempts/reopen-002/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/contracts-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/contracts.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/issue-precommit-review.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/omission-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/reopen-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/031-kks-414/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/032-kks-419/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/033-kks-420-stale-commands-warning/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/contracts-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/contracts.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/omission-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/validation-approvals.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/034-kks-421-decouple-guardrails/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/evidence/targeted-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/035-kks-428-constitution-v2/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/036-kks-433-run-progress/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/037-kks-432-linear-sync/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempt-discard-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/discard-001/preflight-evidence-attempt.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/contracts-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/implement-attempt.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/contracts-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/contracts.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/evidence/requirements-coverage.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/evidence/test-suite.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/implement-attempt.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/plan-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/plan.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/reconcile-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/reopen-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/spec-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/spec.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/tasks-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/tasks.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/validation-approvals.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/038-kks-508-activity-base/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/reopen-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/039-kks-509-plan-correction-recovery/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/.gitignore +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/agent-execution.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/assessment.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/evidence/diff-inspection.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/evidence/regression-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/evidence/security-or-data-check.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/evidence/targeted-tests.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/implement-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/need.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/preflight-evidence-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/preflight-evidence.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/prepare-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/reopen-log.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/review-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/risk-assessment-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/risk-assessment.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/rollback-check-result.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/workflow-state.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/specs/040-kks-429-delegation-structured-output/worklog.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/agent-file-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/checklist-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/constitution-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/plan-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/spec-template-brownfield.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/spec-template-greenfield.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/spec-template-microservices.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/spec-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/.specify/templates/tasks-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/CLAUDE.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/CONTRIBUTING.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/FEEDBACK.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/LICENSE +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/commands/devflow.context.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/commands/devflow.extension.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/commands/devflow.init.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/commands/devflow.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/commands/devflow.regen.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/commands/devflow.status.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/adr/0001-v4-workflow-compatibility.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/adr/0002-v5-rupture-and-provenance.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/adr/0003-v7-guardrails-rupture.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/commands-reference.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/cursor-guide.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/guides/brownfield.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/guides/greenfield.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/guides/microservices.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/index.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/pipeline-reference.generated.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/4.0.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/4.0.1.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/4.0.3.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/4.0.4.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/4.0.5.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/4.0.6.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/5.0.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.0.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.1.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.1.1.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.1.2.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.2.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.3.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.3.1.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/6.4.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/7.0.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/7.0.1.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/7.1.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/7.1.1.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/7.2.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/8.0.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/8.1.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/releases/8.2.0.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/spec-driven.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/v5-decisions.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/v6-decisions.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/docs/v7-decisions.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/extensions/catalog.community.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/extensions/catalog.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/extensions/template/example-command.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/extensions/template/example-extension.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/scripts/check_release.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/adapters/__init__.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/adapters/agents.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/adapters/linear.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/cli.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/__init__.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/check.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/context.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/docs_sync.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/export_cmd.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/extension.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/feature.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/feedback.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/hooks_cmd.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/init_cmd.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/linear.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/stale.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/status.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/traceability.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/upgrade_cmd.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/usage.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/commands/verify.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/__init__.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/activity_base.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/adaptive_workflow.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/agent_failure.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/agent_run_marker.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/assessment.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/catalog.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/contract_schemas.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/docgen.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/feedback.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/git.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/hooks.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/installer.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/manifest.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/operational.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/redaction.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/remediation.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/result_template.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/run_progress.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/runtime_backup.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/scanner.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/staleness.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/telemetry.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/traceability.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/validation_approvals.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/validators.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/verification.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/core/worktree_snapshot.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/schemas/activity-contract-v4.schema.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/schemas/activity-result-v1.schema.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/schemas/assessment-v4.schema.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/schemas/workflow-state-v6.schema.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/utils/__init__.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/utils/console.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/utils/logging.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/utils/paths.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/src/devflow_cli/utils/strings.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/agent-context-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/constitution-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/contracts/README-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/contracts/api-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/contracts/components-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/contracts/interfaces-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/contracts/services-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/contracts-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/data-model-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/devflow-hooks-template.yml +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/extension-manifest-template.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/plan-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/quickstart-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/spec-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/templates/tasks-template.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/conftest.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/fixtures/agents/mock-agent.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/fixtures/commands/mock-command.md +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/fixtures/mock-catalog.json +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/run-tests.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test-helpers.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test-template-variants.sh +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_activity_base.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_adaptive_workflow.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_agent_adapters.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_agent_failure.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_assessment.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_bash_runner.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_catalog.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_check.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_context.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_docs_sync.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_extension.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_feature.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_feedback.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_hooks.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_init.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_linear.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_stale.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_status.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_traceability.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_upgrade.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_cmd_verify.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_constants.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_context.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_contract_schemas.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_docgen.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_feedback.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_git.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_guardrails.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_hooks.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_installer.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_integration.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_legacy_schema.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_linear_adapter.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_linear_order.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_logging.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_manifest.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_paths.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_paths_project_root.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_release.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_remediation.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_run_progress.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_scanner.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_staleness.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_telemetry.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_traceability.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_validators.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_verification.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_version.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_wheel_adaptive_acceptance.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_wheel_install.py +0 -0
- {devflow_cli-8.2.0 → devflow_cli-8.3.0}/tests/test_worktree_snapshot.py +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"contractId": "KKS-530:standard:rollback-check:v4",
|
|
4
|
+
"issueId": "KKS-530",
|
|
5
|
+
"profile": "standard",
|
|
6
|
+
"guardrails": true,
|
|
7
|
+
"activity": "rollback-check",
|
|
8
|
+
"objective": "Corriger dix refus et reprises de verify relevés en 7.x et 8.1 : lot documentaire accepté sur observation en quick, validation protégée non bloquante refusée dès prepare ou plan, troisième voie de reprise et --refresh, statut sans stale après done, dérogation sur un contrôle présent dans deux preuves, motif dédié pour le pré-vol périmé, messages de reconcile et de assess. Décisions dans need.md.",
|
|
9
|
+
"featurePath": ".specify/specs/041-kks-530-verify-refusals-recovery",
|
|
10
|
+
"inputs": [
|
|
11
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/need.md",
|
|
12
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/assessment.json",
|
|
13
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/workflow-state.json",
|
|
14
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment.md",
|
|
15
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/prepare-result.json",
|
|
16
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/implement-result.json",
|
|
17
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/evidence/targeted-tests.json",
|
|
18
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/evidence/regression-check.json",
|
|
19
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/evidence/diff-inspection.json",
|
|
20
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/evidence/security-or-data-check.json",
|
|
21
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/review-result.json"
|
|
22
|
+
],
|
|
23
|
+
"allowedActions": [
|
|
24
|
+
"read",
|
|
25
|
+
"execute"
|
|
26
|
+
],
|
|
27
|
+
"constraints": [
|
|
28
|
+
"Respecter strictement l'objectif et le perimetre du contrat.",
|
|
29
|
+
"Le besoin de reference est .specify/specs/041-kks-530-verify-refusals-recovery/need.md ; en cas d'ecart avec objective, il fait foi.",
|
|
30
|
+
"Preserver les changements utilisateur sans rapport avec cette activite.",
|
|
31
|
+
"Ne pas modifier state.json, workflow-state.json ou assessment.json.",
|
|
32
|
+
"Ne pas creer de commit et ne pas changer de branche.",
|
|
33
|
+
"Signaler tout blocage au lieu de contourner une validation.",
|
|
34
|
+
"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.",
|
|
35
|
+
"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.",
|
|
36
|
+
"Si des sous-agents sont utilises, les lancer au premier plan, jamais en arriere-plan, et attendre qu'ils soient tous termines avant la sortie structuree. La sortie structuree du contrat est le dernier message de l'agent : ne rien envoyer apres elle.",
|
|
37
|
+
"Ne modifier aucun fichier pendant le controle de rollback.",
|
|
38
|
+
"Verifier une procedure de restauration actionnable, les donnees affectees, les validations post-rollback et les declencheurs.",
|
|
39
|
+
"Retourner blocked si un effet irreversible ou une inconnue critique empeche un retour arriere fiable.",
|
|
40
|
+
"Ne produire rollback-plan=passed que si le plan est applicable et verifiable."
|
|
41
|
+
],
|
|
42
|
+
"completionCriteria": [
|
|
43
|
+
"Le plan de rollback precise les etapes, responsables, donnees et controles.",
|
|
44
|
+
"Les declencheurs et limites du rollback sont explicites.",
|
|
45
|
+
"La preuve rollback-plan contient un rapport exploitable."
|
|
46
|
+
],
|
|
47
|
+
"requiredEvidence": [
|
|
48
|
+
"rollback-plan"
|
|
49
|
+
],
|
|
50
|
+
"expectedOutput": {
|
|
51
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
52
|
+
"$id": "https://devflow.dev/schemas/activity-result/v1",
|
|
53
|
+
"title": "Devflow Activity Result v1",
|
|
54
|
+
"type": "object",
|
|
55
|
+
"required": [
|
|
56
|
+
"schemaVersion",
|
|
57
|
+
"contractId",
|
|
58
|
+
"status",
|
|
59
|
+
"summary",
|
|
60
|
+
"changedFiles",
|
|
61
|
+
"checks",
|
|
62
|
+
"evidence",
|
|
63
|
+
"remainingRisks",
|
|
64
|
+
"blockers"
|
|
65
|
+
],
|
|
66
|
+
"properties": {
|
|
67
|
+
"schemaVersion": {
|
|
68
|
+
"type": "integer",
|
|
69
|
+
"const": 1
|
|
70
|
+
},
|
|
71
|
+
"contractId": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"minLength": 1
|
|
74
|
+
},
|
|
75
|
+
"status": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"enum": [
|
|
78
|
+
"completed",
|
|
79
|
+
"blocked"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"summary": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 1
|
|
85
|
+
},
|
|
86
|
+
"changedFiles": {
|
|
87
|
+
"type": "array",
|
|
88
|
+
"items": {
|
|
89
|
+
"type": "string",
|
|
90
|
+
"minLength": 1
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"checks": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"required": [
|
|
98
|
+
"command",
|
|
99
|
+
"exitCode",
|
|
100
|
+
"status"
|
|
101
|
+
],
|
|
102
|
+
"properties": {
|
|
103
|
+
"id": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"minLength": 1
|
|
106
|
+
},
|
|
107
|
+
"command": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"minLength": 1
|
|
110
|
+
},
|
|
111
|
+
"exitCode": {
|
|
112
|
+
"type": "integer"
|
|
113
|
+
},
|
|
114
|
+
"status": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"enum": [
|
|
117
|
+
"passed",
|
|
118
|
+
"failed"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"additionalProperties": false
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"evidence": {
|
|
126
|
+
"type": "array",
|
|
127
|
+
"items": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"required": [
|
|
130
|
+
"id",
|
|
131
|
+
"outcome",
|
|
132
|
+
"report"
|
|
133
|
+
],
|
|
134
|
+
"properties": {
|
|
135
|
+
"id": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"minLength": 1
|
|
138
|
+
},
|
|
139
|
+
"outcome": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"enum": [
|
|
142
|
+
"passed",
|
|
143
|
+
"failed"
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
"report": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"minLength": 1
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"additionalProperties": false
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"remainingRisks": {
|
|
155
|
+
"type": "array",
|
|
156
|
+
"items": {
|
|
157
|
+
"type": "string"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"blockers": {
|
|
161
|
+
"type": "array",
|
|
162
|
+
"items": {
|
|
163
|
+
"type": "string"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"additionalProperties": false
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"runId": "72524d46-f4da-41be-91a1-4f4d7acea9e0",
|
|
4
|
+
"agent": "claude",
|
|
5
|
+
"activity": "rollback-check",
|
|
6
|
+
"returnCode": 0,
|
|
7
|
+
"durationSeconds": 75.86,
|
|
8
|
+
"finalOutputStatus": "present",
|
|
9
|
+
"finalOutputBytes": 7488,
|
|
10
|
+
"finalOutputDiagnostic": "validated",
|
|
11
|
+
"sessionId": null,
|
|
12
|
+
"timedOut": false,
|
|
13
|
+
"worktreeChanged": false,
|
|
14
|
+
"worktreeChangedFileCount": 0
|
|
15
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"issueId": "KKS-530",
|
|
4
|
+
"recommendedProfile": "standard",
|
|
5
|
+
"selectedProfile": "standard",
|
|
6
|
+
"confidence": "high",
|
|
7
|
+
"signals": {
|
|
8
|
+
"scope": "multiple",
|
|
9
|
+
"ambiguity": "low",
|
|
10
|
+
"risk": "medium",
|
|
11
|
+
"contractChange": false,
|
|
12
|
+
"dataOrSecurity": true
|
|
13
|
+
},
|
|
14
|
+
"guardrails": {
|
|
15
|
+
"active": true,
|
|
16
|
+
"reasons": [
|
|
17
|
+
"le changement touche aux donnees ou a la securite"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"reasons": [
|
|
21
|
+
"plusieurs composants sont affectes",
|
|
22
|
+
"le risque d'impact est modere"
|
|
23
|
+
],
|
|
24
|
+
"activities": [
|
|
25
|
+
"assess",
|
|
26
|
+
"risk-assessment",
|
|
27
|
+
"prepare",
|
|
28
|
+
"preflight-evidence",
|
|
29
|
+
"implement",
|
|
30
|
+
"verify",
|
|
31
|
+
"review",
|
|
32
|
+
"rollback-check",
|
|
33
|
+
"done"
|
|
34
|
+
],
|
|
35
|
+
"requiredEvidence": [
|
|
36
|
+
"targeted-tests",
|
|
37
|
+
"regression-check",
|
|
38
|
+
"diff-inspection",
|
|
39
|
+
"security-or-data-check",
|
|
40
|
+
"independent-review",
|
|
41
|
+
"rollback-plan"
|
|
42
|
+
],
|
|
43
|
+
"assessedAt": "2026-10-10T22:17:29Z",
|
|
44
|
+
"summary": "Corriger dix refus et reprises de verify relevés en 7.x et 8.1 : lot documentaire accepté sur observation en quick, validation protégée non bloquante refusée dès prepare ou plan, troisième voie de reprise et --refresh, statut sans stale après done, dérogation sur un contrôle présent dans deux preuves, motif dédié pour le pré-vol périmé, messages de reconcile et de assess. Décisions dans need.md."
|
|
45
|
+
}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"contractId": "KKS-530:standard:prepare:v4",
|
|
4
|
+
"issueId": "KKS-530",
|
|
5
|
+
"profile": "standard",
|
|
6
|
+
"guardrails": true,
|
|
7
|
+
"activity": "prepare",
|
|
8
|
+
"objective": "Corriger dix refus et reprises de verify relevés en 7.x et 8.1 : lot documentaire accepté sur observation en quick, validation protégée non bloquante refusée dès prepare ou plan, troisième voie de reprise et --refresh, statut sans stale après done, dérogation sur un contrôle présent dans deux preuves, motif dédié pour le pré-vol périmé, messages de reconcile et de assess. Décisions dans need.md.",
|
|
9
|
+
"featurePath": ".specify/specs/041-kks-530-verify-refusals-recovery",
|
|
10
|
+
"inputs": [
|
|
11
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/need.md",
|
|
12
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/assessment.json",
|
|
13
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/workflow-state.json",
|
|
14
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment.md"
|
|
15
|
+
],
|
|
16
|
+
"allowedActions": [
|
|
17
|
+
"read",
|
|
18
|
+
"execute"
|
|
19
|
+
],
|
|
20
|
+
"constraints": [
|
|
21
|
+
"Respecter strictement l'objectif et le perimetre du contrat.",
|
|
22
|
+
"Le besoin de reference est .specify/specs/041-kks-530-verify-refusals-recovery/need.md ; en cas d'ecart avec objective, il fait foi.",
|
|
23
|
+
"Preserver les changements utilisateur sans rapport avec cette activite.",
|
|
24
|
+
"Ne pas modifier state.json, workflow-state.json ou assessment.json.",
|
|
25
|
+
"Ne pas creer de commit et ne pas changer de branche.",
|
|
26
|
+
"Signaler tout blocage au lieu de contourner une validation.",
|
|
27
|
+
"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.",
|
|
28
|
+
"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.",
|
|
29
|
+
"Si des sous-agents sont utilises, les lancer au premier plan, jamais en arriere-plan, et attendre qu'ils soient tous termines avant la sortie structuree. La sortie structuree du contrat est le dernier message de l'agent : ne rien envoyer apres elle.",
|
|
30
|
+
"Ne modifier aucun fichier du depot pendant la preparation.",
|
|
31
|
+
"Identifier les composants concernes et une strategie de validation.",
|
|
32
|
+
"Ne pas inventer de precision fonctionnelle manquante.",
|
|
33
|
+
"Dans validationPlan, workingDirectory est toujours relatif a la racine du depot : utiliser '.' pour la racine ou par exemple 'app', jamais un chemin absolu.",
|
|
34
|
+
"Les commandes de validation sont des listes d'arguments sans shell implicite : ne pas utiliser sh, bash, zsh, cmd ou powershell.",
|
|
35
|
+
"Pour npm, pnpm, yarn ou bun, utiliser uniquement test, un script dont le nom commence par test, check, lint, verify ou build, ou le controle non mutatif format:check; ne jamais lancer un script format qui ecrit les fichiers.",
|
|
36
|
+
"rg est autorise pour les inspections en lecture seule, sans option --pre.",
|
|
37
|
+
"Executables de validation autorises par defaut : bun, cargo, devflow, dotnet, eslint, git, go, gradle, gradlew, make, mvn, mvnw, mypy, nginx, nox, npm, pnpm, pyright, pytest, rg, ruff, tox, tsc, uv, yarn; python est limite a -m compileall, pytest ou unittest.",
|
|
38
|
+
"uv run accepte avant l'outil uniquement les options --all-extras, --all-groups, --extra, --frozen, --group, --isolated, --locked, --no-dev, --no-project, --no-sync, --offline, --python, --quiet, -p, -q, en forme separee (--python 3.12, pas --python=3.12); --python/-p exige un numero de version, jamais un chemin d'interpreteur; toute autre option de uv run est refusee.",
|
|
39
|
+
"Maven et Gradle acceptent uniquement les taches test, check, lint, verify ou build; mvn clean verify est refuse (clean est hors politique). Le fichier de projet Maven (-f/--file) et le repertoire de projet Gradle (-p/--project-dir) acceptent un chemin relatif au depot, sans '..', en forme separee (mvn -B -f api/pom.xml verify).",
|
|
40
|
+
"Aucun shell implicite ni operateur |, &&, ; ou redirection; aucune expression non resolue de type double accolade dans une commande.",
|
|
41
|
+
"Un executable hors liste, dont docker, requiert une approbation explicite pour la validation exacte avant son execution : renseigner approvalReason dans validationPlan, puis faire approuver son identifiant par le superviseur.",
|
|
42
|
+
"Pour un fichier cree par l'activite, ne pas utiliser git ls-files --error-unmatch : un fichier non indexe serait refuse a tort. Verifier sa presence dans le systeme de fichiers, par exemple avec rg --files -g CHEMIN, sans indexer ni committer les changements.",
|
|
43
|
+
"Les garde-fous sont actifs : inclure dans validationPlan au moins une validation bloquante explicitement consacree a la securite, aux donnees, a l'authentification, a une migration ou au rollback, dont id ou purpose contient l'un de ces termes."
|
|
44
|
+
],
|
|
45
|
+
"completionCriteria": [
|
|
46
|
+
"Le perimetre et les fichiers probablement concernes sont identifies.",
|
|
47
|
+
"L'approche d'implementation et les validations sont resumees.",
|
|
48
|
+
"Les risques ou blocages restants sont explicites."
|
|
49
|
+
],
|
|
50
|
+
"requiredEvidence": [],
|
|
51
|
+
"expectedOutput": {
|
|
52
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
53
|
+
"$id": "https://devflow.dev/schemas/activity-result/v1",
|
|
54
|
+
"title": "Devflow Activity Result v1",
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": [
|
|
57
|
+
"schemaVersion",
|
|
58
|
+
"contractId",
|
|
59
|
+
"status",
|
|
60
|
+
"summary",
|
|
61
|
+
"changedFiles",
|
|
62
|
+
"checks",
|
|
63
|
+
"evidence",
|
|
64
|
+
"remainingRisks",
|
|
65
|
+
"blockers",
|
|
66
|
+
"validationPlan"
|
|
67
|
+
],
|
|
68
|
+
"properties": {
|
|
69
|
+
"schemaVersion": {
|
|
70
|
+
"type": "integer",
|
|
71
|
+
"const": 1
|
|
72
|
+
},
|
|
73
|
+
"contractId": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"minLength": 1
|
|
76
|
+
},
|
|
77
|
+
"status": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"enum": [
|
|
80
|
+
"completed",
|
|
81
|
+
"blocked"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"summary": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"minLength": 1
|
|
87
|
+
},
|
|
88
|
+
"changedFiles": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"minLength": 1
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"checks": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"items": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"required": [
|
|
100
|
+
"command",
|
|
101
|
+
"exitCode",
|
|
102
|
+
"status"
|
|
103
|
+
],
|
|
104
|
+
"properties": {
|
|
105
|
+
"id": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"minLength": 1
|
|
108
|
+
},
|
|
109
|
+
"command": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"minLength": 1
|
|
112
|
+
},
|
|
113
|
+
"exitCode": {
|
|
114
|
+
"type": "integer"
|
|
115
|
+
},
|
|
116
|
+
"status": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"enum": [
|
|
119
|
+
"passed",
|
|
120
|
+
"failed"
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"additionalProperties": false
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"evidence": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"items": {
|
|
130
|
+
"type": "object",
|
|
131
|
+
"required": [
|
|
132
|
+
"id",
|
|
133
|
+
"outcome",
|
|
134
|
+
"report"
|
|
135
|
+
],
|
|
136
|
+
"properties": {
|
|
137
|
+
"id": {
|
|
138
|
+
"type": "string",
|
|
139
|
+
"minLength": 1
|
|
140
|
+
},
|
|
141
|
+
"outcome": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"enum": [
|
|
144
|
+
"passed",
|
|
145
|
+
"failed"
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
"report": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"minLength": 1
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"additionalProperties": false
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"remainingRisks": {
|
|
157
|
+
"type": "array",
|
|
158
|
+
"items": {
|
|
159
|
+
"type": "string"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"blockers": {
|
|
163
|
+
"type": "array",
|
|
164
|
+
"items": {
|
|
165
|
+
"type": "string"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"validationPlan": {
|
|
169
|
+
"type": "array",
|
|
170
|
+
"minItems": 1,
|
|
171
|
+
"maxItems": 10,
|
|
172
|
+
"items": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"required": [
|
|
175
|
+
"id",
|
|
176
|
+
"command",
|
|
177
|
+
"purpose",
|
|
178
|
+
"blocking",
|
|
179
|
+
"timeoutSeconds",
|
|
180
|
+
"workingDirectory"
|
|
181
|
+
],
|
|
182
|
+
"properties": {
|
|
183
|
+
"id": {
|
|
184
|
+
"type": "string",
|
|
185
|
+
"minLength": 1
|
|
186
|
+
},
|
|
187
|
+
"command": {
|
|
188
|
+
"type": "array",
|
|
189
|
+
"minItems": 1,
|
|
190
|
+
"items": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"minLength": 1
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"purpose": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"minLength": 1
|
|
198
|
+
},
|
|
199
|
+
"blocking": {
|
|
200
|
+
"type": "boolean"
|
|
201
|
+
},
|
|
202
|
+
"timeoutSeconds": {
|
|
203
|
+
"type": "integer",
|
|
204
|
+
"minimum": 1,
|
|
205
|
+
"maximum": 3600
|
|
206
|
+
},
|
|
207
|
+
"workingDirectory": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"minLength": 1,
|
|
210
|
+
"description": "Repertoire relatif a la racine du depot. Utiliser '.' pour la racine ou 'app'. Les chemins absolus et '..' sont interdits."
|
|
211
|
+
},
|
|
212
|
+
"approvalReason": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"minLength": 1
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"additionalProperties": false
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"additionalProperties": false
|
|
222
|
+
}
|
|
223
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contractId": "KKS-530:standard:prepare:v4",
|
|
4
|
+
"status": "completed",
|
|
5
|
+
"summary": "Préparation faite sur lecture du code 8.2.0 (HEAD d6fa2b6), sans modification du dépôt. Aucun test n'a été exécuté pendant cette activité (session en lecture seule) : la durée de la suite complète n'est pas mesurée.\n\nFICHIERS PROBABLEMENT CONCERNÉS\n- src/devflow_cli/core/automatic_evidence.py (V1)\n- src/devflow_cli/core/adaptive_runner.py (V2, 6dcddf40, b7652ba5)\n- src/devflow_cli/core/activity_contracts.py (consigne V2 dans les contraintes de prepare/plan, type d'erreur du pré-vol périmé)\n- src/devflow_cli/core/waivers.py (1330a5e8)\n- src/devflow_cli/commands/adaptive.py (V3, V4, reprise 6dcddf40, message b7652ba5, sortie structurée absente)\n- src/devflow_cli/commands/assess.py (a05f4fe6)\n- src/devflow_cli/core/worklog.py (affichage d'une preuve ciblée sans commande, si nécessaire)\n- tests : test_automatic_evidence.py, test_adaptive_runner.py, test_cmd_adaptive.py, test_waivers.py, test_cmd_assess.py, test_activity_contracts.py, test_guardrails.py\n- docs/cli-reference.md, docs/activity-contracts.md, docs/pipeline.md, README.md, docs/pipeline-reference.generated.md (si docs-sync le régénère), CHANGELOG.md, docs/releases/8.3.0.md, pyproject.toml, src/devflow_cli/__init__.py, uv.lock\n\nAPPROCHE PAR POINT (un test de présence du défaut avant chaque correction ; défaut absent = test de non-régression seul)\n- V1 — Constat qui corrige R1 : adaptive_runner.py:626 enregistre déjà la liste OBSERVÉE dans changedFiles de implement-result.json ; la liste déclarée n'y figure qu'en cas d'écart (observation.declaredChangedFiles). Mais cette liste date de la fin d'implement. Source retenue : recalcul au moment de verify par files_since_base(project_root, feature_dir, ActivityBase.from_dict(state.implementBase, feature_path=…), issue_id=…) (activity_base.py:201), implementBase étant conservée après implement. Condition fermée : profil quick, guardrails_active(state) faux, aucune commande retenue (le cas qui sort aujourd'hui en no-safe-validation, automatic_evidence.py:565), au moins un fichier observé, tous documentaires. Prédicat unique extrait de _non_document_fingerprint (l.309-312) et réutilisé par lui, empreinte inchangée. Suppression : un fichier documentaire supprimé (empreinte « deleted ») compte comme documentaire par son chemin. Renommage : le diff est fait avec --no-renames, l'ancien chemin apparaît donc ; src/a.py → docs/a.md est refusé. Lien symbolique (empreinte « symlink: ») : non documentaire, refus. Base inobservable (BaseObservationError, erreur git) : non éligible, comportement actuel. Dans ce cas, checks_passed (l.664, bool(results)) accepte la liste vide, diff-inspection reste exécutée sur la liste observée et exigée.\n- V1, forme de la preuve — Lecteurs de evidence/targeted-check.json inventoriés : worklog.py:42-285 (lecture par .get, tolère commands vide et clés inconnues), waivers.py:_find_failed_command (.get(\"commands\")), remediation.py:195 (liste les fichiers). read_adaptive_state et adaptive status ne lisent pas le fichier, seulement l'entrée evidence de workflow-state.json (chemin, source, outcome, worktree). Aucun lecteur ne valide les clés ni schemaVersion des fichiers de preuve. Les champs existants (schemaVersion, id, outcome, startedAt, completedAt, commands, worktreeMutations, waiversApplied) n'ont aucun champ de texte : la mention explicite exige une clé. Voir remainingRisks (décision à prendre).\n- V2 — Insertion dans _validated_result (adaptive_runner.py:718-744), après la boucle validate_planned_command et avant le contrôle existant « aucune validation bloquante protégée » : si contract.guardrails, toute validation is_protected_validation(id, purpose) avec blocking faux lève ValueError (donc invalid-result pour run, reconcile et reconcile --result). Consigne ajoutée aux contraintes de prepare et plan quand les garde-fous sont actifs (texte dans constraints, forme du contrat inchangée). Un test fige d'abord la règle actuelle de security-or-data-check (l.671-675), non modifiée.\n- V3 — _verify_recovery reçoit refresh depuis _execute_local_verification ; la commande verify de toutes les reprises porte --refresh quand refresh est vrai ; kind check-failed gagne une troisième commande, libellé proposé : « voie 3 : echec passager (reseau, conteneur, service externe), relancer la verification ». Champs kind, summary, validations, commands inchangés ; branches approbation et code 127 inchangées hors --refresh.\n- V4 — _operational_status (adaptive.py:1251-1252) : ensemble stale vide quand state.status == \"completed\". Appelants vérifiés : commande status (l.216) et _print_completion_summary (l.1335) ; aucune gate ne l'appelle (les gates passent par ensure_fresh_devflow_evidence).\n- V6 — test seul, cas PREP-mpl-header, dans tests/test_cmd_adaptive.py.\n- 1330a5e8 — _find_failed_command (waivers.py:190) : plusieurs occurrences acceptées si toutes portent la même commande, le même dossier de travail, blocking vrai, succeeded faux, sans timeout ; une occurrence dans PROTECTED_EVIDENCE ou des occurrences incohérentes refusent l'ensemble avec le motif. Départage déterministe : plus grand (completedAt, id de preuve) ; à horodatage égal entre targeted-tests et regression-check, targeted-tests. Les refus de create_validation_waiver restent tels quels ; format de waivers.json inchangé.\n- 6dcddf40 — sous-classe de ValueError levée par validate_preflight_evidence pour le seul cas « desuete apres » (activity_contracts.py:208), interceptée avant le ValueError générique dans adaptive_runner.py:158. Motif proposé : preflight-evidence-stale ; code de sortie 3 (gate non satisfaite) car hors INVALID_CONTRACT_REASONS, au lieu de 4 aujourd'hui. Reprise « devflow adaptive reopen ID preflight-evidence --reason MOTIF » en texte et en --json, proposée seulement si _reopenable. Fichier absent, sections manquantes, secret détecté gardent unsupported-activity.\n- b7652ba5 — reconcile_current_activity (adaptive_runner.py:340) : absence du fichier de tentative traitée à part (message : aucune tentative échouée à réconcilier ; après un résultat blocked, lever le blocage puis relancer adaptive run) ; motif reconcile-refused conservé (test existant test_reconcile_refuses_without_attempt_fiche) ; fiche illisible ou invalide garde son libellé.\n- a05f4fe6 — assess.py:141 : « Suite : devflow adaptive start » seulement si validate_need_statement réussit (même test que adaptive start) ; sinon rappel de rédiger need.md puis de lancer start ; code de sortie inchangé.\n- Sortie structurée absente — _missing_output_recovery (adaptive.py:1489) : ajout de « devflow adaptive run ID --agent AGENT » à côté de la réconciliation pour les activités réconciliables.\n- V5 : aucun code.\n\nVALIDATIONS : tests ciblés des modules touchés, suite complète, contrôle protégé bloquant sur les gates (dérogations, garde-fous, preuves automatiques), docs-sync, concordance de version et notes de retour à la 8.2.0. Toutes sont bloquantes et réussissent en code 0.",
|
|
6
|
+
"changedFiles": [],
|
|
7
|
+
"checks": [
|
|
8
|
+
{
|
|
9
|
+
"id": "depot-sans-modification-suivie",
|
|
10
|
+
"command": "git diff --quiet HEAD",
|
|
11
|
+
"exitCode": 0,
|
|
12
|
+
"status": "passed"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"evidence": [],
|
|
16
|
+
"remainingRisks": [
|
|
17
|
+
"DÉCISION À PRENDRE AVANT implement (V1, R4, article III) : consigner « lot documentaire » dans targeted-check.json exige une clé nouvelle, aucun champ existant ne peut porter la mention. Recommandation : clé optionnelle additive (par exemple documentaryLot, liste des fichiers observés), schemaVersion 1 conservé, sur le précédent de executionFindings (présent dans la seule preuve security-or-data-check sous la même version) et parce qu'aucun lecteur ne valide ces fichiers ; la 8.2.0 ignore la clé, le retour arrière reste lisible. C'est une interprétation de l'article III (« tout changement de format persistant augmente sa version ») que Kelly doit confirmer. Lecture stricte : schemaVersion 2 pour cette preuve et livraison qui n'est plus une 8.3.0 mineure ; dans ce cas prepare doit être rouvert, deux validations du plan citant 8.3.0.",
|
|
18
|
+
"Lecture de V1 retenue, à confirmer : le passage sans commande ne s'applique que lorsqu'aucun contrôle n'est retenu (cas no-safe-validation de la friction 0df6465d). Dans un dépôt où la stack fournit une commande même pour un lot documentaire (pyproject.toml présent : AUTO-PYTHON lance pytest), le contrôle reste exécuté. need.md écrit « sans commande exécutée » sans distinguer ces deux cas ; la lecture retenue est la plus restrictive et satisfait les attendus et les tests listés.",
|
|
19
|
+
"V1 : un fichier non documentaire du dossier de la feature modifié depuis la base d'implement (need.md par exemple) fait refuser le lot ; conséquence directe de « tous les fichiers observés ».",
|
|
20
|
+
"6dcddf40 : le motif dédié fait passer le code de sortie de ce cas de 4 (contrat invalide) à 3 (gate non satisfaite). Nom proposé preflight-evidence-stale, non fixé par need.md. docs/cli-reference.md ne contient pas de « table des motifs stables » : unsupported-activity n'y apparaît nulle part ; seules existent la table des reprises de verify (l.265) et la table des codes de sortie (l.289). Le motif sera documenté dans la section des reprises de adaptive run, sauf indication contraire.",
|
|
21
|
+
"V2 : is_protected_validation détecte par sous-chaîne (auth, data, donnee, secret, securite, security, rollback, migration, permission) ; faux positifs possibles sur une validation non bloquante sans rapport, corrigés par reconcile --result (R5, accepté).",
|
|
22
|
+
"1330a5e8 : départage à horodatage égal par ordre de l'identifiant de preuve (targeted-tests retenue devant regression-check) ; règle proposée, need.md dit seulement « la preuve la plus récente ».",
|
|
23
|
+
"R14 : le parcours est jugé par la 8.2.0 installée ; ne pas réinstaller l'outil global avant done. Les validations du plan exécutent le code modifié par uv run.",
|
|
24
|
+
"Non exécuté pendant cette préparation : uv run pytest, ./tests/run-tests.sh, uv run devflow docs-sync --check. Durée de la suite complète non mesurée ; le délai de 2400 s est une estimation.",
|
|
25
|
+
"./tests/run-tests.sh (lancé par la CI) n'est pas dans le plan : exécutable hors liste, approbation requise ; le lot ne touche ni gabarits ni scripts bash. À lancer à la main avant la PR.",
|
|
26
|
+
"Comportement sur les projets à l'origine des frictions (kreview, kbudget) non vérifiable ici : confirmation au premier parcours réel en 8.3.0, avant résolution au journal."
|
|
27
|
+
],
|
|
28
|
+
"blockers": [],
|
|
29
|
+
"validationPlan": [
|
|
30
|
+
{
|
|
31
|
+
"id": "tests-cibles-verify-reprises",
|
|
32
|
+
"command": [
|
|
33
|
+
"uv",
|
|
34
|
+
"run",
|
|
35
|
+
"pytest",
|
|
36
|
+
"-q",
|
|
37
|
+
"tests/test_automatic_evidence.py",
|
|
38
|
+
"tests/test_adaptive_runner.py",
|
|
39
|
+
"tests/test_cmd_adaptive.py",
|
|
40
|
+
"tests/test_cmd_assess.py",
|
|
41
|
+
"tests/test_activity_contracts.py"
|
|
42
|
+
],
|
|
43
|
+
"purpose": "Tests des dix points : lot documentaire en quick, refus du plan en prepare et plan, trois voies de reprise et --refresh, statut sans stale, motif du pre-vol perime, messages de reconcile et de assess",
|
|
44
|
+
"blocking": true,
|
|
45
|
+
"timeoutSeconds": 1500,
|
|
46
|
+
"workingDirectory": "."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "securite-integrite-des-gates",
|
|
50
|
+
"command": [
|
|
51
|
+
"uv",
|
|
52
|
+
"run",
|
|
53
|
+
"pytest",
|
|
54
|
+
"-q",
|
|
55
|
+
"tests/test_waivers.py",
|
|
56
|
+
"tests/test_guardrails.py",
|
|
57
|
+
"tests/test_automatic_evidence.py"
|
|
58
|
+
],
|
|
59
|
+
"purpose": "Controle de securite : integrite des gates. Derogation refusee avec garde-fous, sur preuve protegee et sur validation protegee ; lot documentaire limite a quick sans garde-fous et decide par l'observation ; regle de security-or-data-check inchangee",
|
|
60
|
+
"blocking": true,
|
|
61
|
+
"timeoutSeconds": 1200,
|
|
62
|
+
"workingDirectory": "."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "suite-complete",
|
|
66
|
+
"command": [
|
|
67
|
+
"uv",
|
|
68
|
+
"run",
|
|
69
|
+
"pytest",
|
|
70
|
+
"-q"
|
|
71
|
+
],
|
|
72
|
+
"purpose": "Suite complete pytest, non-regression de l'ensemble de la CLI",
|
|
73
|
+
"blocking": true,
|
|
74
|
+
"timeoutSeconds": 2400,
|
|
75
|
+
"workingDirectory": "."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "docs-sync",
|
|
79
|
+
"command": [
|
|
80
|
+
"uv",
|
|
81
|
+
"run",
|
|
82
|
+
"devflow",
|
|
83
|
+
"docs-sync",
|
|
84
|
+
"--check"
|
|
85
|
+
],
|
|
86
|
+
"purpose": "Documentation generee synchronisee avec le code",
|
|
87
|
+
"blocking": true,
|
|
88
|
+
"timeoutSeconds": 300,
|
|
89
|
+
"workingDirectory": "."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "version-concordance",
|
|
93
|
+
"command": [
|
|
94
|
+
"rg",
|
|
95
|
+
"-n",
|
|
96
|
+
"8\\.3\\.0",
|
|
97
|
+
"pyproject.toml",
|
|
98
|
+
"src/devflow_cli/__init__.py",
|
|
99
|
+
"CHANGELOG.md"
|
|
100
|
+
],
|
|
101
|
+
"purpose": "Version 8.3.0 presente dans pyproject.toml, __init__.py et CHANGELOG.md",
|
|
102
|
+
"blocking": true,
|
|
103
|
+
"timeoutSeconds": 60,
|
|
104
|
+
"workingDirectory": "."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": "rollback-notes-de-version",
|
|
108
|
+
"command": [
|
|
109
|
+
"rg",
|
|
110
|
+
"-n",
|
|
111
|
+
"8\\.2\\.0",
|
|
112
|
+
"docs/releases/8.3.0.md"
|
|
113
|
+
],
|
|
114
|
+
"purpose": "Rollback : les notes 8.3.0 existent et citent le retour a la 8.2.0",
|
|
115
|
+
"blocking": true,
|
|
116
|
+
"timeoutSeconds": 60,
|
|
117
|
+
"workingDirectory": "."
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"observation": {
|
|
121
|
+
"baseRecordedAt": "2026-10-10T22:20:34Z",
|
|
122
|
+
"baseHead": "d6fa2b6af73f794697b418bbf5290bb8b173b215",
|
|
123
|
+
"observedAt": "2026-10-10T22:23:51Z",
|
|
124
|
+
"head": "d6fa2b6af73f794697b418bbf5290bb8b173b215"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contractId": "KKS-530:standard:risk-assessment:v4",
|
|
4
|
+
"status": "completed",
|
|
5
|
+
"summary": "risk-assessment.md rédigé à partir de need.md, de la constitution et de la lecture du code 8.2.0 : matrice de 16 risques (probabilité, impact, mitigation, responsable), analyses sécurité, données, migrations (aucune) et rollback avec déclencheurs. Deux risques critiques : R1 (V1 décidée sur la liste déclarée par l'agent — constat : verify lit aujourd'hui changedFiles d'implement-result.json et le bloc observation ne contient pas la liste des fichiers observés) et R7 (dérogation rendue possible sur un contrôle protégé). Aucun blocage ; six points à trancher en prepare.",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
".specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment.md"
|
|
8
|
+
],
|
|
9
|
+
"checks": [
|
|
10
|
+
{
|
|
11
|
+
"id": "structure-risk-assessment",
|
|
12
|
+
"command": "f=.specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment.md && grep -q \"^## Matrice des risques\" $f && grep -q \"^## Sécurité\" $f && grep -q \"^## Données\" $f && grep -q \"^## Rollback\" $f && test \"$(grep -c '^| R[0-9]' $f)\" -eq 16 && ! grep -nE \"TODO|TBD|\\[\\.\\.\\.\\]|XXX\" $f",
|
|
13
|
+
"exitCode": 0,
|
|
14
|
+
"status": "passed"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"evidence": [
|
|
18
|
+
{
|
|
19
|
+
"id": "risk-assessment-structure",
|
|
20
|
+
"outcome": "passed",
|
|
21
|
+
"report": "Sections Matrice des risques, Sécurité, Données, Rollback présentes ; 16 lignes de risque avec probabilité, impact, mitigation et responsable ; aucun placeholder ; seul risk-assessment.md a été écrit (git status ne montre aucun fichier suivi modifié)."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "risk-assessment-coherence",
|
|
25
|
+
"outcome": "passed",
|
|
26
|
+
"report": "Contenu fondé sur need.md (V1 à V6 et cinq points inclus), la constitution 2.0.0 et le code 8.2.0 lu (automatic_evidence.py, waivers.py, adaptive_runner.py, activity_base.py, activity_contracts.py, commands/adaptive.py, commands/assess.py, operational.py). Risques critiques R1 et R7, mitigations et déclencheurs de rollback explicites. Aucun test exécuté : activité documentaire."
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"remainingRisks": [
|
|
30
|
+
"R1 (critique) : V1 doit se fonder sur des fichiers observés par la CLI ; aujourd'hui verify lit changedFiles du résultat d'implement et le bloc observation ne porte pas la liste observée. Source à fixer en prepare avant toute implémentation de V1.",
|
|
31
|
+
"R7 (critique) : l'assouplissement de adaptive waive ne doit lever que l'ambiguïté ; chaque occurrence doit rester soumise aux refus de protection (garde-fous, preuve protégée, validation protégée, délai dépassé).",
|
|
32
|
+
"R3 : la définition existante de « documentaire » inclut tout README.md quelle que soit sa profondeur ; traitement des suppressions, renommages et liens symboliques à décider en prepare.",
|
|
33
|
+
"R4 : une preuve targeted-check sans commande peut exiger un champ nouveau, donc un changement de format persistant et une requalification de la version 8.3.0 ; inventaire des lecteurs à faire en prepare.",
|
|
34
|
+
"R5 : V2 peut refuser à tort une validation non bloquante dont l'id ou le purpose contient un terme protégé par sous-chaîne (data, auth, secret…) ; correction par reconcile --result.",
|
|
35
|
+
"R11 : nom, code de sortie et périmètre du motif dédié du pré-vol périmé à fixer en prepare ; unsupported-activity appartient aujourd'hui à INVALID_CONTRACT_REASONS.",
|
|
36
|
+
"R14 : ne pas réinstaller l'outil global avant done ; le plan de ce parcours doit contenir une validation protégée bloquante qui renvoie 0 en cas de succès.",
|
|
37
|
+
"Non vérifiable dans ce parcours : comportement sur les projets réels à l'origine des frictions (kreview, kbudget) ; confirmation au premier parcours réel en 8.3.0."
|
|
38
|
+
],
|
|
39
|
+
"blockers": [],
|
|
40
|
+
"observation": {
|
|
41
|
+
"baseRecordedAt": "2026-10-10T22:17:30Z",
|
|
42
|
+
"baseHead": "d6fa2b6af73f794697b418bbf5290bb8b173b215",
|
|
43
|
+
"observedAt": "2026-10-10T22:20:34Z",
|
|
44
|
+
"head": "d6fa2b6af73f794697b418bbf5290bb8b173b215"
|
|
45
|
+
}
|
|
46
|
+
}
|