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.
Files changed (393) hide show
  1. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/misc.xml +0 -1
  2. devflow_cli-2.9.0/.idea/workspace.xml +224 -0
  3. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/CHANGELOG.md +19 -0
  4. devflow_cli-2.9.0/PKG-INFO +223 -0
  5. devflow_cli-2.9.0/README.md +197 -0
  6. devflow_cli-2.9.0/docs/activity-contracts.md +255 -0
  7. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/cli-reference.md +179 -3
  8. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/index.md +2 -1
  9. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/pyproject.toml +2 -2
  10. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/__init__.py +2 -2
  11. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/adapters/agents.py +73 -1
  12. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/cli.py +4 -0
  13. devflow_cli-2.9.0/src/devflow_cli/commands/adaptive.py +357 -0
  14. devflow_cli-2.9.0/src/devflow_cli/commands/assess.py +115 -0
  15. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/check.py +44 -1
  16. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/init_cmd.py +16 -10
  17. devflow_cli-2.9.0/src/devflow_cli/core/activity_contracts.py +735 -0
  18. devflow_cli-2.9.0/src/devflow_cli/core/adaptive_runner.py +332 -0
  19. devflow_cli-2.9.0/src/devflow_cli/core/adaptive_workflow.py +303 -0
  20. devflow_cli-2.9.0/src/devflow_cli/core/assessment.py +161 -0
  21. devflow_cli-2.9.0/src/devflow_cli/core/automatic_evidence.py +717 -0
  22. devflow_cli-2.9.0/src/devflow_cli/core/remediation.py +155 -0
  23. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/validators.py +24 -0
  24. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/verification.py +47 -4
  25. devflow_cli-2.9.0/src/devflow_cli/core/waivers.py +285 -0
  26. devflow_cli-2.9.0/src/devflow_cli/core/worklog.py +304 -0
  27. devflow_cli-2.9.0/src/devflow_cli/core/worktree_snapshot.py +91 -0
  28. devflow_cli-2.9.0/src/devflow_cli/utils/__init__.py +0 -0
  29. devflow_cli-2.9.0/tests/test_activity_contracts.py +424 -0
  30. devflow_cli-2.9.0/tests/test_adaptive_runner.py +495 -0
  31. devflow_cli-2.9.0/tests/test_adaptive_workflow.py +185 -0
  32. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_agent_adapters.py +52 -2
  33. devflow_cli-2.9.0/tests/test_assessment.py +77 -0
  34. devflow_cli-2.9.0/tests/test_automatic_evidence.py +735 -0
  35. devflow_cli-2.9.0/tests/test_cmd_adaptive.py +588 -0
  36. devflow_cli-2.9.0/tests/test_cmd_assess.py +98 -0
  37. devflow_cli-2.9.0/tests/test_cmd_check.py +112 -0
  38. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_init.py +19 -0
  39. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_validators.py +60 -0
  40. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_verification.py +52 -0
  41. devflow_cli-2.9.0/tests/test_waivers.py +182 -0
  42. devflow_cli-2.9.0/tests/test_worklog.py +228 -0
  43. devflow_cli-2.9.0/tests/test_worktree_snapshot.py +59 -0
  44. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/uv.lock +1 -1
  45. devflow_cli-2.8.0/PKG-INFO +0 -149
  46. devflow_cli-2.8.0/README.md +0 -123
  47. devflow_cli-2.8.0/tests/test_cmd_check.py +0 -53
  48. /devflow_cli-2.8.0/src/devflow_cli/commands/__init__.py → /devflow_cli-2.9.0/.ai/mcp/mcp.json +0 -0
  49. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.analyze.md +0 -0
  50. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.checklist.md +0 -0
  51. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.clarify.md +0 -0
  52. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.constitution.md +0 -0
  53. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.implement.md +0 -0
  54. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.plan.md +0 -0
  55. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.specify.md +0 -0
  56. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.tasks.md +0 -0
  57. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.claude/commands/speckit.taskstoissues.md +0 -0
  58. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.githooks/post-checkout +0 -0
  59. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.githooks/post-merge +0 -0
  60. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.github/workflows/ci.yml +0 -0
  61. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.github/workflows/release.yml +0 -0
  62. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.gitignore +0 -0
  63. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/.gitignore +0 -0
  64. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/devflow.iml +0 -0
  65. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/modules.xml +0 -0
  66. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.idea/vcs.xml +0 -0
  67. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/init-options.json +0 -0
  68. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/memory/constitution.md +0 -0
  69. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  70. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/common.sh +0 -0
  71. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  72. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  73. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  74. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
  75. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
  76. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/data-model.md +0 -0
  77. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/plan.md +0 -0
  78. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/research.md +0 -0
  79. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/spec.md +0 -0
  80. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/001-cli-init-options/tasks.md +0 -0
  81. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
  82. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
  83. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
  84. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/data-model.md +0 -0
  85. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/plan.md +0 -0
  86. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/research.md +0 -0
  87. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/spec.md +0 -0
  88. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/002-cascade-regen/tasks.md +0 -0
  89. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
  90. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/data-model.md +0 -0
  91. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/plan.md +0 -0
  92. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
  93. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/research.md +0 -0
  94. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/spec.md +0 -0
  95. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/003-usecase-guides/tasks.md +0 -0
  96. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
  97. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
  98. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
  99. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/plan.md +0 -0
  100. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
  101. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/research.md +0 -0
  102. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/spec.md +0 -0
  103. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
  104. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
  105. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/plan.md +0 -0
  106. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
  107. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/research.md +0 -0
  108. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/spec.md +0 -0
  109. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/005-implement-subphases/tasks.md +0 -0
  110. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
  111. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
  112. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/data-model.md +0 -0
  113. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/plan.md +0 -0
  114. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
  115. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/research.md +0 -0
  116. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/spec.md +0 -0
  117. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/006-template-upgrade/tasks.md +0 -0
  118. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
  119. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/data-model.md +0 -0
  120. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/plan.md +0 -0
  121. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/quickstart.md +0 -0
  122. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/research.md +0 -0
  123. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/spec.md +0 -0
  124. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/007-project-documentation/tasks.md +0 -0
  125. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
  126. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/plan.md +0 -0
  127. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
  128. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/research.md +0 -0
  129. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/spec.md +0 -0
  130. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
  131. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
  132. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/plan.md +0 -0
  133. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
  134. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/research.md +0 -0
  135. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/spec.md +0 -0
  136. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/009-ci-pypi/tasks.md +0 -0
  137. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
  138. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
  139. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
  140. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/research.md +0 -0
  141. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
  142. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
  143. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
  144. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/plan.md +0 -0
  145. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/quickstart.md +0 -0
  146. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/research.md +0 -0
  147. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/spec.md +0 -0
  148. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/011-cursor-support/tasks.md +0 -0
  149. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
  150. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
  151. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
  152. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
  153. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
  154. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
  155. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/plan.md +0 -0
  156. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
  157. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/spec.md +0 -0
  158. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
  159. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
  160. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
  161. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
  162. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
  163. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
  164. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
  165. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
  166. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
  167. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
  168. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
  169. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
  170. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/plan.md +0 -0
  171. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/research.md +0 -0
  172. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/spec.md +0 -0
  173. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
  174. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
  175. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
  176. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
  177. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
  178. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
  179. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
  180. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
  181. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/data-model.md +0 -0
  182. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/plan.md +0 -0
  183. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/research.md +0 -0
  184. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/spec.md +0 -0
  185. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/019-quality-hardening/tasks.md +0 -0
  186. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
  187. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
  188. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/plan.md +0 -0
  189. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
  190. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/research.md +0 -0
  191. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/spec.md +0 -0
  192. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
  193. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
  194. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/plan.md +0 -0
  195. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/research.md +0 -0
  196. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/spec.md +0 -0
  197. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/021-review-iterations/tasks.md +0 -0
  198. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
  199. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/plan.md +0 -0
  200. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/research.md +0 -0
  201. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/spec.md +0 -0
  202. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
  203. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
  204. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/plan.md +0 -0
  205. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/research.md +0 -0
  206. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/spec.md +0 -0
  207. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/023-add-logging/tasks.md +0 -0
  208. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
  209. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/plan.md +0 -0
  210. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/research.md +0 -0
  211. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/spec.md +0 -0
  212. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/024-validate-constants/tasks.md +0 -0
  213. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
  214. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/plan.md +0 -0
  215. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/research.md +0 -0
  216. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/spec.md +0 -0
  217. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/025-harden-tests/tasks.md +0 -0
  218. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
  219. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
  220. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
  221. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
  222. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
  223. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
  224. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
  225. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
  226. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/agent-file-template.md +0 -0
  227. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/checklist-template.md +0 -0
  228. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/constitution-template.md +0 -0
  229. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/plan-template.md +0 -0
  230. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template-brownfield.md +0 -0
  231. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template-greenfield.md +0 -0
  232. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template-microservices.md +0 -0
  233. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/spec-template.md +0 -0
  234. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/.specify/templates/tasks-template.md +0 -0
  235. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/CLAUDE.md +0 -0
  236. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/CONTRIBUTING.md +0 -0
  237. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/LICENSE +0 -0
  238. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/agents/devflow-autofix.md +0 -0
  239. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/agents/devflow-review.md +0 -0
  240. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.analyze.md +0 -0
  241. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.checklist.md +0 -0
  242. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.clarify.md +0 -0
  243. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.constitution.md +0 -0
  244. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.context.md +0 -0
  245. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.contracts.md +0 -0
  246. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.docs.md +0 -0
  247. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.extension.md +0 -0
  248. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.implement.md +0 -0
  249. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.init.md +0 -0
  250. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.md +0 -0
  251. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.metrics.md +0 -0
  252. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.plan.md +0 -0
  253. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.regen.md +0 -0
  254. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.research.md +0 -0
  255. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.review-impl.md +0 -0
  256. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.review-spec.md +0 -0
  257. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.review-tasks.md +0 -0
  258. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.spec.md +0 -0
  259. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.status.md +0 -0
  260. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.sync-linear.md +0 -0
  261. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.tasks-to-issues.md +0 -0
  262. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/commands/devflow.tasks.md +0 -0
  263. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/commands-reference.md +0 -0
  264. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/cursor-guide.md +0 -0
  265. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/guides/brownfield.md +0 -0
  266. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/guides/greenfield.md +0 -0
  267. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/guides/microservices.md +0 -0
  268. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/pipeline-reference.generated.md +0 -0
  269. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/pipeline.md +0 -0
  270. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/docs/spec-driven.md +0 -0
  271. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/EXTENSION-API-REFERENCE.md +0 -0
  272. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -0
  273. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/README.md +0 -0
  274. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/catalog.community.json +0 -0
  275. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/catalog.json +0 -0
  276. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/template/example-command.md +0 -0
  277. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/extensions/template/example-extension.json +0 -0
  278. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/adapters/__init__.py +0 -0
  279. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/adapters/linear.py +0 -0
  280. {devflow_cli-2.8.0/src/devflow_cli/core → devflow_cli-2.9.0/src/devflow_cli/commands}/__init__.py +0 -0
  281. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/context.py +0 -0
  282. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/docs_sync.py +0 -0
  283. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/export_cmd.py +0 -0
  284. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/extension.py +0 -0
  285. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/feature.py +0 -0
  286. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/hooks_cmd.py +0 -0
  287. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/linear.py +0 -0
  288. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/migrate_cmd.py +0 -0
  289. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/migrate_speckit.py +0 -0
  290. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/review.py +0 -0
  291. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/rollback.py +0 -0
  292. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/run.py +0 -0
  293. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/stale.py +0 -0
  294. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/status.py +0 -0
  295. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/step.py +0 -0
  296. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/traceability.py +0 -0
  297. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/upgrade_cmd.py +0 -0
  298. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/commands/verify.py +0 -0
  299. {devflow_cli-2.8.0/src/devflow_cli/utils → devflow_cli-2.9.0/src/devflow_cli/core}/__init__.py +0 -0
  300. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/catalog.py +0 -0
  301. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/docgen.py +0 -0
  302. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/git.py +0 -0
  303. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/hooks.py +0 -0
  304. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/installer.py +0 -0
  305. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/manifest.py +0 -0
  306. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/orchestrator.py +0 -0
  307. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/scanner.py +0 -0
  308. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/staleness.py +0 -0
  309. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/state.py +0 -0
  310. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/state_store.py +0 -0
  311. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/core/traceability.py +0 -0
  312. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/schemas/state.schema.json +0 -0
  313. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/console.py +0 -0
  314. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/logging.py +0 -0
  315. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/paths.py +0 -0
  316. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/src/devflow_cli/utils/strings.py +0 -0
  317. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/agent-context-template.md +0 -0
  318. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/analyze-template.md +0 -0
  319. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklist-template.md +0 -0
  320. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/api.md +0 -0
  321. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/requirements.md +0 -0
  322. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/security.md +0 -0
  323. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/checklists/ux.md +0 -0
  324. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/clarify-template.md +0 -0
  325. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/constitution-template.md +0 -0
  326. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/README-template.md +0 -0
  327. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/api-template.md +0 -0
  328. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/components-template.md +0 -0
  329. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/interfaces-template.md +0 -0
  330. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts/services-template.md +0 -0
  331. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/contracts-template.md +0 -0
  332. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/data-model-template.md +0 -0
  333. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/devflow-hooks-template.yml +0 -0
  334. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/docs-template.md +0 -0
  335. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/export/copilot-instructions-template.md +0 -0
  336. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/export/cursor-rules-template.md +0 -0
  337. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/extension-manifest-template.json +0 -0
  338. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/plan-template.md +0 -0
  339. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/quickstart-template.md +0 -0
  340. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/research-template.md +0 -0
  341. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/review-impl-template.md +0 -0
  342. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/review-spec-template.md +0 -0
  343. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/review-tasks-template.md +0 -0
  344. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/spec-template.md +0 -0
  345. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/templates/tasks-template.md +0 -0
  346. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/conftest.py +0 -0
  347. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/agents/mock-agent.md +0 -0
  348. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/commands/mock-command.md +0 -0
  349. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/mock-catalog.json +0 -0
  350. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/fixtures/mock-state.json +0 -0
  351. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/run-tests.sh +0 -0
  352. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test-helpers.sh +0 -0
  353. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test-template-variants.sh +0 -0
  354. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_bash_runner.py +0 -0
  355. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_catalog.py +0 -0
  356. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_context.py +0 -0
  357. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_docs_sync.py +0 -0
  358. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_extension.py +0 -0
  359. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_feature.py +0 -0
  360. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_hooks.py +0 -0
  361. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_linear.py +0 -0
  362. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_migrate.py +0 -0
  363. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_migrate_speckit.py +0 -0
  364. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_review.py +0 -0
  365. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_run.py +0 -0
  366. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_stale.py +0 -0
  367. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_status.py +0 -0
  368. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_step.py +0 -0
  369. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_traceability.py +0 -0
  370. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_upgrade.py +0 -0
  371. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_cmd_verify.py +0 -0
  372. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_constants.py +0 -0
  373. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_context.py +0 -0
  374. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_docgen.py +0 -0
  375. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_e2e_pipeline.py +0 -0
  376. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_git.py +0 -0
  377. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_hooks.py +0 -0
  378. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_installer.py +0 -0
  379. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_integration.py +0 -0
  380. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_linear_adapter.py +0 -0
  381. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_linear_order.py +0 -0
  382. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_logging.py +0 -0
  383. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_manifest.py +0 -0
  384. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_orchestrator.py +0 -0
  385. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_paths.py +0 -0
  386. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_paths_project_root.py +0 -0
  387. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_rollback.py +0 -0
  388. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_scanner.py +0 -0
  389. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_staleness.py +0 -0
  390. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_state.py +0 -0
  391. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_state_schema.py +0 -0
  392. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_traceability.py +0 -0
  393. {devflow_cli-2.8.0 → devflow_cli-2.9.0}/tests/test_version.py +0 -0
@@ -1,4 +1,3 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
1
  <project version="4">
3
2
  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="corretto-21" project-jdk-type="JavaSDK">
4
3
  <output url="file://$PROJECT_DIR$/out" />
@@ -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
+ [![CI](https://github.com/sopequenoteck/devflow/actions/workflows/ci.yml/badge.svg)](https://github.com/sopequenoteck/devflow/actions/workflows/ci.yml)
30
+ [![PyPI](https://img.shields.io/pypi/v/devflow-cli)](https://pypi.org/project/devflow-cli/)
31
+ [![License](https://img.shields.io/pypi/l/devflow-cli)](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
+ [![CI](https://github.com/sopequenoteck/devflow/actions/workflows/ci.yml/badge.svg)](https://github.com/sopequenoteck/devflow/actions/workflows/ci.yml)
4
+ [![PyPI](https://img.shields.io/pypi/v/devflow-cli)](https://pypi.org/project/devflow-cli/)
5
+ [![License](https://img.shields.io/pypi/l/devflow-cli)](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).