devflow-cli 2.8.0__tar.gz → 2.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/misc.xml +0 -1
- devflow_cli-2.9.0/.idea/workspace.xml +224 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/CHANGELOG.md +19 -0
- devflow_cli-2.9.0/PKG-INFO +223 -0
- devflow_cli-2.9.0/README.md +197 -0
- devflow_cli-2.9.0/docs/activity-contracts.md +255 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/cli-reference.md +179 -3
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/index.md +2 -1
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/pyproject.toml +2 -2
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/__init__.py +2 -2
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/adapters/agents.py +73 -1
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/cli.py +4 -0
- devflow_cli-2.9.0/src/devflow_cli/commands/adaptive.py +357 -0
- devflow_cli-2.9.0/src/devflow_cli/commands/assess.py +115 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/check.py +44 -1
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/init_cmd.py +16 -10
- devflow_cli-2.9.0/src/devflow_cli/core/activity_contracts.py +735 -0
- devflow_cli-2.9.0/src/devflow_cli/core/adaptive_runner.py +332 -0
- devflow_cli-2.9.0/src/devflow_cli/core/adaptive_workflow.py +303 -0
- devflow_cli-2.9.0/src/devflow_cli/core/assessment.py +161 -0
- devflow_cli-2.9.0/src/devflow_cli/core/automatic_evidence.py +717 -0
- devflow_cli-2.9.0/src/devflow_cli/core/remediation.py +155 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/validators.py +24 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/verification.py +47 -4
- devflow_cli-2.9.0/src/devflow_cli/core/waivers.py +285 -0
- devflow_cli-2.9.0/src/devflow_cli/core/worklog.py +304 -0
- devflow_cli-2.9.0/src/devflow_cli/core/worktree_snapshot.py +91 -0
- devflow_cli-2.9.0/src/devflow_cli/utils/__init__.py +0 -0
- devflow_cli-2.9.0/tests/test_activity_contracts.py +424 -0
- devflow_cli-2.9.0/tests/test_adaptive_runner.py +495 -0
- devflow_cli-2.9.0/tests/test_adaptive_workflow.py +185 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_agent_adapters.py +52 -2
- devflow_cli-2.9.0/tests/test_assessment.py +77 -0
- devflow_cli-2.9.0/tests/test_automatic_evidence.py +735 -0
- devflow_cli-2.9.0/tests/test_cmd_adaptive.py +588 -0
- devflow_cli-2.9.0/tests/test_cmd_assess.py +98 -0
- devflow_cli-2.9.0/tests/test_cmd_check.py +112 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_init.py +19 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_validators.py +60 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_verification.py +52 -0
- devflow_cli-2.9.0/tests/test_waivers.py +182 -0
- devflow_cli-2.9.0/tests/test_worklog.py +228 -0
- devflow_cli-2.9.0/tests/test_worktree_snapshot.py +59 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/uv.lock +1 -1
- devflow_cli-2.8.0/PKG-INFO +0 -149
- devflow_cli-2.8.0/README.md +0 -123
- devflow_cli-2.8.0/tests/test_cmd_check.py +0 -53
- /devflow_cli-2.8.0/src/devflow_cli/commands/__init__.py → /devflow_cli-2.9.0/.ai/mcp/mcp.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.analyze.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.checklist.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.clarify.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.constitution.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.implement.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.specify.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.taskstoissues.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.githooks/post-checkout +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.githooks/post-merge +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.github/workflows/ci.yml +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.github/workflows/release.yml +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.gitignore +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/.gitignore +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/devflow.iml +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/modules.xml +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/vcs.xml +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/init-options.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/memory/constitution.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/common.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/setup-plan.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/agent-file-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/checklist-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/constitution-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/plan-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template-brownfield.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template-greenfield.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template-microservices.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/tasks-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/CLAUDE.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/CONTRIBUTING.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/LICENSE +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/agents/devflow-autofix.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/agents/devflow-review.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.analyze.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.checklist.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.clarify.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.constitution.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.context.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.contracts.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.docs.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.extension.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.implement.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.init.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.metrics.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.plan.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.regen.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.research.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.review-impl.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.review-spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.review-tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.spec.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.status.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.sync-linear.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.tasks-to-issues.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.tasks.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/commands-reference.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/cursor-guide.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/guides/brownfield.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/guides/greenfield.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/guides/microservices.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/pipeline-reference.generated.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/pipeline.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/spec-driven.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/EXTENSION-API-REFERENCE.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/README.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/catalog.community.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/catalog.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/template/example-command.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/template/example-extension.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/adapters/__init__.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/adapters/linear.py +0 -0
- {devflow_cli-2.8.0/src/devflow_cli/core → devflow_cli-2.9.0/src/devflow_cli/commands}/__init__.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/context.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/docs_sync.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/export_cmd.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/extension.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/feature.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/hooks_cmd.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/linear.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/migrate_cmd.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/migrate_speckit.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/review.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/rollback.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/run.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/stale.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/status.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/step.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/traceability.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/upgrade_cmd.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/verify.py +0 -0
- {devflow_cli-2.8.0/src/devflow_cli/utils → devflow_cli-2.9.0/src/devflow_cli/core}/__init__.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/catalog.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/docgen.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/git.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/hooks.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/installer.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/manifest.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/orchestrator.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/scanner.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/staleness.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/state.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/state_store.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/traceability.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/schemas/state.schema.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/console.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/logging.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/paths.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/strings.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/agent-context-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/analyze-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklist-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/api.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/requirements.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/security.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/ux.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/clarify-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/constitution-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/README-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/api-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/components-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/interfaces-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/services-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/data-model-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/devflow-hooks-template.yml +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/docs-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/export/copilot-instructions-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/export/cursor-rules-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/extension-manifest-template.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/plan-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/quickstart-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/research-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/review-impl-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/review-spec-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/review-tasks-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/spec-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/tasks-template.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/conftest.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/agents/mock-agent.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/commands/mock-command.md +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/mock-catalog.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/mock-state.json +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/run-tests.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test-helpers.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test-template-variants.sh +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_bash_runner.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_catalog.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_context.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_docs_sync.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_extension.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_feature.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_hooks.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_linear.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_migrate.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_migrate_speckit.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_review.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_run.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_stale.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_status.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_step.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_traceability.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_upgrade.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_verify.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_constants.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_context.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_docgen.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_e2e_pipeline.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_git.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_hooks.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_installer.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_integration.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_linear_adapter.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_linear_order.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_logging.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_manifest.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_orchestrator.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_paths.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_paths_project_root.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_rollback.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_scanner.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_staleness.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_state.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_state_schema.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_traceability.py +0 -0
- {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_version.py +0 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="AutoImportSettings">
|
|
4
|
+
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
|
+
</component>
|
|
6
|
+
<component name="ChangeListManager">
|
|
7
|
+
<list default="true" id="4d5164b1-14ff-40b3-8f55-b6f2c3abff01" name="Changes" comment="" />
|
|
8
|
+
<option name="SHOW_DIALOG" value="false" />
|
|
9
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
10
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
11
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
12
|
+
</component>
|
|
13
|
+
<component name="EmbeddingIndexingInfo">
|
|
14
|
+
<option name="cachedIndexableFilesCount" value="1409" />
|
|
15
|
+
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
|
|
16
|
+
</component>
|
|
17
|
+
<component name="Git.Settings">
|
|
18
|
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
19
|
+
</component>
|
|
20
|
+
<component name="GitHubPullRequestSearchHistory"><![CDATA[{
|
|
21
|
+
"lastFilter": {
|
|
22
|
+
"state": "OPEN",
|
|
23
|
+
"assignee": "sopequenoteck"
|
|
24
|
+
}
|
|
25
|
+
}]]></component>
|
|
26
|
+
<component name="GitToolBoxStore">
|
|
27
|
+
<option name="branchesCleanupHistory">
|
|
28
|
+
<BranchesCleanupHistory>
|
|
29
|
+
<option name="history">
|
|
30
|
+
<list>
|
|
31
|
+
<BranchCleanupEntry>
|
|
32
|
+
<option name="deletions">
|
|
33
|
+
<list>
|
|
34
|
+
<BranchDeletion>
|
|
35
|
+
<option name="hash" value="861fc6362be269bb7f402d7760f3bf7b565d7460" />
|
|
36
|
+
<option name="name" value="017-fix-robustness-issues" />
|
|
37
|
+
</BranchDeletion>
|
|
38
|
+
<BranchDeletion>
|
|
39
|
+
<option name="hash" value="608c9bc52be63c110d9d2a9a5b4fe919f90c8154" />
|
|
40
|
+
<option name="name" value="026-fix-command-ambiguities" />
|
|
41
|
+
</BranchDeletion>
|
|
42
|
+
<BranchDeletion>
|
|
43
|
+
<option name="hash" value="c9d97356f42487cc635e82f35068c632449e7459" />
|
|
44
|
+
<option name="name" value="016-harden-state-machine" />
|
|
45
|
+
</BranchDeletion>
|
|
46
|
+
<BranchDeletion>
|
|
47
|
+
<option name="hash" value="f6ef9c69dcc416b37b0d7b15cc2bc418adb94445" />
|
|
48
|
+
<option name="name" value="008-hardening-bugs" />
|
|
49
|
+
</BranchDeletion>
|
|
50
|
+
<BranchDeletion>
|
|
51
|
+
<option name="hash" value="cf559e1c5ab82ad66ad5a6ba9ca8bf3c612a8dbe" />
|
|
52
|
+
<option name="name" value="001-cli-init-options" />
|
|
53
|
+
</BranchDeletion>
|
|
54
|
+
<BranchDeletion>
|
|
55
|
+
<option name="hash" value="9c9ac6ba6122577894e95900414ad21c94117675" />
|
|
56
|
+
<option name="name" value="003-usecase-guides" />
|
|
57
|
+
</BranchDeletion>
|
|
58
|
+
<BranchDeletion>
|
|
59
|
+
<option name="hash" value="7fbc2c734b62139eac11b05a5fc51f31bdb482e8" />
|
|
60
|
+
<option name="name" value="007-project-documentation" />
|
|
61
|
+
</BranchDeletion>
|
|
62
|
+
<BranchDeletion>
|
|
63
|
+
<option name="hash" value="a9402192387c3130a0550834b187d4cd022fc28d" />
|
|
64
|
+
<option name="name" value="009-ci-pypi" />
|
|
65
|
+
</BranchDeletion>
|
|
66
|
+
<BranchDeletion>
|
|
67
|
+
<option name="hash" value="babf269c6d664519da2db7d800ff964e24b29765" />
|
|
68
|
+
<option name="name" value="022-fix-regen-command" />
|
|
69
|
+
</BranchDeletion>
|
|
70
|
+
<BranchDeletion>
|
|
71
|
+
<option name="hash" value="1bc969c678242c64fbdd16339cb2569d555b48ea" />
|
|
72
|
+
<option name="name" value="014-enforce-state-machine" />
|
|
73
|
+
</BranchDeletion>
|
|
74
|
+
<BranchDeletion>
|
|
75
|
+
<option name="hash" value="cf559e1c5ab82ad66ad5a6ba9ca8bf3c612a8dbe" />
|
|
76
|
+
<option name="name" value="002-cascade-regen" />
|
|
77
|
+
</BranchDeletion>
|
|
78
|
+
<BranchDeletion>
|
|
79
|
+
<option name="hash" value="711a399e63592a4650e63f53299603b02b19a8e7" />
|
|
80
|
+
<option name="name" value="020-migrate-speckit" />
|
|
81
|
+
</BranchDeletion>
|
|
82
|
+
<BranchDeletion>
|
|
83
|
+
<option name="hash" value="f83a06b13183c09aa274c9713480da13ba690419" />
|
|
84
|
+
<option name="name" value="010-flexible-pipeline" />
|
|
85
|
+
</BranchDeletion>
|
|
86
|
+
<BranchDeletion>
|
|
87
|
+
<option name="hash" value="9ba410df0892ce61400945b739b28df87b2670d5" />
|
|
88
|
+
<option name="name" value="004-specify-central-directory" />
|
|
89
|
+
</BranchDeletion>
|
|
90
|
+
<BranchDeletion>
|
|
91
|
+
<option name="hash" value="b7141bc1dae8a40dbaf8d2440b2cbd7b7fe3650b" />
|
|
92
|
+
<option name="name" value="006-template-upgrade" />
|
|
93
|
+
</BranchDeletion>
|
|
94
|
+
<BranchDeletion>
|
|
95
|
+
<option name="hash" value="449d3673848e3ceabfe85596c7ce8ec7f69e35b5" />
|
|
96
|
+
<option name="name" value="005-implement-subphases" />
|
|
97
|
+
</BranchDeletion>
|
|
98
|
+
<BranchDeletion>
|
|
99
|
+
<option name="hash" value="bd6a5e9b3463a8330f1a4b033c32437498baa909" />
|
|
100
|
+
<option name="name" value="027-pipeline-auto-execution" />
|
|
101
|
+
</BranchDeletion>
|
|
102
|
+
<BranchDeletion>
|
|
103
|
+
<option name="hash" value="b79001ec8e632e99c5337f66fdd9ecfcdca38810" />
|
|
104
|
+
<option name="name" value="021-review-iterations" />
|
|
105
|
+
</BranchDeletion>
|
|
106
|
+
<BranchDeletion>
|
|
107
|
+
<option name="hash" value="e01363f1ba914e75a33565e598ea3c0c83654a6f" />
|
|
108
|
+
<option name="name" value="019-quality-hardening" />
|
|
109
|
+
</BranchDeletion>
|
|
110
|
+
<BranchDeletion>
|
|
111
|
+
<option name="hash" value="86a6c0fcca1d4c5eb6ed1591f5b43d8dc1fd2e46" />
|
|
112
|
+
<option name="name" value="013-align-truth-sources" />
|
|
113
|
+
</BranchDeletion>
|
|
114
|
+
<BranchDeletion>
|
|
115
|
+
<option name="hash" value="5a987e7e2f7f890c3206247b171fa1c36e2fd108" />
|
|
116
|
+
<option name="name" value="018-fix-final-robustness" />
|
|
117
|
+
</BranchDeletion>
|
|
118
|
+
<BranchDeletion>
|
|
119
|
+
<option name="hash" value="4d3bc84a3b655b019e7f3a55569b6fa2681a3e95" />
|
|
120
|
+
<option name="name" value="015-fix-review-contradiction" />
|
|
121
|
+
</BranchDeletion>
|
|
122
|
+
<BranchDeletion>
|
|
123
|
+
<option name="hash" value="661d72db714f24d86b4d8e8895198d3eabb2450e" />
|
|
124
|
+
<option name="name" value="feature/git-hooks-auto-promote" />
|
|
125
|
+
</BranchDeletion>
|
|
126
|
+
<BranchDeletion>
|
|
127
|
+
<option name="hash" value="db082c4529f8cee67b9f82e702e3928f8ba9adcc" />
|
|
128
|
+
<option name="name" value="011-cursor-support" />
|
|
129
|
+
</BranchDeletion>
|
|
130
|
+
<BranchDeletion>
|
|
131
|
+
<option name="hash" value="83a3817a3e6a87553b17065990c842702309c87b" />
|
|
132
|
+
<option name="name" value="025-harden-tests" />
|
|
133
|
+
</BranchDeletion>
|
|
134
|
+
<BranchDeletion>
|
|
135
|
+
<option name="hash" value="7bf297d86fcb2cd560e2a48e13e037c68f80197d" />
|
|
136
|
+
<option name="name" value="012-fix-critical-bugs" />
|
|
137
|
+
</BranchDeletion>
|
|
138
|
+
<BranchDeletion>
|
|
139
|
+
<option name="hash" value="573bfc9a8fb73e4211493a905fb2a5f3aede7ff5" />
|
|
140
|
+
<option name="name" value="023-add-logging" />
|
|
141
|
+
</BranchDeletion>
|
|
142
|
+
<BranchDeletion>
|
|
143
|
+
<option name="hash" value="5fc33e862e6736b67d94690db1117493528cbe85" />
|
|
144
|
+
<option name="name" value="024-validate-constants" />
|
|
145
|
+
</BranchDeletion>
|
|
146
|
+
</list>
|
|
147
|
+
</option>
|
|
148
|
+
<option name="timestamp" value="1787005388911" />
|
|
149
|
+
</BranchCleanupEntry>
|
|
150
|
+
</list>
|
|
151
|
+
</option>
|
|
152
|
+
</BranchesCleanupHistory>
|
|
153
|
+
</option>
|
|
154
|
+
</component>
|
|
155
|
+
<component name="GithubPullRequestsUISettings"><![CDATA[{
|
|
156
|
+
"selectedUrlAndAccountId": {
|
|
157
|
+
"url": "https://github.com/sopequenoteck/devflow.git",
|
|
158
|
+
"accountId": "8169ef0d-6593-43b8-9a77-2780a60dc5ac"
|
|
159
|
+
}
|
|
160
|
+
}]]></component>
|
|
161
|
+
<component name="McpProjectServerCommands">
|
|
162
|
+
<commands />
|
|
163
|
+
<urls />
|
|
164
|
+
</component>
|
|
165
|
+
<component name="ProjectColorInfo"><![CDATA[{
|
|
166
|
+
"associatedIndex": 7,
|
|
167
|
+
"fromUser": false
|
|
168
|
+
}]]></component>
|
|
169
|
+
<component name="ProjectId" id="3I2KWolJpZcPmEOGT7J0Rsp6K3n" />
|
|
170
|
+
<component name="ProjectViewState">
|
|
171
|
+
<option name="hideEmptyMiddlePackages" value="true" />
|
|
172
|
+
<option name="showLibraryContents" value="true" />
|
|
173
|
+
</component>
|
|
174
|
+
<component name="PropertiesComponent"><![CDATA[{
|
|
175
|
+
"keyToString": {
|
|
176
|
+
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
|
177
|
+
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
|
178
|
+
"RunOnceActivity.MCP Project settings loaded": "true",
|
|
179
|
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
180
|
+
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
|
181
|
+
"RunOnceActivity.git.unshallow": "true",
|
|
182
|
+
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
|
183
|
+
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
|
184
|
+
"codeWithMe.voiceChat.enabledByDefault": "false",
|
|
185
|
+
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
|
|
186
|
+
"dart.analysis.tool.window.visible": "false",
|
|
187
|
+
"git-widget-placeholder": "develop",
|
|
188
|
+
"junie.onboarding.icon.badge.shown": "true",
|
|
189
|
+
"kotlin-language-version-configured": "true",
|
|
190
|
+
"last_opened_file_path": "/Users/kellysossoe/Code/Apps/devflow",
|
|
191
|
+
"node.js.detected.package.eslint": "true",
|
|
192
|
+
"node.js.detected.package.tslint": "true",
|
|
193
|
+
"node.js.selected.package.eslint": "(autodetect)",
|
|
194
|
+
"node.js.selected.package.tslint": "(autodetect)",
|
|
195
|
+
"nodejs_package_manager_path": "npm",
|
|
196
|
+
"settings.editor.selected.configurable": "settings.sync",
|
|
197
|
+
"show.migrate.to.gradle.popup": "false",
|
|
198
|
+
"to.speed.mode.migration.done": "true",
|
|
199
|
+
"vue.rearranger.settings.migration": "true"
|
|
200
|
+
}
|
|
201
|
+
}]]></component>
|
|
202
|
+
<component name="SharedIndexes">
|
|
203
|
+
<attachedChunks>
|
|
204
|
+
<set>
|
|
205
|
+
<option value="bundled-jdk-30f59d01ecdd-37e91769500f-intellij.indexing.shared.core-IU-261.26222.65" />
|
|
206
|
+
<option value="bundled-js-predefined-d6986cc7102b-31caf2ab9e3c-JavaScript-IU-261.26222.65" />
|
|
207
|
+
</set>
|
|
208
|
+
</attachedChunks>
|
|
209
|
+
</component>
|
|
210
|
+
<component name="TaskManager">
|
|
211
|
+
<task active="true" id="Default" summary="Default task">
|
|
212
|
+
<changelist id="4d5164b1-14ff-40b3-8f55-b6f2c3abff01" name="Changes" comment="" />
|
|
213
|
+
<created>1786957258019</created>
|
|
214
|
+
<option name="number" value="Default" />
|
|
215
|
+
<option name="presentableId" value="Default" />
|
|
216
|
+
<updated>1786957258019</updated>
|
|
217
|
+
<workItem from="1786957259143" duration="1286000" />
|
|
218
|
+
</task>
|
|
219
|
+
<servers />
|
|
220
|
+
</component>
|
|
221
|
+
<component name="TypeScriptGeneratedFilesManager">
|
|
222
|
+
<option name="version" value="3" />
|
|
223
|
+
</component>
|
|
224
|
+
</project>
|
|
@@ -5,6 +5,25 @@ Tous les changements notables de ce projet sont documentés dans ce fichier.
|
|
|
5
5
|
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
|
|
6
6
|
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
7
7
|
|
|
8
|
+
## [2.9.0] - 2026-08-20
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Workflows adaptatifs exécutables `quick`, `standard`, `deep` et `critical`, avec contrats d'activités structurés pour Codex.
|
|
13
|
+
- Preuves automatiques, worklog régénérable, dérogations contrôlées et réouverture auditée des activités en remédiation.
|
|
14
|
+
- Gates Critical distinctes pour sécurité/données, review indépendante et rollback, avec rejet des suites sensibles sans test réellement exécuté.
|
|
15
|
+
- Cible officielle `devflow init --ai codex` et diagnostic `devflow check --ai codex` sans dépendance à `~/.claude/`.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Les validations nécessitant Docker ou un service externe sont exécutées par la gate locale `verify` plutôt que dans le sandbox de l'agent.
|
|
20
|
+
- La review consomme les preuves Devflow actuelles et réserve ses propres commandes aux inspections compatibles avec la lecture seule.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Conservation cumulative du périmètre de fichiers lors des reprises d'implémentation.
|
|
25
|
+
- Rejet explicite des résultats Maven sensibles où tous les tests sont ignorés ou aucun bilan de test n'est détectable.
|
|
26
|
+
|
|
8
27
|
## [2.8.0] - 2026-08-17
|
|
9
28
|
|
|
10
29
|
### Added
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: devflow-cli
|
|
3
|
+
Version: 2.9.0
|
|
4
|
+
Summary: Spec-Driven Development workflow CLI
|
|
5
|
+
Project-URL: Homepage, https://github.com/sopequenoteck/devflow
|
|
6
|
+
Project-URL: Repository, https://github.com/sopequenoteck/devflow
|
|
7
|
+
Author-email: sopequenoteck <sopequeno.tech@gmail.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: claude-code,cli,codex,development,spec-driven,workflow
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: pyyaml>=6
|
|
20
|
+
Requires-Dist: rich>=13
|
|
21
|
+
Requires-Dist: typer>=0.12
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: pytest-cov>=5; extra == 'dev'
|
|
24
|
+
Requires-Dist: pytest>=8; extra == 'dev'
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# devflow
|
|
28
|
+
|
|
29
|
+
[](https://github.com/sopequenoteck/devflow/actions/workflows/ci.yml)
|
|
30
|
+
[](https://pypi.org/project/devflow-cli/)
|
|
31
|
+
[](LICENSE)
|
|
32
|
+
|
|
33
|
+
Toolkit de **Spec-Driven Development** pour Codex, [Claude Code](https://docs.anthropic.com/en/docs/claude-code) et [Cursor](https://cursor.com). Chaque feature passe par un pipeline structuré avec des parcours adaptatifs et des gates de preuve avant d'atteindre le code.
|
|
34
|
+
|
|
35
|
+
Inspiré de [spec-kit](https://github.com/github/spec-kit).
|
|
36
|
+
|
|
37
|
+
## Qu'est-ce que devflow ?
|
|
38
|
+
|
|
39
|
+
devflow impose un workflow séquentiel où chaque feature est spécifiée, planifiée et reviewée **avant** toute ligne de code. Le pipeline complet :
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
constitution → spec → clarify → review-spec → research → plan → contracts → tasks → review-tasks → implement → review-impl → docs → done
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Les gates de review (`review-spec`, `review-tasks`, `review-impl`) sont bloquantes : aucune progression sans verdict PASS.
|
|
46
|
+
|
|
47
|
+
Deux interfaces complémentaires :
|
|
48
|
+
- **CLI Python** (`devflow`) — moteur d'état, orchestration, branches, hooks et installation
|
|
49
|
+
- **Contrats adaptatifs** (`devflow adaptive`) — activités portables exécutables avec Codex
|
|
50
|
+
- **Commandes slash** (`/devflow.*`) — interface historique de production et review dans Claude Code
|
|
51
|
+
|
|
52
|
+
## Prérequis
|
|
53
|
+
|
|
54
|
+
- **Python 3.11+**
|
|
55
|
+
- **Codex**, **Claude Code** ou **Cursor**
|
|
56
|
+
- **git**
|
|
57
|
+
|
|
58
|
+
## Installation
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
uv tool install devflow-cli
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Ou avec pip :
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install devflow-cli
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Pour vérifier l'installation :
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
devflow check --ai codex
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
> Pour l'installation en mode développeur, voir [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
### 1. Initialiser devflow dans votre projet
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
devflow init --ai codex
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
En mode Codex, cela initialise `.specify/` sans installer de fichiers dans
|
|
87
|
+
`~/.claude/`. Pour l'interface historique Claude Code, utilisez simplement
|
|
88
|
+
`devflow init`.
|
|
89
|
+
|
|
90
|
+
Vérifiez ensuite l'environnement choisi :
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
devflow check --ai codex
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2. Créer une feature
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
devflow feature KS-123 --short-name "user-auth"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Crée la branche et le dossier de specs associé.
|
|
103
|
+
|
|
104
|
+
### 3. Exécuter le pipeline
|
|
105
|
+
|
|
106
|
+
Depuis le terminal :
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
devflow run KS-123
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Avant de lancer le pipeline, `assess` peut recommander un niveau de rigueur
|
|
113
|
+
sans modifier la progression existante :
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
devflow assess KS-123 --scope local --ambiguity low --risk low
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
La commande écrit `.specify/specs/<feature>/assessment.json`. Les profils
|
|
120
|
+
possibles sont `quick`, `standard`, `deep` et `critical`. Les quatre profils
|
|
121
|
+
disposent d'une machine d'état exécutable :
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
devflow adaptive start KS-123
|
|
125
|
+
devflow adaptive complete KS-123 implement
|
|
126
|
+
devflow adaptive evidence KS-123 targeted-check --report "test ciblé réussi"
|
|
127
|
+
devflow adaptive evidence KS-123 diff-inspection --report "diff relu"
|
|
128
|
+
devflow adaptive complete KS-123 verify
|
|
129
|
+
devflow adaptive complete KS-123 done
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Le parcours adaptatif utilise `workflow-state.json` et ne modifie pas le
|
|
133
|
+
`state.json` du pipeline historique.
|
|
134
|
+
|
|
135
|
+
Tous les profils peuvent exécuter leur activité courante avec Codex :
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
devflow adaptive run KS-123 --agent codex
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Une validation planifiée échouée à cause d'une baseline connue peut recevoir
|
|
142
|
+
une dérogation auditée, sans réécrire le plan ou la preuve historique :
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
devflow adaptive waive KS-123 V-05 --reason "Baseline connue et hors diff"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Si une vérification révèle qu'il faut corriger l'implémentation, le retour est
|
|
149
|
+
explicite et audité :
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
devflow adaptive reopen KS-123 implement \
|
|
153
|
+
--reason "La vérification a révélé un défaut à corriger"
|
|
154
|
+
devflow adaptive run KS-123 --agent codex
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
La tentative précédente est archivée sous `attempts/`, `reopen-log.json`
|
|
158
|
+
conserve le motif et l'auteur, et le résultat suivant garde le périmètre cumulé
|
|
159
|
+
des fichiers d'implémentation.
|
|
160
|
+
|
|
161
|
+
Chaque invocation traite une seule activité. `prepare` (standard) analyse le
|
|
162
|
+
dépôt en lecture seule. Deep produit `spec.md`, `plan.md` et `tasks.md`, puis
|
|
163
|
+
réalise une revue indépendante après les preuves. Critical ajoute l'analyse
|
|
164
|
+
des risques, la recherche, les contrats, une preuve sensible non dérogeable,
|
|
165
|
+
une revue indépendante et un contrôle explicite du rollback. `implement` utilise Codex
|
|
166
|
+
avec un résultat JSON structuré ; `verify` est exécutée localement par Devflow, qui
|
|
167
|
+
sélectionne une commande sûre, produit les preuves et contrôle le diff réel.
|
|
168
|
+
Pour une preuve sensible Critical, un code de sortie nul ne suffit pas : une
|
|
169
|
+
suite Maven dont tous les tests sont ignorés est enregistrée en échec.
|
|
170
|
+
|
|
171
|
+
Un `worklog.md` compact est créé et actualisé automatiquement pendant le
|
|
172
|
+
parcours. Il résume l'objectif, l'évaluation, les fichiers modifiés, les
|
|
173
|
+
validations et les risques, tout en préservant une section de notes manuelles.
|
|
174
|
+
|
|
175
|
+
Le pipeline historique `devflow run` enchaîne les sessions de l'agent choisi et
|
|
176
|
+
relit `state.json`. Le parcours quotidien recommandé avec Codex utilise
|
|
177
|
+
`devflow adaptive run`, une activité et une gate à la fois.
|
|
178
|
+
|
|
179
|
+
Pour travailler étape par étape dans Claude Code, lancez les commandes slash dans l'ordre :
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
/devflow.spec "Description de la feature"
|
|
183
|
+
/devflow.clarify
|
|
184
|
+
/devflow.plan
|
|
185
|
+
/devflow.tasks
|
|
186
|
+
/devflow.implement
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Chaque commande produit un artefact (`spec.md`, `plan.md`, `tasks.md`, etc.) et fait avancer la feature dans le pipeline.
|
|
190
|
+
|
|
191
|
+
### 4. Suivre la progression
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
devflow status
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Documentation
|
|
198
|
+
|
|
199
|
+
Consultez la [documentation complète](docs/index.md) pour :
|
|
200
|
+
|
|
201
|
+
- [Pipeline détaillé](docs/pipeline.md) — les 13 étapes expliquées
|
|
202
|
+
- [Commandes CLI](docs/cli-reference.md) — référence des commandes terminal
|
|
203
|
+
- [Commandes slash](docs/commands-reference.md) — référence des 23 commandes Claude Code
|
|
204
|
+
- [Guides par type de projet](docs/index.md#guides-par-type-de-projet) — brownfield, greenfield, microservices
|
|
205
|
+
|
|
206
|
+
## Contribuer
|
|
207
|
+
|
|
208
|
+
Les contributions sont les bienvenues. Consultez le [guide de contribution](CONTRIBUTING.md) pour les prérequis, l'installation dev et les conventions.
|
|
209
|
+
|
|
210
|
+
## English Summary
|
|
211
|
+
|
|
212
|
+
**devflow** is a Spec-Driven Development toolkit for Codex, [Claude Code](https://docs.anthropic.com/en/docs/claude-code), and [Cursor](https://cursor.com). It provides adaptive quick, standard, deep, and critical workflows with evidence-based gates.
|
|
213
|
+
|
|
214
|
+
The full pipeline: `constitution → spec → clarify → review-spec → research → plan → contracts → tasks → review-tasks → implement → review-impl → docs → done`.
|
|
215
|
+
|
|
216
|
+
**Install:** `uv tool install devflow-cli` (or `pip install devflow-cli`). Requires Python 3.11+, Codex, Claude Code or Cursor, and git.
|
|
217
|
+
|
|
218
|
+
**Quick start:**
|
|
219
|
+
1. `devflow init --ai codex` — set up an agent-independent project for Codex
|
|
220
|
+
2. `devflow feature KS-123` — create a feature branch
|
|
221
|
+
3. `devflow assess KS-123 ...` → `devflow adaptive start KS-123` → `devflow adaptive run KS-123 --agent codex`
|
|
222
|
+
|
|
223
|
+
For full documentation, see [docs/index.md](docs/index.md). To contribute, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# devflow
|
|
2
|
+
|
|
3
|
+
[](https://github.com/sopequenoteck/devflow/actions/workflows/ci.yml)
|
|
4
|
+
[](https://pypi.org/project/devflow-cli/)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
Toolkit de **Spec-Driven Development** pour Codex, [Claude Code](https://docs.anthropic.com/en/docs/claude-code) et [Cursor](https://cursor.com). Chaque feature passe par un pipeline structuré avec des parcours adaptatifs et des gates de preuve avant d'atteindre le code.
|
|
8
|
+
|
|
9
|
+
Inspiré de [spec-kit](https://github.com/github/spec-kit).
|
|
10
|
+
|
|
11
|
+
## Qu'est-ce que devflow ?
|
|
12
|
+
|
|
13
|
+
devflow impose un workflow séquentiel où chaque feature est spécifiée, planifiée et reviewée **avant** toute ligne de code. Le pipeline complet :
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
constitution → spec → clarify → review-spec → research → plan → contracts → tasks → review-tasks → implement → review-impl → docs → done
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Les gates de review (`review-spec`, `review-tasks`, `review-impl`) sont bloquantes : aucune progression sans verdict PASS.
|
|
20
|
+
|
|
21
|
+
Deux interfaces complémentaires :
|
|
22
|
+
- **CLI Python** (`devflow`) — moteur d'état, orchestration, branches, hooks et installation
|
|
23
|
+
- **Contrats adaptatifs** (`devflow adaptive`) — activités portables exécutables avec Codex
|
|
24
|
+
- **Commandes slash** (`/devflow.*`) — interface historique de production et review dans Claude Code
|
|
25
|
+
|
|
26
|
+
## Prérequis
|
|
27
|
+
|
|
28
|
+
- **Python 3.11+**
|
|
29
|
+
- **Codex**, **Claude Code** ou **Cursor**
|
|
30
|
+
- **git**
|
|
31
|
+
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
uv tool install devflow-cli
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Ou avec pip :
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install devflow-cli
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Pour vérifier l'installation :
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
devflow check --ai codex
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> Pour l'installation en mode développeur, voir [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
### 1. Initialiser devflow dans votre projet
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
devflow init --ai codex
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
En mode Codex, cela initialise `.specify/` sans installer de fichiers dans
|
|
61
|
+
`~/.claude/`. Pour l'interface historique Claude Code, utilisez simplement
|
|
62
|
+
`devflow init`.
|
|
63
|
+
|
|
64
|
+
Vérifiez ensuite l'environnement choisi :
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
devflow check --ai codex
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 2. Créer une feature
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
devflow feature KS-123 --short-name "user-auth"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Crée la branche et le dossier de specs associé.
|
|
77
|
+
|
|
78
|
+
### 3. Exécuter le pipeline
|
|
79
|
+
|
|
80
|
+
Depuis le terminal :
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
devflow run KS-123
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Avant de lancer le pipeline, `assess` peut recommander un niveau de rigueur
|
|
87
|
+
sans modifier la progression existante :
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
devflow assess KS-123 --scope local --ambiguity low --risk low
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
La commande écrit `.specify/specs/<feature>/assessment.json`. Les profils
|
|
94
|
+
possibles sont `quick`, `standard`, `deep` et `critical`. Les quatre profils
|
|
95
|
+
disposent d'une machine d'état exécutable :
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
devflow adaptive start KS-123
|
|
99
|
+
devflow adaptive complete KS-123 implement
|
|
100
|
+
devflow adaptive evidence KS-123 targeted-check --report "test ciblé réussi"
|
|
101
|
+
devflow adaptive evidence KS-123 diff-inspection --report "diff relu"
|
|
102
|
+
devflow adaptive complete KS-123 verify
|
|
103
|
+
devflow adaptive complete KS-123 done
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Le parcours adaptatif utilise `workflow-state.json` et ne modifie pas le
|
|
107
|
+
`state.json` du pipeline historique.
|
|
108
|
+
|
|
109
|
+
Tous les profils peuvent exécuter leur activité courante avec Codex :
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
devflow adaptive run KS-123 --agent codex
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Une validation planifiée échouée à cause d'une baseline connue peut recevoir
|
|
116
|
+
une dérogation auditée, sans réécrire le plan ou la preuve historique :
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
devflow adaptive waive KS-123 V-05 --reason "Baseline connue et hors diff"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Si une vérification révèle qu'il faut corriger l'implémentation, le retour est
|
|
123
|
+
explicite et audité :
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
devflow adaptive reopen KS-123 implement \
|
|
127
|
+
--reason "La vérification a révélé un défaut à corriger"
|
|
128
|
+
devflow adaptive run KS-123 --agent codex
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
La tentative précédente est archivée sous `attempts/`, `reopen-log.json`
|
|
132
|
+
conserve le motif et l'auteur, et le résultat suivant garde le périmètre cumulé
|
|
133
|
+
des fichiers d'implémentation.
|
|
134
|
+
|
|
135
|
+
Chaque invocation traite une seule activité. `prepare` (standard) analyse le
|
|
136
|
+
dépôt en lecture seule. Deep produit `spec.md`, `plan.md` et `tasks.md`, puis
|
|
137
|
+
réalise une revue indépendante après les preuves. Critical ajoute l'analyse
|
|
138
|
+
des risques, la recherche, les contrats, une preuve sensible non dérogeable,
|
|
139
|
+
une revue indépendante et un contrôle explicite du rollback. `implement` utilise Codex
|
|
140
|
+
avec un résultat JSON structuré ; `verify` est exécutée localement par Devflow, qui
|
|
141
|
+
sélectionne une commande sûre, produit les preuves et contrôle le diff réel.
|
|
142
|
+
Pour une preuve sensible Critical, un code de sortie nul ne suffit pas : une
|
|
143
|
+
suite Maven dont tous les tests sont ignorés est enregistrée en échec.
|
|
144
|
+
|
|
145
|
+
Un `worklog.md` compact est créé et actualisé automatiquement pendant le
|
|
146
|
+
parcours. Il résume l'objectif, l'évaluation, les fichiers modifiés, les
|
|
147
|
+
validations et les risques, tout en préservant une section de notes manuelles.
|
|
148
|
+
|
|
149
|
+
Le pipeline historique `devflow run` enchaîne les sessions de l'agent choisi et
|
|
150
|
+
relit `state.json`. Le parcours quotidien recommandé avec Codex utilise
|
|
151
|
+
`devflow adaptive run`, une activité et une gate à la fois.
|
|
152
|
+
|
|
153
|
+
Pour travailler étape par étape dans Claude Code, lancez les commandes slash dans l'ordre :
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
/devflow.spec "Description de la feature"
|
|
157
|
+
/devflow.clarify
|
|
158
|
+
/devflow.plan
|
|
159
|
+
/devflow.tasks
|
|
160
|
+
/devflow.implement
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Chaque commande produit un artefact (`spec.md`, `plan.md`, `tasks.md`, etc.) et fait avancer la feature dans le pipeline.
|
|
164
|
+
|
|
165
|
+
### 4. Suivre la progression
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
devflow status
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Documentation
|
|
172
|
+
|
|
173
|
+
Consultez la [documentation complète](docs/index.md) pour :
|
|
174
|
+
|
|
175
|
+
- [Pipeline détaillé](docs/pipeline.md) — les 13 étapes expliquées
|
|
176
|
+
- [Commandes CLI](docs/cli-reference.md) — référence des commandes terminal
|
|
177
|
+
- [Commandes slash](docs/commands-reference.md) — référence des 23 commandes Claude Code
|
|
178
|
+
- [Guides par type de projet](docs/index.md#guides-par-type-de-projet) — brownfield, greenfield, microservices
|
|
179
|
+
|
|
180
|
+
## Contribuer
|
|
181
|
+
|
|
182
|
+
Les contributions sont les bienvenues. Consultez le [guide de contribution](CONTRIBUTING.md) pour les prérequis, l'installation dev et les conventions.
|
|
183
|
+
|
|
184
|
+
## English Summary
|
|
185
|
+
|
|
186
|
+
**devflow** is a Spec-Driven Development toolkit for Codex, [Claude Code](https://docs.anthropic.com/en/docs/claude-code), and [Cursor](https://cursor.com). It provides adaptive quick, standard, deep, and critical workflows with evidence-based gates.
|
|
187
|
+
|
|
188
|
+
The full pipeline: `constitution → spec → clarify → review-spec → research → plan → contracts → tasks → review-tasks → implement → review-impl → docs → done`.
|
|
189
|
+
|
|
190
|
+
**Install:** `uv tool install devflow-cli` (or `pip install devflow-cli`). Requires Python 3.11+, Codex, Claude Code or Cursor, and git.
|
|
191
|
+
|
|
192
|
+
**Quick start:**
|
|
193
|
+
1. `devflow init --ai codex` — set up an agent-independent project for Codex
|
|
194
|
+
2. `devflow feature KS-123` — create a feature branch
|
|
195
|
+
3. `devflow assess KS-123 ...` → `devflow adaptive start KS-123` → `devflow adaptive run KS-123 --agent codex`
|
|
196
|
+
|
|
197
|
+
For full documentation, see [docs/index.md](docs/index.md). To contribute, see [CONTRIBUTING.md](CONTRIBUTING.md).
|