devflow-cli 10.0.1__tar.gz → 10.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/.gitignore +2 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/activity-contract.json +163 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/agent-execution.json +15 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/assessment.json +34 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/evidence/diff-inspection.json +31 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/evidence/targeted-check.json +29 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/implement-result.json +63 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/need.md +58 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/preflight-evidence-result.json +67 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/preflight-evidence.md +157 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/workflow-state.json +58 -0
- devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/worklog.md +66 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/CHANGELOG.md +8 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/PKG-INFO +1 -1
- devflow_cli-10.0.2/docs/releases/10.0.2.md +40 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/pyproject.toml +1 -1
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/__init__.py +1 -1
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/conftest.py +53 -15
- devflow_cli-10.0.2/tests/test_telemetry_guard.py +156 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/uv.lock +1 -1
- devflow_cli-10.0.1/tests/test_telemetry_guard.py +0 -56
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.ai/mcp/mcp.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.analyze.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.checklist.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.clarify.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.constitution.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.implement.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.specify.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.claude/commands/speckit.taskstoissues.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.github/workflows/ci.yml +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.github/workflows/release.yml +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.github/workflows/version-check.yml +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/init-options.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/memory/constitution.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/scripts/bash/common.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/scripts/bash/setup-plan.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/001-cli-init-options/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/002-cascade-regen/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/003-usecase-guides/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/005-implement-subphases/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/005-implement-subphases/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/005-implement-subphases/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/005-implement-subphases/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/006-template-upgrade/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/007-project-documentation/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/008-hardening-bugs/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/008-hardening-bugs/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/008-hardening-bugs/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/009-ci-pypi/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/009-ci-pypi/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/009-ci-pypi/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/009-ci-pypi/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/010-flexible-pipeline/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/011-cursor-support/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/011-cursor-support/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/011-cursor-support/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/011-cursor-support/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/011-cursor-support/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/013-align-truth-sources/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/013-align-truth-sources/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/016-harden-state-machine/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/016-harden-state-machine/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/016-harden-state-machine/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/019-quality-hardening/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/019-quality-hardening/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/019-quality-hardening/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/019-quality-hardening/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/019-quality-hardening/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/021-review-iterations/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/021-review-iterations/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/021-review-iterations/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/021-review-iterations/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/022-fix-regen-command/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/022-fix-regen-command/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/022-fix-regen-command/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/023-add-logging/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/023-add-logging/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/023-add-logging/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/023-add-logging/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/024-validate-constants/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/024-validate-constants/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/024-validate-constants/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/024-validate-constants/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/025-harden-tests/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/025-harden-tests/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/025-harden-tests/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/025-harden-tests/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/prepare-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/028-kks-411-feature-dir-ignored/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/prepare-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/029-kks-413/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/omission-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/research-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/research.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/030-kks-416/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-001/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/attempts/reopen-002/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/contracts.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/issue-precommit-review.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/omission-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/031-kks-414/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/032-kks-419/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/033-kks-420-stale-commands-warning/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/contracts.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/omission-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/034-kks-421-decouple-guardrails/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/evidence/targeted-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/035-kks-428-constitution-v2/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/036-kks-433-run-progress/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/037-kks-432-linear-sync/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempt-discard-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/discard-001/preflight-evidence-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/implement-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/attempts/reopen-001/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/contracts.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/implement-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/reconcile-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/038-kks-508-activity-base/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-002/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/attempts/reopen-003/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/039-kks-509-plan-correction-recovery/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/040-kks-429-delegation-structured-output/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/041-kks-530-verify-refusals-recovery/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-001/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-002/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-002/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-002/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-002/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-002/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/attempts/reopen-002/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/042-kks-531-amended-need-artifact-recovery/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/attempts/reopen-001/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/043-kks-430-hygiene-journal-docs-tests/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/prepare-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/reconcile-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/044-kks-545-reopen-keeps-gate-evidence/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/contracts-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/contracts.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/045-kks-540-attempt-card-v3-input-imputation/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/evidence/regression-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/evidence/security-or-data-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/evidence/targeted-tests.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/prepare-attempt.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/prepare-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/reconcile-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/risk-assessment-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/risk-assessment.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/rollback-check-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/046-kks-547-gates-observation-leftovers/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/attempts/reopen-001/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/attempts/reopen-001/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/attempts/reopen-001/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/attempts/reopen-001/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/evidence/requirements-coverage.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/evidence/test-suite.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/plan-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/plan.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/reopen-log.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/review-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/spec-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/spec.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/tasks-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/tasks.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/validation-approvals.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/047-kks-553-cli-surface-reduction/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/.gitignore +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/activity-contract.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/agent-execution.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/assessment.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/evidence/diff-inspection.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/evidence/targeted-check.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/implement-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/need.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/preflight-evidence-result.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/preflight-evidence.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/workflow-state.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/specs/048-kks-554-contract-guidance/worklog.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/agent-file-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/checklist-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/constitution-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/plan-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/spec-template-brownfield.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/spec-template-greenfield.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/spec-template-microservices.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/spec-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/.specify/templates/tasks-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/CLAUDE.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/CONTRIBUTING.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/LICENSE +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/README.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/commands/devflow.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/commands/devflow.status.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/activity-contracts.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/adr/0001-v4-workflow-compatibility.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/adr/0002-v5-rupture-and-provenance.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/adr/0003-v7-guardrails-rupture.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/cli-reference.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/commands-reference.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/guides/brownfield.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/guides/greenfield.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/guides/microservices.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/index.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/pipeline-reference.generated.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/pipeline.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/10.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/10.0.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/4.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/4.0.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/4.0.3.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/4.0.4.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/4.0.5.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/4.0.6.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/5.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.1.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.1.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.1.2.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.2.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.3.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.3.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/6.4.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/7.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/7.0.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/7.1.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/7.1.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/7.2.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.1.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.2.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.3.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.4.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.4.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.5.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/8.5.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/9.0.0.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/releases/9.0.1.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/spec-driven.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/v5-decisions.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/v6-decisions.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/docs/v7-decisions.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/scripts/check_release.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/adapters/__init__.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/adapters/agents.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/adapters/linear.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/cli.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/__init__.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/adaptive.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/assess.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/check.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/docs_sync.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/feature.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/feedback.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/init_cmd.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/status.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/commands/upgrade_cmd.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/__init__.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/activity_base.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/activity_contracts.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/adaptive_runner.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/adaptive_workflow.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/agent_failure.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/agent_run_marker.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/assessment.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/automatic_evidence.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/contract_schemas.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/docgen.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/feedback.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/git.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/installer.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/manifest.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/operational.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/redaction.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/remediation.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/result_template.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/run_progress.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/runtime_backup.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/staleness.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/telemetry.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/traceability.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/validation_approvals.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/validators.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/verification.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/waivers.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/worklog.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/core/worktree_snapshot.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/schemas/activity-contract-v4.schema.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/schemas/activity-result-v2.schema.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/schemas/assessment-v4.schema.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/schemas/workflow-state-v6.schema.json +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/utils/__init__.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/utils/console.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/utils/logging.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/utils/paths.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/src/devflow_cli/utils/strings.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/templates/constitution-template.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/fixtures/agents/mock-agent.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/fixtures/commands/mock-command.md +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/run-tests.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test-helpers.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test-template-variants.sh +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_activity_base.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_activity_contracts.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_adaptive_runner.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_adaptive_workflow.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_agent_adapters.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_agent_failure.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_assessment.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_automatic_evidence.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_bash_runner.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cli_surface.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_adaptive.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_assess.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_check.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_docs_sync.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_feature.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_feedback.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_init.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_status.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_cmd_upgrade.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_constants.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_contract_schemas.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_docgen.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_feedback.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_git.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_guardrails.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_installer.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_integration.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_legacy_schema.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_linear_adapter.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_linear_order.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_logging.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_manifest.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_paths.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_paths_project_root.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_release.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_remediation.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_run_progress.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_staleness.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_telemetry.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_traceability.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_validators.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_verification.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_version.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_waivers.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_wheel_adaptive_acceptance.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_wheel_install.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_worklog.py +0 -0
- {devflow_cli-10.0.1 → devflow_cli-10.0.2}/tests/test_worktree_snapshot.py +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"contractId": "KKS-556:quick:implement:v4",
|
|
4
|
+
"issueId": "KKS-556",
|
|
5
|
+
"profile": "quick",
|
|
6
|
+
"guardrails": false,
|
|
7
|
+
"activity": "implement",
|
|
8
|
+
"objective": "Niveau 2 du garde-fou de télémétrie des tests limité aux lignes ajoutées par la suite (projet en dossier temporaire). Aucun code CLI modifié. Décisions dans need.md.",
|
|
9
|
+
"featurePath": ".specify/specs/049-kks-556-telemetry-guard-scope",
|
|
10
|
+
"inputs": [
|
|
11
|
+
".specify/specs/049-kks-556-telemetry-guard-scope/need.md",
|
|
12
|
+
".specify/specs/049-kks-556-telemetry-guard-scope/assessment.json",
|
|
13
|
+
".specify/specs/049-kks-556-telemetry-guard-scope/workflow-state.json",
|
|
14
|
+
".specify/specs/049-kks-556-telemetry-guard-scope/preflight-evidence.md"
|
|
15
|
+
],
|
|
16
|
+
"allowedActions": [
|
|
17
|
+
"read",
|
|
18
|
+
"write",
|
|
19
|
+
"execute"
|
|
20
|
+
],
|
|
21
|
+
"constraints": [
|
|
22
|
+
"Respecter strictement l'objectif et le perimetre du contrat.",
|
|
23
|
+
"Le besoin de reference est .specify/specs/049-kks-556-telemetry-guard-scope/need.md ; en cas d'ecart avec objective, il fait foi.",
|
|
24
|
+
"Preserver les changements utilisateur sans rapport avec cette activite.",
|
|
25
|
+
"Ne pas modifier state.json, workflow-state.json ou assessment.json.",
|
|
26
|
+
"Ne pas creer de commit et ne pas changer de branche.",
|
|
27
|
+
"Signaler tout blocage au lieu de contourner une validation.",
|
|
28
|
+
"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.",
|
|
29
|
+
"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.",
|
|
30
|
+
"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.",
|
|
31
|
+
"Limiter les modifications source au changement demande.",
|
|
32
|
+
"Suivre les conventions et les tests existants du depot.",
|
|
33
|
+
"Les preuves de gate sont produites par l'activite locale verify, pas par implement.",
|
|
34
|
+
"Ne pas retourner blocked uniquement parce qu'une validation d'integration exige un service externe inaccessible depuis le sandbox de l'agent (Docker, base de donnees ou reseau) : executer les autres controles, declarer le check echoue et le risque restant, puis retourner completed si le code est coherent et verifiable par verify.",
|
|
35
|
+
"Chaque fichier cree ou modifie se termine par un seul saut de ligne, sans espace en fin de ligne : git diff --check doit etre propre avant la sortie structuree.",
|
|
36
|
+
"Prendre en compte la preuve de pre-vol archivee et ne pas la presenter comme absente."
|
|
37
|
+
],
|
|
38
|
+
"completionCriteria": [
|
|
39
|
+
"Le changement demande est implemente dans le depot.",
|
|
40
|
+
"Les fichiers modifies sont listes dans le resultat.",
|
|
41
|
+
"Les risques ou blocages restants sont explicites."
|
|
42
|
+
],
|
|
43
|
+
"requiredEvidence": [],
|
|
44
|
+
"expectedOutput": {
|
|
45
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
46
|
+
"$id": "https://devflow.dev/schemas/activity-result/v2",
|
|
47
|
+
"title": "Devflow Activity Result v2",
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": [
|
|
50
|
+
"schemaVersion",
|
|
51
|
+
"contractId",
|
|
52
|
+
"status",
|
|
53
|
+
"summary",
|
|
54
|
+
"changedFiles",
|
|
55
|
+
"checks",
|
|
56
|
+
"evidence",
|
|
57
|
+
"remainingRisks",
|
|
58
|
+
"blockers"
|
|
59
|
+
],
|
|
60
|
+
"properties": {
|
|
61
|
+
"schemaVersion": {
|
|
62
|
+
"type": "integer",
|
|
63
|
+
"const": 2
|
|
64
|
+
},
|
|
65
|
+
"contractId": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"minLength": 1
|
|
68
|
+
},
|
|
69
|
+
"status": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"enum": [
|
|
72
|
+
"completed",
|
|
73
|
+
"blocked"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
"summary": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"minLength": 1
|
|
79
|
+
},
|
|
80
|
+
"changedFiles": {
|
|
81
|
+
"type": "array",
|
|
82
|
+
"items": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 1
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"checks": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"required": [
|
|
92
|
+
"command",
|
|
93
|
+
"exitCode",
|
|
94
|
+
"status"
|
|
95
|
+
],
|
|
96
|
+
"properties": {
|
|
97
|
+
"id": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"minLength": 1
|
|
100
|
+
},
|
|
101
|
+
"command": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"minLength": 1
|
|
104
|
+
},
|
|
105
|
+
"exitCode": {
|
|
106
|
+
"type": "integer"
|
|
107
|
+
},
|
|
108
|
+
"status": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"enum": [
|
|
111
|
+
"passed",
|
|
112
|
+
"failed"
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"additionalProperties": false
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"evidence": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"items": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"required": [
|
|
124
|
+
"id",
|
|
125
|
+
"outcome",
|
|
126
|
+
"report"
|
|
127
|
+
],
|
|
128
|
+
"properties": {
|
|
129
|
+
"id": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"minLength": 1
|
|
132
|
+
},
|
|
133
|
+
"outcome": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"enum": [
|
|
136
|
+
"passed",
|
|
137
|
+
"failed"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
"report": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"minLength": 1
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"additionalProperties": false
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"remainingRisks": {
|
|
149
|
+
"type": "array",
|
|
150
|
+
"items": {
|
|
151
|
+
"type": "string"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"blockers": {
|
|
155
|
+
"type": "array",
|
|
156
|
+
"items": {
|
|
157
|
+
"type": "string"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"additionalProperties": false
|
|
162
|
+
}
|
|
163
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"runId": "c27afa4d-d0e7-4504-9aae-3b02c5630287",
|
|
4
|
+
"agent": "claude",
|
|
5
|
+
"activity": "implement",
|
|
6
|
+
"returnCode": 0,
|
|
7
|
+
"durationSeconds": 343.932,
|
|
8
|
+
"finalOutputStatus": "present",
|
|
9
|
+
"finalOutputBytes": 2711,
|
|
10
|
+
"finalOutputDiagnostic": "validated",
|
|
11
|
+
"sessionId": null,
|
|
12
|
+
"timedOut": false,
|
|
13
|
+
"worktreeChanged": true,
|
|
14
|
+
"worktreeChangedFileCount": 7
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 4,
|
|
3
|
+
"issueId": "KKS-556",
|
|
4
|
+
"recommendedProfile": "quick",
|
|
5
|
+
"selectedProfile": "quick",
|
|
6
|
+
"confidence": "high",
|
|
7
|
+
"signals": {
|
|
8
|
+
"scope": "local",
|
|
9
|
+
"ambiguity": "low",
|
|
10
|
+
"risk": "low",
|
|
11
|
+
"contractChange": false,
|
|
12
|
+
"dataOrSecurity": false
|
|
13
|
+
},
|
|
14
|
+
"guardrails": {
|
|
15
|
+
"active": false,
|
|
16
|
+
"reasons": []
|
|
17
|
+
},
|
|
18
|
+
"reasons": [
|
|
19
|
+
"le changement est local, clair, peu risque et ne modifie aucun contrat"
|
|
20
|
+
],
|
|
21
|
+
"activities": [
|
|
22
|
+
"assess",
|
|
23
|
+
"preflight-evidence",
|
|
24
|
+
"implement",
|
|
25
|
+
"verify",
|
|
26
|
+
"done"
|
|
27
|
+
],
|
|
28
|
+
"requiredEvidence": [
|
|
29
|
+
"targeted-check",
|
|
30
|
+
"diff-inspection"
|
|
31
|
+
],
|
|
32
|
+
"assessedAt": "2026-10-19T17:54:04Z",
|
|
33
|
+
"summary": "Niveau 2 du garde-fou de télémétrie des tests limité aux lignes ajoutées par la suite (projet en dossier temporaire). Aucun code CLI modifié. Décisions dans need.md."
|
|
34
|
+
}
|
devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/evidence/diff-inspection.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "diff-inspection",
|
|
4
|
+
"outcome": "passed",
|
|
5
|
+
"generatedAt": "2026-10-19T18:07:31Z",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
"CHANGELOG.md",
|
|
8
|
+
"docs/releases/10.0.2.md",
|
|
9
|
+
"pyproject.toml",
|
|
10
|
+
"src/devflow_cli/__init__.py",
|
|
11
|
+
"tests/conftest.py",
|
|
12
|
+
"tests/test_telemetry_guard.py",
|
|
13
|
+
"uv.lock"
|
|
14
|
+
],
|
|
15
|
+
"findings": [],
|
|
16
|
+
"gitDiffCheck": {
|
|
17
|
+
"id": "AUTO-DIFF",
|
|
18
|
+
"command": [
|
|
19
|
+
"git",
|
|
20
|
+
"diff",
|
|
21
|
+
"--check"
|
|
22
|
+
],
|
|
23
|
+
"blocking": true,
|
|
24
|
+
"returncode": 0,
|
|
25
|
+
"succeeded": true,
|
|
26
|
+
"timedOut": false,
|
|
27
|
+
"workingDirectory": ".",
|
|
28
|
+
"stdout": "",
|
|
29
|
+
"stderr": ""
|
|
30
|
+
}
|
|
31
|
+
}
|
devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/evidence/targeted-check.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "targeted-check",
|
|
4
|
+
"outcome": "passed",
|
|
5
|
+
"startedAt": "2026-10-19T18:07:30Z",
|
|
6
|
+
"completedAt": "2026-10-19T18:07:31Z",
|
|
7
|
+
"commands": [
|
|
8
|
+
{
|
|
9
|
+
"id": "AUTO-PYTHON",
|
|
10
|
+
"command": [
|
|
11
|
+
"uv",
|
|
12
|
+
"run",
|
|
13
|
+
"pytest",
|
|
14
|
+
"-q",
|
|
15
|
+
"tests/conftest.py",
|
|
16
|
+
"tests/test_telemetry_guard.py"
|
|
17
|
+
],
|
|
18
|
+
"blocking": true,
|
|
19
|
+
"returncode": 0,
|
|
20
|
+
"succeeded": true,
|
|
21
|
+
"timedOut": false,
|
|
22
|
+
"workingDirectory": ".",
|
|
23
|
+
"stdout": "..................... [100%]\n21 passed in 0.12s\n",
|
|
24
|
+
"stderr": ""
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"worktreeMutations": [],
|
|
28
|
+
"waiversApplied": []
|
|
29
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"contractId": "KKS-556:quick:implement:v4",
|
|
4
|
+
"status": "completed",
|
|
5
|
+
"summary": "Le niveau 2 du garde-fou (tests/conftest.py) a été réécrit. pytest_sessionstart note la taille du fichier réel par un stat. pytest_sessionfinish appelle la fonction pure leaked_telemetry_projects(path, size_before), qui lit en lecture seule les octets ajoutés depuis cet offset et renvoie les `project` situés sous un dossier temporaire (pytest-of-, gettempdir() résolu, /tmp résolu). Le message d'échec nomme ces projets. Fichier absent, rétréci ou illisible, ainsi qu'une ligne illisible, non JSON ou sans project : aucun échec. Niveau 1 inchangé ; dans src/, seule la constante VERSION change. 16 tests du niveau 2 ont été ajoutés en tmp_path. Version 10.0.2 concordante dans pyproject.toml, __init__.py, uv.lock et CHANGELOG.md ; notes dans docs/releases/10.0.2.md. Simulation du fait 7 rejouée (scratchpad, HOME isolé) : projet réel ajouté → code 0 ; projet sous pytest-of- → code 1, message qui nomme le projet.",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
"CHANGELOG.md",
|
|
8
|
+
"docs/releases/10.0.2.md",
|
|
9
|
+
"pyproject.toml",
|
|
10
|
+
"src/devflow_cli/__init__.py",
|
|
11
|
+
"tests/conftest.py",
|
|
12
|
+
"tests/test_telemetry_guard.py",
|
|
13
|
+
"uv.lock"
|
|
14
|
+
],
|
|
15
|
+
"checks": [
|
|
16
|
+
{
|
|
17
|
+
"id": "targeted-guard-tests",
|
|
18
|
+
"command": "uv run pytest -q tests/test_telemetry_guard.py",
|
|
19
|
+
"exitCode": 0,
|
|
20
|
+
"status": "passed"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "full-suite",
|
|
24
|
+
"command": "uv run pytest -q",
|
|
25
|
+
"exitCode": 0,
|
|
26
|
+
"status": "passed"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "run-tests",
|
|
30
|
+
"command": "./tests/run-tests.sh",
|
|
31
|
+
"exitCode": 0,
|
|
32
|
+
"status": "passed"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "docs-sync",
|
|
36
|
+
"command": "uv run devflow docs-sync --check",
|
|
37
|
+
"exitCode": 0,
|
|
38
|
+
"status": "passed"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "diff-check",
|
|
42
|
+
"command": "git diff --check",
|
|
43
|
+
"exitCode": 0,
|
|
44
|
+
"status": "passed"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"evidence": [],
|
|
48
|
+
"remainingRisks": [
|
|
49
|
+
"Limites acceptées par need.md : un vrai parcours lancé depuis un projet sous /tmp ou gettempdir() ferait échouer la suite à tort ; une fuite d'un sous-processus dont le project n'est pas sous un dossier temporaire ne serait plus détectée.",
|
|
50
|
+
"Une ligne en cours d'écriture concurrente au moment de la lecture finale serait illisible, donc ignorée.",
|
|
51
|
+
"Fichier absent au début puis créé pendant la suite : il est lu depuis l'offset 0 (choix d'implémentation, couvert par un test).",
|
|
52
|
+
"Le cas « fichier illisible » est testé avec un dossier à la place du fichier, pas avec des permissions retirées (évite les écarts entre CI et root).",
|
|
53
|
+
"Pendant la suite complète, aucun parcours réel concurrent n'a été observé : la non-régression sur ce cas repose sur les tests unitaires et la simulation du fait 7.",
|
|
54
|
+
"Résolution de la friction 010a3cd0 à faire après publication vérifiée (hors de cette activité)."
|
|
55
|
+
],
|
|
56
|
+
"blockers": [],
|
|
57
|
+
"observation": {
|
|
58
|
+
"baseRecordedAt": "2026-10-19T18:01:23Z",
|
|
59
|
+
"baseHead": "6daa111a0d6a92f71137822300c88b39b38b6107",
|
|
60
|
+
"observedAt": "2026-10-19T18:07:08Z",
|
|
61
|
+
"head": "6daa111a0d6a92f71137822300c88b39b38b6107"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# KKS-556 — Garde-fou de télémétrie des tests : ne signaler que les écritures de la suite
|
|
2
|
+
|
|
3
|
+
Source : issue Linear KKS-556, conception du 2026-10-19 avec Kelly (option A). Friction
|
|
4
|
+
`010a3cd0` (KKS-554, 10.0.0).
|
|
5
|
+
|
|
6
|
+
## Problème
|
|
7
|
+
|
|
8
|
+
Le niveau 2 du garde-fou de télémétrie (`pytest_sessionstart` et `pytest_sessionfinish`,
|
|
9
|
+
`tests/conftest.py`) compare la taille et la date de `~/.devflow/telemetry.jsonl` entre le début
|
|
10
|
+
et la fin de la suite. Toute écriture pendant la suite le déclenche, y compris celle d'un vrai
|
|
11
|
+
parcours Devflow lancé dans un autre dépôt : le 2026-10-19, KKS-552 (kreview) et KKS-481
|
|
12
|
+
(kpanel) ont fait échouer la suite pendant `implement` de KKS-554.
|
|
13
|
+
|
|
14
|
+
Le niveau 2 existe parce que le niveau 1 (interception de `telemetry_file` dans le processus et
|
|
15
|
+
`DEVFLOW_HOME` temporaire par test) ne voit pas un sous-processus lancé avec un environnement
|
|
16
|
+
explicite sans `DEVFLOW_HOME`. La fuite observée en 8.3.0 se reconnaît à sa ligne : projet sous
|
|
17
|
+
un dossier temporaire de pytest (`…/pytest-of-<user>/pytest-257/test_show0`).
|
|
18
|
+
|
|
19
|
+
## Décision (non rediscutable dans ce parcours)
|
|
20
|
+
|
|
21
|
+
- En début de suite, le niveau 2 note la taille du fichier réel (sans le lire).
|
|
22
|
+
- En fin de suite, il lit **en lecture seule** uniquement les octets ajoutés depuis cette taille,
|
|
23
|
+
ligne par ligne. Il échoue seulement si une ligne JSON lisible porte un champ `project` situé
|
|
24
|
+
sous un dossier temporaire : le dossier temporaire du système (`tempfile.gettempdir()`, chemin
|
|
25
|
+
résolu, y compris `/private/var/folders/…` sur macOS et `/tmp`) ou un chemin contenant
|
|
26
|
+
`pytest-of-`. Le message nomme le ou les projets en cause.
|
|
27
|
+
- Une ligne illisible, non JSON ou sans `project` n'échoue pas la suite. Un fichier absent, qui
|
|
28
|
+
rétrécit (rotation ou suppression) ou illisible n'échoue pas non plus.
|
|
29
|
+
- Les lignes des parcours réels (projets hors dossier temporaire) sont ignorées.
|
|
30
|
+
- Jamais d'écriture dans `~/.devflow`.
|
|
31
|
+
- Le niveau 1 ne change pas. Aucun code de `src/` ne change.
|
|
32
|
+
|
|
33
|
+
## Attendu et tests
|
|
34
|
+
|
|
35
|
+
- Tests du garde-fou dans `tmp_path` (le fichier « réel » simulé par un chemin temporaire passé
|
|
36
|
+
à la fonction de contrôle, jamais le vrai `~/.devflow`) :
|
|
37
|
+
- ligne ajoutée avec un projet réel hors dossier temporaire : pas d'échec ;
|
|
38
|
+
- ligne ajoutée avec un projet sous `pytest-of-…` ou sous le dossier temporaire du système :
|
|
39
|
+
échec, message qui nomme le projet ;
|
|
40
|
+
- ligne illisible, fichier absent, fichier rétréci : pas d'échec ;
|
|
41
|
+
- lignes présentes avant le début de la suite : jamais lues.
|
|
42
|
+
- La logique de décision est une fonction testable séparément du hook pytest.
|
|
43
|
+
- Suite complète verte, `./tests/run-tests.sh` vert, `uv run devflow docs-sync --check` vert.
|
|
44
|
+
|
|
45
|
+
## Livraison
|
|
46
|
+
|
|
47
|
+
- Version **10.0.2** : le contrôle CI exige une version strictement supérieure à celle de `main`
|
|
48
|
+
(10.0.1). Concordance dans `pyproject.toml`, `src/devflow_cli/__init__.py`, `uv.lock`,
|
|
49
|
+
`CHANGELOG.md` ; notes dans `docs/releases/10.0.2.md` (aucun changement pour l'utilisateur de
|
|
50
|
+
la CLI, retour à la 10.0.1).
|
|
51
|
+
- Résolution de `010a3cd0` au journal après publication vérifiée.
|
|
52
|
+
|
|
53
|
+
## Contraintes d'exécution
|
|
54
|
+
|
|
55
|
+
- Le parcours est piloté par la CLI 10.0.1 installée.
|
|
56
|
+
- Aucun test ni aucune activité ne lance un agent réel, ni n'appelle Linear.
|
|
57
|
+
- Aucun commit, aucun `git stash`, aucun changement de branche pendant les activités.
|
|
58
|
+
- La sortie structurée du contrat est le dernier message de l'agent.
|
devflow_cli-10.0.2/.specify/specs/049-kks-556-telemetry-guard-scope/preflight-evidence-result.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"contractId": "KKS-556:quick:preflight-evidence:v4",
|
|
4
|
+
"status": "completed",
|
|
5
|
+
"summary": "preflight-evidence.md rédigé. Le niveau 2 actuel compare seulement (taille, mtime) du fichier de télémétrie réel. Il échoue sur toute écriture, ce qui est reproduit de deux façons : simulation isolée avec un HOME jetable (code 1 sur une ligne de projet réel) et suite complète réelle (2735 passed, code 1, une ligne kpanel KKS-482 ajoutée pendant la suite). Le champ project (str(project_root)) et le chemin résolu de gettempdir (/private/var/folders/…) sont confirmés. Les 2 lignes de fuite 8.3.0 répondent aux deux critères. Aucun test ne couvre encore le niveau 2. Version 10.0.1 partout, cible 10.0.2.",
|
|
6
|
+
"changedFiles": [
|
|
7
|
+
".specify/specs/049-kks-556-telemetry-guard-scope/preflight-evidence.md"
|
|
8
|
+
],
|
|
9
|
+
"checks": [
|
|
10
|
+
{
|
|
11
|
+
"id": "telemetry-guard-tests",
|
|
12
|
+
"command": "uv run pytest -q tests/test_telemetry_guard.py",
|
|
13
|
+
"exitCode": 0,
|
|
14
|
+
"status": "passed"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "level2-false-positive-simulation",
|
|
18
|
+
"command": "HOME=<scratch>/home DEMO_TELEMETRY=<scratch>/home/.devflow/telemetry.jsonl PYTHONPATH=tests .venv/bin/python -m pytest -q -p conftest -p no:cacheprovider <scratch>/test_demo.py",
|
|
19
|
+
"exitCode": 1,
|
|
20
|
+
"status": "failed"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "full-suite-baseline",
|
|
24
|
+
"command": "uv run pytest -q",
|
|
25
|
+
"exitCode": 1,
|
|
26
|
+
"status": "failed"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "run-tests",
|
|
30
|
+
"command": "./tests/run-tests.sh",
|
|
31
|
+
"exitCode": 0,
|
|
32
|
+
"status": "passed"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "docs-sync",
|
|
36
|
+
"command": "uv run devflow docs-sync --check",
|
|
37
|
+
"exitCode": 0,
|
|
38
|
+
"status": "passed"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"evidence": [
|
|
42
|
+
{
|
|
43
|
+
"id": "level2-false-positive",
|
|
44
|
+
"outcome": "passed",
|
|
45
|
+
"report": "Faux positif reproduit : la simulation isolée échoue (code 1, message GARDE-FOU TELEMETRIE) sur une ligne de projet hors dossier temporaire. En réel, la suite complète finit avec 2735 passed et code 1 parce qu'un parcours kpanel concurrent a ajouté une ligne. Le fichier réel n'a pas été modifié par l'activité."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "telemetry-format",
|
|
49
|
+
"outcome": "passed",
|
|
50
|
+
"report": "Fichier réel lu en lecture seule : 414 lignes, 0 illisible, 0 sans project, 2 lignes de fuite 8.3.0 sous <gettempdir>/pytest-of-<user> (chemin en /private/var), 412 hors dossier temporaire. Une comparaison sur le chemin résolu est nécessaire."
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"remainingRisks": [
|
|
54
|
+
"La suite complète de référence n'est pas verte tant que le correctif n'est pas en place : un parcours réel concurrent la fait échouer. Ce faux positif est celui que KKS-556 corrige.",
|
|
55
|
+
"La sortie pytest du run complet n'a pas été conservée. L'attribution du code 1 au niveau 2 repose sur deux éléments : tous les tests passés et une ligne ajoutée pendant la fenêtre de la suite. La simulation déterministe en confirme le mécanisme.",
|
|
56
|
+
"Un parcours réel lancé depuis un projet sous /tmp ou gettempdir ferait échouer la suite à tort ; ce risque est accepté par need.md.",
|
|
57
|
+
"Une fuite dont le project n'est pas sous un dossier temporaire ne serait plus détectée.",
|
|
58
|
+
"Une ligne partiellement écrite au moment de la lecture finale serait ignorée."
|
|
59
|
+
],
|
|
60
|
+
"blockers": [],
|
|
61
|
+
"observation": {
|
|
62
|
+
"baseRecordedAt": "2026-10-19T17:54:04Z",
|
|
63
|
+
"baseHead": "6daa111a0d6a92f71137822300c88b39b38b6107",
|
|
64
|
+
"observedAt": "2026-10-19T18:01:23Z",
|
|
65
|
+
"head": "6daa111a0d6a92f71137822300c88b39b38b6107"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Preflight evidence — KKS-556
|
|
2
|
+
|
|
3
|
+
Objectif (`need.md`, qui fait foi) : limiter le niveau 2 du garde-fou de télémétrie des tests
|
|
4
|
+
(`tests/conftest.py`) aux octets ajoutés pendant la suite, et n'échouer que si une ligne JSON
|
|
5
|
+
lisible porte un `project` situé sous un dossier temporaire (`tempfile.gettempdir()` résolu,
|
|
6
|
+
`/tmp`, ou chemin contenant `pytest-of-`). Lecture seule, aucune écriture dans `~/.devflow`,
|
|
7
|
+
niveau 1 inchangé, aucun code de `src/` modifié. Logique de décision testable hors du hook.
|
|
8
|
+
Version cible 10.0.2. L'`objective` du contrat résume ce périmètre sans contradiction.
|
|
9
|
+
|
|
10
|
+
Capture faite le 2026-10-19 (17:55 à 18:00 UTC) sur la branche
|
|
11
|
+
`049-kks-556-telemetry-guard-scope`, HEAD `6daa111`, dépôt en 10.0.1 (`pyproject.toml`,
|
|
12
|
+
`src/devflow_cli/__init__.py` `VERSION`, `uv.lock` : `10.0.1` ; `devflow --version` et
|
|
13
|
+
`uv run --no-sync devflow --version` : `devflow CLI v10.0.1`), macOS (Darwin 27.0.0). Arbre de
|
|
14
|
+
travail : aucun fichier suivi modifié ; seul le dossier de cette feature est non suivi. État du
|
|
15
|
+
parcours (lu, non modifié) : profil `quick` sans garde-fous, activité courante
|
|
16
|
+
`preflight-evidence`, preuves exigées par `verify` : `targeted-check` et `diff-inspection`.
|
|
17
|
+
|
|
18
|
+
## Faits observés
|
|
19
|
+
|
|
20
|
+
« Reproduit » : rejoué par exécution pendant cette activité ; « lu » : constaté par lecture du
|
|
21
|
+
code ou des fichiers.
|
|
22
|
+
|
|
23
|
+
### Niveau 2 actuel
|
|
24
|
+
|
|
25
|
+
1. **Lu.** `tests/conftest.py:22` : `REAL_TELEMETRY = Path.home() / ".devflow" /
|
|
26
|
+
"telemetry.jsonl"`, calculé à l'import. `_telemetry_stamp` (`:101-107`) renvoie
|
|
27
|
+
`(st_size, st_mtime_ns)` par `stat` seul ; `pytest_sessionstart` (`:110-112`) le mémorise
|
|
28
|
+
dans `_telemetry_before` ; `pytest_sessionfinish` (`:115-133`) échoue la session
|
|
29
|
+
(`session.exitstatus = TESTS_FAILED`, message `GARDE-FOU TELEMETRIE`) dès que le couple
|
|
30
|
+
diffère, quelle que soit l'origine de l'écriture. Le message reconnaît déjà la limite (« une
|
|
31
|
+
écriture légitime de l'utilisateur pendant la suite … fait échouer la suite à tort »).
|
|
32
|
+
2. **Lu.** Le niveau 1 (`guard_real_telemetry`, `:136-163`, et `isolated_devflow_home`,
|
|
33
|
+
`:92-98`) remplace `telemetry_file` dans `devflow_cli.core.telemetry`, `.feedback` et
|
|
34
|
+
`.result_template`, et pose un `DEVFLOW_HOME` temporaire par test. Il est hors périmètre.
|
|
35
|
+
3. **Lu.** `tests/test_telemetry_guard.py` ne teste que le niveau 1 (5 tests) ; aucun test ne
|
|
36
|
+
couvre le niveau 2. `import conftest` y est déjà utilisé : une fonction de décision placée
|
|
37
|
+
dans `conftest.py` est importable par les tests.
|
|
38
|
+
|
|
39
|
+
### Format des lignes
|
|
40
|
+
|
|
41
|
+
4. **Lu.** `src/devflow_cli/commands/adaptive.py:1107-1113` : chaque tentative écrit
|
|
42
|
+
`"project": str(project_root)` avec `schemaVersion`, `cliVersion`, `issueId`, `activity`…
|
|
43
|
+
`append_record` (`src/devflow_cli/core/telemetry.py:45-55`) ajoute une ligne JSON terminée
|
|
44
|
+
par `\n` en une seule écriture `O_APPEND`. Le journal de retours (`feedback`) est un autre
|
|
45
|
+
fichier (`feedback.jsonl`, `src/devflow_cli/core/feedback.py:53`) : non concerné.
|
|
46
|
+
5. **Reproduit.** Décompte du fichier réel, en lecture seule, sans afficher son contenu :
|
|
47
|
+
414 lignes au début de l'activité, 0 illisible, 0 sans `project`, 2 avec un `project` sous le
|
|
48
|
+
dossier temporaire, 412 hors dossier temporaire. Les 2 lignes temporaires sont la fuite
|
|
49
|
+
connue : `cliVersion` 8.3.0, projet `<gettempdir>/pytest-of-<user>/pytest-257/test_show0`
|
|
50
|
+
(chemin commençant par `/private/var/…`). Elles répondent aux deux critères (`pytest-of-` et
|
|
51
|
+
préfixe du dossier temporaire résolu). Lignes antérieures à toute suite : le nouveau niveau 2
|
|
52
|
+
ne doit jamais les lire.
|
|
53
|
+
6. **Reproduit.** `tempfile.gettempdir()` vaut `/var/folders/…/T`, et son chemin résolu
|
|
54
|
+
`/private/var/folders/…/T` (sous `uv run` comme hors venv). Le chemin enregistré par la fuite
|
|
55
|
+
commence par `/private/var` : la comparaison doit se faire sur le chemin résolu, comme le
|
|
56
|
+
prévoit `need.md`. Les dossiers de pytest sont sous `<gettempdir>/pytest-of-<user>`.
|
|
57
|
+
|
|
58
|
+
### Faux positif
|
|
59
|
+
|
|
60
|
+
7. **Reproduit (simulation isolée).** Session pytest lancée avec `HOME` pointé vers un dossier
|
|
61
|
+
du scratchpad (le `REAL_TELEMETRY` simulé y est alors calculé), `-p conftest` et un test unique
|
|
62
|
+
qui ajoute directement une ligne `{"schemaVersion": 1, "project":
|
|
63
|
+
"/Users/someone/Code/other-repo"}` au fichier simulé : `1 passed`, puis message
|
|
64
|
+
`GARDE-FOU TELEMETRIE … a change pendant la suite`, code de sortie 1. Le fichier réel est resté
|
|
65
|
+
à 414 lignes. Le niveau 2 actuel échoue donc sur une ligne de projet réel.
|
|
66
|
+
8. **Reproduit (en réel).** `uv run pytest -q` lancé pendant l'activité : `2735 passed in
|
|
67
|
+
282.21s`, code de sortie 1. Le fichier réel est passé de 414 à 415 lignes ; la ligne ajoutée
|
|
68
|
+
(`recordedAt` 2026-10-19T17:58:25Z, `cliVersion` 10.0.1, projet `kpanel`, `KKS-482`,
|
|
69
|
+
`preflight-evidence`) vient d'un parcours réel lancé dans un autre dépôt, hors dossier
|
|
70
|
+
temporaire, et date de l'intérieur de la fenêtre de la suite (fin à 18:00 UTC environ). Seul le
|
|
71
|
+
niveau 2 peut produire un code 1 avec tous les tests verts : c'est le même faux positif que la
|
|
72
|
+
friction `010a3cd0` (KKS-552 et KKS-481 pendant `implement` de KKS-554). Avec la règle de
|
|
73
|
+
`need.md`, cette ligne serait ignorée et la suite verte.
|
|
74
|
+
9. **Reproduit.** `./tests/run-tests.sh` : code 0. `uv run devflow docs-sync --check` : code 0.
|
|
75
|
+
`uv run pytest -q tests/test_telemetry_guard.py` : `5 passed`, code 0.
|
|
76
|
+
10. **Reproduit.** `devflow feedback list` affiche `010a3cd0 friction mineur ouvert 10.0.0` ;
|
|
77
|
+
à résoudre après publication vérifiée, pas pendant ce parcours.
|
|
78
|
+
|
|
79
|
+
### Livraison
|
|
80
|
+
|
|
81
|
+
11. **Lu.** Version 10.0.1 dans `pyproject.toml:7`, `src/devflow_cli/__init__.py:3`,
|
|
82
|
+
`uv.lock:150` ; dernière entrée de `CHANGELOG.md` : `[10.0.1] - 2026-10-19` ;
|
|
83
|
+
`docs/releases/10.0.1.md` existe, `10.0.2.md` n'existe pas. La cible 10.0.2 est
|
|
84
|
+
strictement supérieure à `main`.
|
|
85
|
+
|
|
86
|
+
## Source
|
|
87
|
+
|
|
88
|
+
- Code : `tests/conftest.py`, `tests/test_telemetry_guard.py`,
|
|
89
|
+
`src/devflow_cli/core/telemetry.py`, `src/devflow_cli/commands/adaptive.py`,
|
|
90
|
+
`src/devflow_cli/core/feedback.py`, à HEAD `6daa111`.
|
|
91
|
+
- Fichiers de version : `pyproject.toml`, `src/devflow_cli/__init__.py`, `uv.lock`,
|
|
92
|
+
`CHANGELOG.md`, `docs/releases/`.
|
|
93
|
+
- Télémétrie réelle `~/.devflow/telemetry.jsonl`, lue en lecture seule pour des décomptes et
|
|
94
|
+
la caractérisation des lignes temporaires et de la ligne ajoutée (champs non sensibles).
|
|
95
|
+
- Journal de retours via `devflow feedback list` (friction `010a3cd0`).
|
|
96
|
+
- Besoin : `need.md` de cette feature (décision du 2026-10-19 avec Kelly, option A).
|
|
97
|
+
|
|
98
|
+
## Reproductibilité
|
|
99
|
+
|
|
100
|
+
- Faits 1 à 4 et 11 : relire les fichiers cités à HEAD `6daa111`.
|
|
101
|
+
- Fait 5 : script Python qui ouvre `~/.devflow/telemetry.jsonl` en lecture, parse chaque ligne
|
|
102
|
+
et classe le `project` (`"pytest-of-" in project` ou `os.path.realpath(project)` sous
|
|
103
|
+
`os.path.realpath(tempfile.gettempdir())`, ou préfixe `/tmp/`). Les nombres varient avec les
|
|
104
|
+
parcours réels ajoutés depuis (415 lignes après le fait 8).
|
|
105
|
+
- Fait 6 : `uv run --no-sync python -c "import tempfile,os;p=tempfile.gettempdir();print(p,
|
|
106
|
+
os.path.realpath(p))"`.
|
|
107
|
+
- Fait 7 : dans un dossier jetable `S`, créer `S/home/.devflow/telemetry.jsonl` (une ligne) et
|
|
108
|
+
un `S/test_demo.py` qui ajoute une ligne au chemin passé par `DEMO_TELEMETRY`, puis
|
|
109
|
+
`HOME=S/home DEMO_TELEMETRY=S/home/.devflow/telemetry.jsonl PYTHONPATH=tests
|
|
110
|
+
.venv/bin/python -m pytest -q -p conftest -p no:cacheprovider S/test_demo.py` ; attendu :
|
|
111
|
+
message `GARDE-FOU TELEMETRIE`, code 1. Après correctif, le même essai doit donner code 0, et
|
|
112
|
+
un `project` sous `pytest-of-…` doit donner code 1.
|
|
113
|
+
- Fait 8 : non reproductible à la demande, car il dépend d'un parcours réel concurrent dans un
|
|
114
|
+
autre dépôt ; le fait 7 en reproduit le mécanisme de façon déterministe.
|
|
115
|
+
- Faits 9 et 10 : relancer les commandes citées (la suite complète dure environ 5 minutes et
|
|
116
|
+
peut échouer de la même façon tant que le correctif n'est pas en place).
|
|
117
|
+
|
|
118
|
+
## Périmètre
|
|
119
|
+
|
|
120
|
+
- Dans le périmètre : niveau 2 de `tests/conftest.py` (nouvelle fonction de décision pure,
|
|
121
|
+
appelée par `pytest_sessionfinish`, avec la taille notée par `pytest_sessionstart`), tests du
|
|
122
|
+
niveau 2 dans `tests/test_telemetry_guard.py` (ou un fichier de test voisin) en `tmp_path`,
|
|
123
|
+
fichiers de version et notes `docs/releases/10.0.2.md`.
|
|
124
|
+
- Hors périmètre : niveau 1 (`guard_real_telemetry`, `isolated_devflow_home`), tout fichier de
|
|
125
|
+
`src/`, le format de la télémétrie, le fichier `feedback.jsonl`, la résolution de `010a3cd0`
|
|
126
|
+
(après publication).
|
|
127
|
+
- Cas à couvrir, d'après `need.md` : ligne ajoutée hors dossier temporaire (pas d'échec) ; sous
|
|
128
|
+
`pytest-of-…` ou sous le dossier temporaire résolu, y compris `/tmp` (échec nommant le
|
|
129
|
+
projet) ; ligne illisible, non JSON ou sans `project`, fichier absent, rétréci ou illisible
|
|
130
|
+
(pas d'échec) ; lignes antérieures jamais lues (lecture à partir de l'offset noté).
|
|
131
|
+
|
|
132
|
+
## Confidentialité
|
|
133
|
+
|
|
134
|
+
- Aucun contenu de la télémétrie n'est recopié hors des champs nécessaires et non sensibles
|
|
135
|
+
(`cliVersion`, `issueId`, `activity`, `recordedAt`, nom de dossier du projet). Les chemins
|
|
136
|
+
sont masqués (`<gettempdir>`, `<user>`) ; aucun identifiant de session, jeton, quota ni
|
|
137
|
+
contenu de prompt n'est cité.
|
|
138
|
+
- La simulation (fait 7) a écrit uniquement dans le scratchpad de la session ; `~/.devflow`
|
|
139
|
+
n'a pas été modifié par cette activité (414 lignes avant et après la simulation ; la 415e
|
|
140
|
+
ligne vient du parcours kpanel concurrent).
|
|
141
|
+
|
|
142
|
+
## Limites
|
|
143
|
+
|
|
144
|
+
- La règle « sous le dossier temporaire » couvre aussi `/tmp` et donc `/private/tmp` : un vrai
|
|
145
|
+
parcours Devflow lancé depuis un projet sous `/tmp` ou sous `gettempdir()` ferait échouer la
|
|
146
|
+
suite à tort. Aucun cas de ce type dans les 415 lignes actuelles ; accepté par `need.md`.
|
|
147
|
+
- Une fuite d'un sous-processus dont le `project` n'est pas sous un dossier temporaire ne serait
|
|
148
|
+
plus détectée ; tous les tests créent leurs projets dans `tmp_path`, mais ce n'est pas imposé
|
|
149
|
+
mécaniquement.
|
|
150
|
+
- Une ligne en cours d'écriture au moment de la lecture finale (écriture concurrente partielle)
|
|
151
|
+
serait illisible et donc ignorée ; `append_record` écrit en une seule écriture `O_APPEND`, ce
|
|
152
|
+
qui rend le cas improbable sans l'exclure.
|
|
153
|
+
- Le fait 8 n'a pas conservé la sortie de pytest : l'attribution du code 1 au niveau 2 repose sur
|
|
154
|
+
`2735 passed` avec code 1 et sur la ligne ajoutée pendant la fenêtre de la suite, mécanisme
|
|
155
|
+
confirmé de façon déterministe par le fait 7.
|
|
156
|
+
- La suite complète de référence n'est pas verte en l'état (fait 8) ; elle ne pourra être prouvée
|
|
157
|
+
verte qu'avec le correctif, ou sans parcours réel concurrent.
|