devflow-cli 2.9.0__tar.gz → 3.0.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 (428) hide show
  1. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.github/workflows/ci.yml +4 -1
  2. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.github/workflows/release.yml +4 -1
  3. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.idea/workspace.xml +44 -17
  4. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/CHANGELOG.md +16 -0
  5. devflow_cli-3.0.0/CLAUDE.md +20 -0
  6. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/CONTRIBUTING.md +1 -1
  7. devflow_cli-3.0.0/PKG-INFO +113 -0
  8. devflow_cli-3.0.0/README.md +85 -0
  9. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/commands/devflow.init.md +5 -7
  10. devflow_cli-3.0.0/commands/devflow.md +25 -0
  11. devflow_cli-3.0.0/commands/devflow.regen.md +34 -0
  12. devflow_cli-3.0.0/commands/devflow.status.md +11 -0
  13. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/docs/activity-contracts.md +30 -4
  14. devflow_cli-3.0.0/docs/cli-reference.md +105 -0
  15. devflow_cli-3.0.0/docs/commands-reference.md +13 -0
  16. devflow_cli-3.0.0/docs/cursor-guide.md +12 -0
  17. devflow_cli-3.0.0/docs/guides/brownfield.md +11 -0
  18. devflow_cli-3.0.0/docs/guides/greenfield.md +10 -0
  19. devflow_cli-3.0.0/docs/guides/microservices.md +12 -0
  20. devflow_cli-3.0.0/docs/index.md +16 -0
  21. devflow_cli-3.0.0/docs/pipeline-reference.generated.md +30 -0
  22. devflow_cli-3.0.0/docs/pipeline.md +28 -0
  23. devflow_cli-3.0.0/docs/spec-driven.md +11 -0
  24. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/extensions/EXTENSION-API-REFERENCE.md +1 -1
  25. devflow_cli-3.0.0/extensions/catalog.json +19 -0
  26. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/pyproject.toml +15 -2
  27. devflow_cli-3.0.0/src/devflow_cli/__init__.py +47 -0
  28. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/adapters/agents.py +109 -1
  29. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/adapters/linear.py +18 -14
  30. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/cli.py +0 -10
  31. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/adaptive.py +285 -48
  32. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/assess.py +39 -37
  33. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/check.py +1 -15
  34. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/docs_sync.py +2 -2
  35. devflow_cli-3.0.0/src/devflow_cli/commands/export_cmd.py +91 -0
  36. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/feature.py +32 -47
  37. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/init_cmd.py +12 -2
  38. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/linear.py +2 -2
  39. devflow_cli-3.0.0/src/devflow_cli/commands/migrate_cmd.py +200 -0
  40. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/stale.py +9 -9
  41. devflow_cli-3.0.0/src/devflow_cli/commands/status.py +194 -0
  42. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/upgrade_cmd.py +9 -0
  43. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/activity_contracts.py +16 -95
  44. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/adaptive_runner.py +17 -6
  45. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/adaptive_workflow.py +16 -30
  46. devflow_cli-3.0.0/src/devflow_cli/core/assessment.py +273 -0
  47. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/automatic_evidence.py +10 -8
  48. devflow_cli-3.0.0/src/devflow_cli/core/contract_schemas.py +110 -0
  49. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/docgen.py +29 -32
  50. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/installer.py +62 -4
  51. devflow_cli-3.0.0/src/devflow_cli/core/operational.py +37 -0
  52. devflow_cli-3.0.0/src/devflow_cli/core/redaction.py +68 -0
  53. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/remediation.py +6 -3
  54. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/staleness.py +22 -35
  55. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/verification.py +5 -3
  56. devflow_cli-3.0.0/src/devflow_cli/schemas/activity-contract-v1.schema.json +76 -0
  57. devflow_cli-3.0.0/src/devflow_cli/schemas/activity-result-v1.schema.json +85 -0
  58. devflow_cli-3.0.0/src/devflow_cli/schemas/assessment-v1.schema.json +60 -0
  59. devflow_cli-3.0.0/src/devflow_cli/schemas/workflow-state-v2.schema.json +66 -0
  60. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/utils/paths.py +23 -12
  61. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/constitution-template.md +1 -1
  62. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/devflow-hooks-template.yml +4 -4
  63. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/conftest.py +0 -30
  64. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_activity_contracts.py +19 -0
  65. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_adaptive_runner.py +125 -44
  66. devflow_cli-3.0.0/tests/test_agent_adapters.py +209 -0
  67. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_assessment.py +35 -0
  68. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_automatic_evidence.py +33 -13
  69. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_adaptive.py +244 -41
  70. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_assess.py +17 -5
  71. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_feature.py +19 -12
  72. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_init.py +19 -0
  73. devflow_cli-3.0.0/tests/test_cmd_migrate.py +185 -0
  74. devflow_cli-3.0.0/tests/test_cmd_status.py +141 -0
  75. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_traceability.py +6 -4
  76. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_upgrade.py +14 -0
  77. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_verify.py +6 -4
  78. devflow_cli-3.0.0/tests/test_constants.py +33 -0
  79. devflow_cli-3.0.0/tests/test_contract_schemas.py +123 -0
  80. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_docgen.py +6 -5
  81. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_hooks.py +1 -1
  82. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_installer.py +36 -1
  83. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_integration.py +64 -48
  84. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_linear_adapter.py +4 -4
  85. devflow_cli-3.0.0/tests/test_linear_order.py +52 -0
  86. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_logging.py +0 -19
  87. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_paths.py +29 -0
  88. devflow_cli-3.0.0/tests/test_staleness.py +85 -0
  89. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_validators.py +3 -89
  90. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_verification.py +35 -0
  91. devflow_cli-3.0.0/tests/test_wheel_adaptive_acceptance.py +420 -0
  92. devflow_cli-3.0.0/tests/test_wheel_install.py +99 -0
  93. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/uv.lock +229 -0
  94. devflow_cli-2.9.0/CLAUDE.md +0 -142
  95. devflow_cli-2.9.0/PKG-INFO +0 -223
  96. devflow_cli-2.9.0/README.md +0 -197
  97. devflow_cli-2.9.0/agents/devflow-autofix.md +0 -111
  98. devflow_cli-2.9.0/agents/devflow-review.md +0 -119
  99. devflow_cli-2.9.0/commands/devflow.analyze.md +0 -75
  100. devflow_cli-2.9.0/commands/devflow.checklist.md +0 -75
  101. devflow_cli-2.9.0/commands/devflow.clarify.md +0 -93
  102. devflow_cli-2.9.0/commands/devflow.constitution.md +0 -63
  103. devflow_cli-2.9.0/commands/devflow.contracts.md +0 -65
  104. devflow_cli-2.9.0/commands/devflow.docs.md +0 -59
  105. devflow_cli-2.9.0/commands/devflow.implement.md +0 -123
  106. devflow_cli-2.9.0/commands/devflow.md +0 -351
  107. devflow_cli-2.9.0/commands/devflow.metrics.md +0 -61
  108. devflow_cli-2.9.0/commands/devflow.plan.md +0 -70
  109. devflow_cli-2.9.0/commands/devflow.regen.md +0 -40
  110. devflow_cli-2.9.0/commands/devflow.research.md +0 -59
  111. devflow_cli-2.9.0/commands/devflow.review-impl.md +0 -58
  112. devflow_cli-2.9.0/commands/devflow.review-spec.md +0 -53
  113. devflow_cli-2.9.0/commands/devflow.review-tasks.md +0 -52
  114. devflow_cli-2.9.0/commands/devflow.spec.md +0 -60
  115. devflow_cli-2.9.0/commands/devflow.status.md +0 -92
  116. devflow_cli-2.9.0/commands/devflow.sync-linear.md +0 -44
  117. devflow_cli-2.9.0/commands/devflow.tasks-to-issues.md +0 -44
  118. devflow_cli-2.9.0/commands/devflow.tasks.md +0 -59
  119. devflow_cli-2.9.0/docs/cli-reference.md +0 -836
  120. devflow_cli-2.9.0/docs/commands-reference.md +0 -557
  121. devflow_cli-2.9.0/docs/cursor-guide.md +0 -75
  122. devflow_cli-2.9.0/docs/guides/brownfield.md +0 -213
  123. devflow_cli-2.9.0/docs/guides/greenfield.md +0 -197
  124. devflow_cli-2.9.0/docs/guides/microservices.md +0 -199
  125. devflow_cli-2.9.0/docs/index.md +0 -27
  126. devflow_cli-2.9.0/docs/pipeline-reference.generated.md +0 -23
  127. devflow_cli-2.9.0/docs/pipeline.md +0 -306
  128. devflow_cli-2.9.0/docs/spec-driven.md +0 -306
  129. devflow_cli-2.9.0/extensions/EXTENSION-DEVELOPMENT-GUIDE.md +0 -196
  130. devflow_cli-2.9.0/extensions/README.md +0 -138
  131. devflow_cli-2.9.0/extensions/catalog.json +0 -77
  132. devflow_cli-2.9.0/src/devflow_cli/__init__.py +0 -113
  133. devflow_cli-2.9.0/src/devflow_cli/commands/export_cmd.py +0 -149
  134. devflow_cli-2.9.0/src/devflow_cli/commands/migrate_cmd.py +0 -105
  135. devflow_cli-2.9.0/src/devflow_cli/commands/migrate_speckit.py +0 -344
  136. devflow_cli-2.9.0/src/devflow_cli/commands/review.py +0 -54
  137. devflow_cli-2.9.0/src/devflow_cli/commands/rollback.py +0 -53
  138. devflow_cli-2.9.0/src/devflow_cli/commands/run.py +0 -123
  139. devflow_cli-2.9.0/src/devflow_cli/commands/status.py +0 -131
  140. devflow_cli-2.9.0/src/devflow_cli/commands/step.py +0 -118
  141. devflow_cli-2.9.0/src/devflow_cli/core/assessment.py +0 -161
  142. devflow_cli-2.9.0/src/devflow_cli/core/orchestrator.py +0 -170
  143. devflow_cli-2.9.0/src/devflow_cli/core/state.py +0 -576
  144. devflow_cli-2.9.0/src/devflow_cli/core/state_store.py +0 -45
  145. devflow_cli-2.9.0/src/devflow_cli/schemas/state.schema.json +0 -39
  146. devflow_cli-2.9.0/templates/analyze-template.md +0 -115
  147. devflow_cli-2.9.0/templates/checklist-template.md +0 -64
  148. devflow_cli-2.9.0/templates/checklists/api.md +0 -25
  149. devflow_cli-2.9.0/templates/checklists/requirements.md +0 -25
  150. devflow_cli-2.9.0/templates/checklists/security.md +0 -25
  151. devflow_cli-2.9.0/templates/checklists/ux.md +0 -25
  152. devflow_cli-2.9.0/templates/clarify-template.md +0 -43
  153. devflow_cli-2.9.0/templates/docs-template.md +0 -74
  154. devflow_cli-2.9.0/templates/export/copilot-instructions-template.md +0 -33
  155. devflow_cli-2.9.0/templates/export/cursor-rules-template.md +0 -38
  156. devflow_cli-2.9.0/templates/review-impl-template.md +0 -71
  157. devflow_cli-2.9.0/templates/review-spec-template.md +0 -59
  158. devflow_cli-2.9.0/templates/review-tasks-template.md +0 -49
  159. devflow_cli-2.9.0/tests/fixtures/mock-state.json +0 -9
  160. devflow_cli-2.9.0/tests/test_agent_adapters.py +0 -126
  161. devflow_cli-2.9.0/tests/test_cmd_migrate.py +0 -100
  162. devflow_cli-2.9.0/tests/test_cmd_migrate_speckit.py +0 -471
  163. devflow_cli-2.9.0/tests/test_cmd_review.py +0 -95
  164. devflow_cli-2.9.0/tests/test_cmd_run.py +0 -39
  165. devflow_cli-2.9.0/tests/test_cmd_status.py +0 -123
  166. devflow_cli-2.9.0/tests/test_cmd_step.py +0 -141
  167. devflow_cli-2.9.0/tests/test_constants.py +0 -57
  168. devflow_cli-2.9.0/tests/test_e2e_pipeline.py +0 -295
  169. devflow_cli-2.9.0/tests/test_linear_order.py +0 -70
  170. devflow_cli-2.9.0/tests/test_orchestrator.py +0 -105
  171. devflow_cli-2.9.0/tests/test_rollback.py +0 -497
  172. devflow_cli-2.9.0/tests/test_staleness.py +0 -258
  173. devflow_cli-2.9.0/tests/test_state.py +0 -1024
  174. devflow_cli-2.9.0/tests/test_state_schema.py +0 -14
  175. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.ai/mcp/mcp.json +0 -0
  176. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.analyze.md +0 -0
  177. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.checklist.md +0 -0
  178. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.clarify.md +0 -0
  179. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.constitution.md +0 -0
  180. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.implement.md +0 -0
  181. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.plan.md +0 -0
  182. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.specify.md +0 -0
  183. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.tasks.md +0 -0
  184. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.claude/commands/speckit.taskstoissues.md +0 -0
  185. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.githooks/post-checkout +0 -0
  186. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.githooks/post-merge +0 -0
  187. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.gitignore +0 -0
  188. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.idea/.gitignore +0 -0
  189. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.idea/devflow.iml +0 -0
  190. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.idea/misc.xml +0 -0
  191. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.idea/modules.xml +0 -0
  192. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.idea/vcs.xml +0 -0
  193. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/init-options.json +0 -0
  194. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/memory/constitution.md +0 -0
  195. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/scripts/bash/check-prerequisites.sh +0 -0
  196. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/scripts/bash/common.sh +0 -0
  197. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/scripts/bash/create-new-feature.sh +0 -0
  198. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/scripts/bash/setup-plan.sh +0 -0
  199. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/scripts/bash/update-agent-context.sh +0 -0
  200. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/checklists/requirements.md +0 -0
  201. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/contracts/cli-init.md +0 -0
  202. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/data-model.md +0 -0
  203. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/plan.md +0 -0
  204. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/research.md +0 -0
  205. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/spec.md +0 -0
  206. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/001-cli-init-options/tasks.md +0 -0
  207. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/checklists/requirements.md +0 -0
  208. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/contracts/cli-regen.md +0 -0
  209. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/contracts/cli-status-staleness.md +0 -0
  210. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/data-model.md +0 -0
  211. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/plan.md +0 -0
  212. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/research.md +0 -0
  213. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/spec.md +0 -0
  214. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/002-cascade-regen/tasks.md +0 -0
  215. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/checklists/requirements.md +0 -0
  216. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/data-model.md +0 -0
  217. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/plan.md +0 -0
  218. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/quickstart.md +0 -0
  219. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/research.md +0 -0
  220. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/spec.md +0 -0
  221. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/003-usecase-guides/tasks.md +0 -0
  222. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/checklists/requirements.md +0 -0
  223. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/contracts/cli-commands.md +0 -0
  224. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/data-model.md +0 -0
  225. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/plan.md +0 -0
  226. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/quickstart.md +0 -0
  227. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/research.md +0 -0
  228. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/spec.md +0 -0
  229. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/004-specify-central-directory/tasks.md +0 -0
  230. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/005-implement-subphases/checklists/requirements.md +0 -0
  231. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/005-implement-subphases/plan.md +0 -0
  232. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/005-implement-subphases/quickstart.md +0 -0
  233. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/005-implement-subphases/research.md +0 -0
  234. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/005-implement-subphases/spec.md +0 -0
  235. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/005-implement-subphases/tasks.md +0 -0
  236. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/checklists/requirements.md +0 -0
  237. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/contracts/cli-upgrade.md +0 -0
  238. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/data-model.md +0 -0
  239. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/plan.md +0 -0
  240. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/quickstart.md +0 -0
  241. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/research.md +0 -0
  242. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/spec.md +0 -0
  243. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/006-template-upgrade/tasks.md +0 -0
  244. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/checklists/requirements.md +0 -0
  245. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/data-model.md +0 -0
  246. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/plan.md +0 -0
  247. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/quickstart.md +0 -0
  248. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/research.md +0 -0
  249. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/spec.md +0 -0
  250. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/007-project-documentation/tasks.md +0 -0
  251. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/008-hardening-bugs/checklists/requirements.md +0 -0
  252. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/008-hardening-bugs/plan.md +0 -0
  253. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/008-hardening-bugs/quickstart.md +0 -0
  254. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/008-hardening-bugs/research.md +0 -0
  255. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/008-hardening-bugs/spec.md +0 -0
  256. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/008-hardening-bugs/tasks.md +0 -0
  257. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/009-ci-pypi/checklists/requirements.md +0 -0
  258. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/009-ci-pypi/plan.md +0 -0
  259. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/009-ci-pypi/quickstart.md +0 -0
  260. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/009-ci-pypi/research.md +0 -0
  261. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/009-ci-pypi/spec.md +0 -0
  262. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/009-ci-pypi/tasks.md +0 -0
  263. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/010-flexible-pipeline/checklists/requirements.md +0 -0
  264. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/010-flexible-pipeline/plan.md +0 -0
  265. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/010-flexible-pipeline/quickstart.md +0 -0
  266. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/010-flexible-pipeline/research.md +0 -0
  267. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/010-flexible-pipeline/spec.md +0 -0
  268. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/010-flexible-pipeline/tasks.md +0 -0
  269. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/011-cursor-support/checklists/requirements.md +0 -0
  270. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/011-cursor-support/plan.md +0 -0
  271. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/011-cursor-support/quickstart.md +0 -0
  272. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/011-cursor-support/research.md +0 -0
  273. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/011-cursor-support/spec.md +0 -0
  274. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/011-cursor-support/tasks.md +0 -0
  275. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/012-fix-critical-bugs/checklists/requirements.md +0 -0
  276. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/012-fix-critical-bugs/plan.md +0 -0
  277. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/012-fix-critical-bugs/research.md +0 -0
  278. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/012-fix-critical-bugs/spec.md +0 -0
  279. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/012-fix-critical-bugs/tasks.md +0 -0
  280. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/013-align-truth-sources/checklists/requirements.md +0 -0
  281. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/013-align-truth-sources/plan.md +0 -0
  282. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/013-align-truth-sources/quickstart.md +0 -0
  283. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/013-align-truth-sources/spec.md +0 -0
  284. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/013-align-truth-sources/tasks.md +0 -0
  285. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/014-enforce-state-machine/checklists/requirements.md +0 -0
  286. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/014-enforce-state-machine/plan.md +0 -0
  287. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/014-enforce-state-machine/quickstart.md +0 -0
  288. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/014-enforce-state-machine/spec.md +0 -0
  289. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/014-enforce-state-machine/tasks.md +0 -0
  290. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/015-fix-review-contradiction/checklists/requirements.md +0 -0
  291. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/015-fix-review-contradiction/plan.md +0 -0
  292. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/015-fix-review-contradiction/research.md +0 -0
  293. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/015-fix-review-contradiction/spec.md +0 -0
  294. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/015-fix-review-contradiction/tasks.md +0 -0
  295. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/016-harden-state-machine/checklists/requirements.md +0 -0
  296. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/016-harden-state-machine/plan.md +0 -0
  297. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/016-harden-state-machine/research.md +0 -0
  298. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/016-harden-state-machine/spec.md +0 -0
  299. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/016-harden-state-machine/tasks.md +0 -0
  300. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/017-fix-robustness-issues/checklists/requirements.md +0 -0
  301. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/017-fix-robustness-issues/plan.md +0 -0
  302. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/017-fix-robustness-issues/research.md +0 -0
  303. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/017-fix-robustness-issues/spec.md +0 -0
  304. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/017-fix-robustness-issues/tasks.md +0 -0
  305. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/018-fix-final-robustness/spec.md +0 -0
  306. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/019-quality-hardening/checklists/requirements.md +0 -0
  307. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/019-quality-hardening/data-model.md +0 -0
  308. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/019-quality-hardening/plan.md +0 -0
  309. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/019-quality-hardening/research.md +0 -0
  310. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/019-quality-hardening/spec.md +0 -0
  311. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/019-quality-hardening/tasks.md +0 -0
  312. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/checklists/requirements.md +0 -0
  313. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/data-model.md +0 -0
  314. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/plan.md +0 -0
  315. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/quickstart.md +0 -0
  316. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/research.md +0 -0
  317. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/spec.md +0 -0
  318. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/020-migrate-speckit/tasks.md +0 -0
  319. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/021-review-iterations/checklists/requirements.md +0 -0
  320. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/021-review-iterations/plan.md +0 -0
  321. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/021-review-iterations/research.md +0 -0
  322. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/021-review-iterations/spec.md +0 -0
  323. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/021-review-iterations/tasks.md +0 -0
  324. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/022-fix-regen-command/checklists/requirements.md +0 -0
  325. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/022-fix-regen-command/plan.md +0 -0
  326. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/022-fix-regen-command/research.md +0 -0
  327. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/022-fix-regen-command/spec.md +0 -0
  328. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/022-fix-regen-command/tasks.md +0 -0
  329. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/023-add-logging/checklists/requirements.md +0 -0
  330. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/023-add-logging/plan.md +0 -0
  331. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/023-add-logging/research.md +0 -0
  332. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/023-add-logging/spec.md +0 -0
  333. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/023-add-logging/tasks.md +0 -0
  334. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/024-validate-constants/checklists/requirements.md +0 -0
  335. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/024-validate-constants/plan.md +0 -0
  336. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/024-validate-constants/research.md +0 -0
  337. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/024-validate-constants/spec.md +0 -0
  338. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/024-validate-constants/tasks.md +0 -0
  339. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/025-harden-tests/checklists/requirements.md +0 -0
  340. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/025-harden-tests/plan.md +0 -0
  341. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/025-harden-tests/research.md +0 -0
  342. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/025-harden-tests/spec.md +0 -0
  343. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/025-harden-tests/tasks.md +0 -0
  344. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/checklists/requirements.md +0 -0
  345. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/contracts/orchestrator-contract.md +0 -0
  346. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/data-model.md +0 -0
  347. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/plan.md +0 -0
  348. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/quickstart.md +0 -0
  349. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/research.md +0 -0
  350. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/spec.md +0 -0
  351. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/specs/027-pipeline-auto-execution/tasks.md +0 -0
  352. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/agent-file-template.md +0 -0
  353. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/checklist-template.md +0 -0
  354. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/constitution-template.md +0 -0
  355. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/plan-template.md +0 -0
  356. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/spec-template-brownfield.md +0 -0
  357. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/spec-template-greenfield.md +0 -0
  358. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/spec-template-microservices.md +0 -0
  359. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/spec-template.md +0 -0
  360. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/.specify/templates/tasks-template.md +0 -0
  361. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/LICENSE +0 -0
  362. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/commands/devflow.context.md +0 -0
  363. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/commands/devflow.extension.md +0 -0
  364. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/extensions/catalog.community.json +0 -0
  365. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/extensions/template/example-command.md +0 -0
  366. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/extensions/template/example-extension.json +0 -0
  367. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/adapters/__init__.py +0 -0
  368. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/__init__.py +0 -0
  369. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/context.py +0 -0
  370. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/extension.py +0 -0
  371. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/hooks_cmd.py +0 -0
  372. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/traceability.py +0 -0
  373. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/commands/verify.py +0 -0
  374. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/__init__.py +0 -0
  375. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/catalog.py +0 -0
  376. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/git.py +0 -0
  377. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/hooks.py +0 -0
  378. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/manifest.py +0 -0
  379. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/scanner.py +0 -0
  380. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/traceability.py +0 -0
  381. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/validators.py +0 -0
  382. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/waivers.py +0 -0
  383. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/worklog.py +0 -0
  384. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/core/worktree_snapshot.py +0 -0
  385. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/utils/__init__.py +0 -0
  386. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/utils/console.py +0 -0
  387. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/utils/logging.py +0 -0
  388. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/src/devflow_cli/utils/strings.py +0 -0
  389. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/agent-context-template.md +0 -0
  390. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/contracts/README-template.md +0 -0
  391. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/contracts/api-template.md +0 -0
  392. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/contracts/components-template.md +0 -0
  393. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/contracts/interfaces-template.md +0 -0
  394. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/contracts/services-template.md +0 -0
  395. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/contracts-template.md +0 -0
  396. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/data-model-template.md +0 -0
  397. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/extension-manifest-template.json +0 -0
  398. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/plan-template.md +0 -0
  399. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/quickstart-template.md +0 -0
  400. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/research-template.md +0 -0
  401. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/spec-template.md +0 -0
  402. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/templates/tasks-template.md +0 -0
  403. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/fixtures/agents/mock-agent.md +0 -0
  404. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/fixtures/commands/mock-command.md +0 -0
  405. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/fixtures/mock-catalog.json +0 -0
  406. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/run-tests.sh +0 -0
  407. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test-helpers.sh +0 -0
  408. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test-template-variants.sh +0 -0
  409. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_adaptive_workflow.py +0 -0
  410. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_bash_runner.py +0 -0
  411. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_catalog.py +0 -0
  412. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_check.py +0 -0
  413. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_context.py +0 -0
  414. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_docs_sync.py +0 -0
  415. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_extension.py +0 -0
  416. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_hooks.py +0 -0
  417. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_linear.py +0 -0
  418. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_cmd_stale.py +0 -0
  419. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_context.py +0 -0
  420. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_git.py +0 -0
  421. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_manifest.py +0 -0
  422. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_paths_project_root.py +0 -0
  423. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_scanner.py +0 -0
  424. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_traceability.py +0 -0
  425. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_version.py +0 -0
  426. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_waivers.py +0 -0
  427. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_worklog.py +0 -0
  428. {devflow_cli-2.9.0 → devflow_cli-3.0.0}/tests/test_worktree_snapshot.py +0 -0
@@ -30,7 +30,10 @@ jobs:
30
30
  uv pip install -e ".[dev]"
31
31
 
32
32
  - name: Run pytest
33
- run: uv run pytest tests/ -v
33
+ run: uv run pytest tests/ -v --ignore=tests/test_wheel_adaptive_acceptance.py
34
+
35
+ - name: Run installed-wheel adaptive acceptance
36
+ run: uv run pytest tests/test_wheel_adaptive_acceptance.py -v
34
37
 
35
38
  - name: Check generated documentation
36
39
  run: uv run devflow docs-sync --check
@@ -24,7 +24,10 @@ jobs:
24
24
  uv pip install -e ".[dev]"
25
25
 
26
26
  - name: Run tests
27
- run: uv run pytest tests/ -v
27
+ run: uv run pytest tests/ -v --ignore=tests/test_wheel_adaptive_acceptance.py
28
+
29
+ - name: Run installed-wheel adaptive acceptance
30
+ run: uv run pytest tests/test_wheel_adaptive_acceptance.py -v
28
31
 
29
32
  publish:
30
33
  needs: test
@@ -4,25 +4,28 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="4d5164b1-14ff-40b3-8f55-b6f2c3abff01" name="Changes" comment="" />
7
+ <list default="true" id="4d5164b1-14ff-40b3-8f55-b6f2c3abff01" name="Changes" comment="">
8
+ <change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/src/devflow_cli/utils/paths.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/devflow_cli/utils/paths.py" afterDir="false" />
10
+ </list>
8
11
  <option name="SHOW_DIALOG" value="false" />
9
12
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
13
  <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
14
  <option name="LAST_RESOLUTION" value="IGNORE" />
12
15
  </component>
13
16
  <component name="EmbeddingIndexingInfo">
14
- <option name="cachedIndexableFilesCount" value="1409" />
17
+ <option name="cachedIndexableFilesCount" value="1457" />
15
18
  <option name="fileBasedEmbeddingIndicesEnabled" value="true" />
16
19
  </component>
17
20
  <component name="Git.Settings">
18
21
  <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
19
22
  </component>
20
- <component name="GitHubPullRequestSearchHistory"><![CDATA[{
21
- "lastFilter": {
22
- "state": "OPEN",
23
- "assignee": "sopequenoteck"
23
+ <component name="GitHubPullRequestSearchHistory">{
24
+ &quot;lastFilter&quot;: {
25
+ &quot;state&quot;: &quot;OPEN&quot;,
26
+ &quot;assignee&quot;: &quot;sopequenoteck&quot;
24
27
  }
25
- }]]></component>
28
+ }</component>
26
29
  <component name="GitToolBoxStore">
27
30
  <option name="branchesCleanupHistory">
28
31
  <BranchesCleanupHistory>
@@ -151,21 +154,44 @@
151
154
  </option>
152
155
  </BranchesCleanupHistory>
153
156
  </option>
157
+ <option name="recentBranches">
158
+ <RecentBranches>
159
+ <option name="branchesForRepo">
160
+ <list>
161
+ <RecentBranchesForRepo>
162
+ <option name="branches">
163
+ <list>
164
+ <RecentBranch>
165
+ <option name="branchName" value="main" />
166
+ <option name="lastUsedInstant" value="1787262556" />
167
+ </RecentBranch>
168
+ <RecentBranch>
169
+ <option name="branchName" value="develop" />
170
+ <option name="lastUsedInstant" value="1787262555" />
171
+ </RecentBranch>
172
+ </list>
173
+ </option>
174
+ <option name="repositoryRootUrl" value="file://$PROJECT_DIR$" />
175
+ </RecentBranchesForRepo>
176
+ </list>
177
+ </option>
178
+ </RecentBranches>
179
+ </option>
154
180
  </component>
155
- <component name="GithubPullRequestsUISettings"><![CDATA[{
156
- "selectedUrlAndAccountId": {
157
- "url": "https://github.com/sopequenoteck/devflow.git",
158
- "accountId": "8169ef0d-6593-43b8-9a77-2780a60dc5ac"
181
+ <component name="GithubPullRequestsUISettings">{
182
+ &quot;selectedUrlAndAccountId&quot;: {
183
+ &quot;url&quot;: &quot;https://github.com/sopequenoteck/devflow.git&quot;,
184
+ &quot;accountId&quot;: &quot;8169ef0d-6593-43b8-9a77-2780a60dc5ac&quot;
159
185
  }
160
- }]]></component>
186
+ }</component>
161
187
  <component name="McpProjectServerCommands">
162
188
  <commands />
163
189
  <urls />
164
190
  </component>
165
- <component name="ProjectColorInfo"><![CDATA[{
166
- "associatedIndex": 7,
167
- "fromUser": false
168
- }]]></component>
191
+ <component name="ProjectColorInfo">{
192
+ &quot;associatedIndex&quot;: 7,
193
+ &quot;fromUser&quot;: false
194
+ }</component>
169
195
  <component name="ProjectId" id="3I2KWolJpZcPmEOGT7J0Rsp6K3n" />
170
196
  <component name="ProjectViewState">
171
197
  <option name="hideEmptyMiddlePackages" value="true" />
@@ -184,7 +210,7 @@
184
210
  "codeWithMe.voiceChat.enabledByDefault": "false",
185
211
  "com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
186
212
  "dart.analysis.tool.window.visible": "false",
187
- "git-widget-placeholder": "develop",
213
+ "git-widget-placeholder": "main",
188
214
  "junie.onboarding.icon.badge.shown": "true",
189
215
  "kotlin-language-version-configured": "true",
190
216
  "last_opened_file_path": "/Users/kellysossoe/Code/Apps/devflow",
@@ -215,6 +241,7 @@
215
241
  <option name="presentableId" value="Default" />
216
242
  <updated>1786957258019</updated>
217
243
  <workItem from="1786957259143" duration="1286000" />
244
+ <workItem from="1787262300781" duration="880000" />
218
245
  </task>
219
246
  <servers />
220
247
  </component>
@@ -5,6 +5,22 @@ 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
+ ## [3.0.0] - 2026-08-25
9
+
10
+ ### Changed
11
+
12
+ - Le moteur de workflow historique est remplacé par le workflow adaptatif, fondé sur des activités vérifiables, des contrats structurés et des preuves locales.
13
+ - Le parcours quotidien passe par `devflow assess` puis `devflow adaptive start`, `run` et `status`.
14
+ - Les adaptateurs Codex, Claude Code et Cursor utilisent désormais le même contrat d'activité portable.
15
+
16
+ ### Removed
17
+
18
+ - Les commandes, états et artefacts du moteur de workflow historique sont supprimés.
19
+
20
+ ### Migration
21
+
22
+ - Pour reprendre une feature existante, exécuter `devflow migrate <ISSUE_ID> --dry-run`, puis `devflow migrate <ISSUE_ID>` après vérification. L'ancien état est conservé sous `legacy-state.json`.
23
+
8
24
  ## [2.9.0] - 2026-08-20
9
25
 
10
26
  ### Added
@@ -0,0 +1,20 @@
1
+ # Devflow
2
+
3
+ Ce dépôt implémente exclusivement un workflow adaptatif. Les changements de
4
+ politique passent par `assessment.json`; les transitions passent par la CLI et
5
+ ne doivent jamais être réalisées en éditant les fichiers d’état.
6
+
7
+ <!-- devflow:pipeline:start -->
8
+ Workflow adaptatif à quatre profils, sélectionné par `devflow assess` : quick: assess → implement → verify → done; standard: assess → prepare → implement → verify → done; deep: assess → spec → plan → tasks → implement → verify → review → done; critical: assess → risk-assessment → spec → research → contracts → plan → tasks → implement → verify → review → rollback-check → done. `assessment.json` porte la politique et `workflow-state.json` porte uniquement la progression et les preuves.
9
+ <!-- devflow:pipeline:end -->
10
+
11
+ ## Commandes de développement
12
+
13
+ ```bash
14
+ uv run pytest -q
15
+ ./tests/run-tests.sh
16
+ uv run devflow docs-sync --check
17
+ ```
18
+
19
+ Pour un essai réel : `feature`, `assess`, `adaptive start`, puis une activité à
20
+ la fois avec `adaptive run`.
@@ -92,7 +92,7 @@ Les tests bash couvrent les scripts legacy (`devflow-cli.sh`, `setup-feature.sh`
92
92
 
93
93
  ## Développer une extension
94
94
 
95
- Voir le guide complet : [extensions/EXTENSION-DEVELOPMENT-GUIDE.md](./extensions/EXTENSION-DEVELOPMENT-GUIDE.md).
95
+ Voir la référence : [extensions/EXTENSION-API-REFERENCE.md](./extensions/EXTENSION-API-REFERENCE.md).
96
96
 
97
97
  En résumé :
98
98
  1. Créer un manifest JSON suivant le schéma dans [EXTENSION-API-REFERENCE.md](./extensions/EXTENSION-API-REFERENCE.md)
@@ -0,0 +1,113 @@
1
+ Metadata-Version: 2.5
2
+ Name: devflow-cli
3
+ Version: 3.0.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: jsonschema>=4.23
20
+ Requires-Dist: pyyaml>=6
21
+ Requires-Dist: rich>=13
22
+ Requires-Dist: typer>=0.12
23
+ Provides-Extra: dev
24
+ Requires-Dist: hatchling>=1.27; extra == 'dev'
25
+ Requires-Dist: pytest-cov>=5; extra == 'dev'
26
+ Requires-Dist: pytest>=8; extra == 'dev'
27
+ Description-Content-Type: text/markdown
28
+
29
+ # devflow
30
+
31
+ Devflow est un moteur de développement adaptatif pour Codex, Claude Code et
32
+ Cursor. Il choisit un niveau de rigueur à partir de signaux explicites, produit
33
+ des contrats d’activité portables et bloque les transitions tant que les
34
+ preuves attendues ne sont pas présentes.
35
+
36
+ ## Profils
37
+
38
+ - `quick` : changement local, clair et peu risqué.
39
+ - `standard` : plusieurs composants ou risque modéré.
40
+ - `deep` : changement transversal, ambigu ou contractuel.
41
+ - `critical` : sécurité, données, migration ou risque élevé.
42
+
43
+ Les routes exactes et leurs preuves sont générées dans
44
+ [docs/pipeline-reference.generated.md](docs/pipeline-reference.generated.md).
45
+
46
+ ## Installation
47
+
48
+ ```bash
49
+ uv tool install devflow-cli
50
+ devflow init --ai codex
51
+ ```
52
+
53
+ Python 3.11+ et Git sont requis. `--ai` accepte `codex`, `claude-code` ou
54
+ `cursor`.
55
+
56
+ ## Parcours quotidien
57
+
58
+ ```bash
59
+ devflow feature KS-123 --short-name user-auth
60
+ devflow assess KS-123 --scope multiple --ambiguity medium --risk medium
61
+ devflow adaptive start KS-123
62
+ devflow adaptive run KS-123 --agent codex
63
+ devflow adaptive status KS-123
64
+ ```
65
+
66
+ `adaptive status --json` fournit un état exploitable par la CI. Les échecs
67
+ distinguent explicitement blocage métier, contrat invalide, panne agent,
68
+ validation échouée et conflit concurrent ; chaque refus affiche la commande de
69
+ reprise recommandée.
70
+
71
+ Chaque invocation de `adaptive run` traite une activité. La politique est dans
72
+ `assessment.json`; la progression et les preuves sont dans
73
+ `workflow-state.json`. Les résultats agent sont validés par schéma et les
74
+ preuves d’exécution sensibles sont produites localement par Devflow.
75
+
76
+ Les trois adaptateurs acceptent les mêmes contrats structurés :
77
+
78
+ ```bash
79
+ devflow adaptive run KS-123 --agent codex
80
+ devflow adaptive run KS-123 --agent claude
81
+ devflow adaptive run KS-123 --agent cursor
82
+ ```
83
+
84
+ ## Migrer une ancienne feature
85
+
86
+ ```bash
87
+ devflow migrate KS-123 --dry-run
88
+ devflow migrate KS-123 --profile deep
89
+ ```
90
+
91
+ La migration conserve les artefacts, archive `state.json` sous
92
+ `legacy-state.json`, puis redémarre à la première activité vérifiable du profil.
93
+ Sans identifiant, `devflow migrate` traite toutes les anciennes features.
94
+ `devflow init` et `devflow upgrade` déplacent également les anciennes commandes
95
+ Claude connues vers `~/.claude/.devflow-legacy-backup/` sans toucher aux
96
+ commandes personnalisées.
97
+
98
+ ## Documentation
99
+
100
+ - [Workflow adaptatif](docs/pipeline.md)
101
+ - [Référence CLI](docs/cli-reference.md)
102
+ - [Contrats d’activité](docs/activity-contracts.md)
103
+ - [Façade Claude Code](docs/commands-reference.md)
104
+ - [Guide Cursor](docs/cursor-guide.md)
105
+
106
+ ## Développement
107
+
108
+ ```bash
109
+ uv sync --extra dev
110
+ uv run pytest -q
111
+ ./tests/run-tests.sh
112
+ uv run devflow docs-sync --check
113
+ ```
@@ -0,0 +1,85 @@
1
+ # devflow
2
+
3
+ Devflow est un moteur de développement adaptatif pour Codex, Claude Code et
4
+ Cursor. Il choisit un niveau de rigueur à partir de signaux explicites, produit
5
+ des contrats d’activité portables et bloque les transitions tant que les
6
+ preuves attendues ne sont pas présentes.
7
+
8
+ ## Profils
9
+
10
+ - `quick` : changement local, clair et peu risqué.
11
+ - `standard` : plusieurs composants ou risque modéré.
12
+ - `deep` : changement transversal, ambigu ou contractuel.
13
+ - `critical` : sécurité, données, migration ou risque élevé.
14
+
15
+ Les routes exactes et leurs preuves sont générées dans
16
+ [docs/pipeline-reference.generated.md](docs/pipeline-reference.generated.md).
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ uv tool install devflow-cli
22
+ devflow init --ai codex
23
+ ```
24
+
25
+ Python 3.11+ et Git sont requis. `--ai` accepte `codex`, `claude-code` ou
26
+ `cursor`.
27
+
28
+ ## Parcours quotidien
29
+
30
+ ```bash
31
+ devflow feature KS-123 --short-name user-auth
32
+ devflow assess KS-123 --scope multiple --ambiguity medium --risk medium
33
+ devflow adaptive start KS-123
34
+ devflow adaptive run KS-123 --agent codex
35
+ devflow adaptive status KS-123
36
+ ```
37
+
38
+ `adaptive status --json` fournit un état exploitable par la CI. Les échecs
39
+ distinguent explicitement blocage métier, contrat invalide, panne agent,
40
+ validation échouée et conflit concurrent ; chaque refus affiche la commande de
41
+ reprise recommandée.
42
+
43
+ Chaque invocation de `adaptive run` traite une activité. La politique est dans
44
+ `assessment.json`; la progression et les preuves sont dans
45
+ `workflow-state.json`. Les résultats agent sont validés par schéma et les
46
+ preuves d’exécution sensibles sont produites localement par Devflow.
47
+
48
+ Les trois adaptateurs acceptent les mêmes contrats structurés :
49
+
50
+ ```bash
51
+ devflow adaptive run KS-123 --agent codex
52
+ devflow adaptive run KS-123 --agent claude
53
+ devflow adaptive run KS-123 --agent cursor
54
+ ```
55
+
56
+ ## Migrer une ancienne feature
57
+
58
+ ```bash
59
+ devflow migrate KS-123 --dry-run
60
+ devflow migrate KS-123 --profile deep
61
+ ```
62
+
63
+ La migration conserve les artefacts, archive `state.json` sous
64
+ `legacy-state.json`, puis redémarre à la première activité vérifiable du profil.
65
+ Sans identifiant, `devflow migrate` traite toutes les anciennes features.
66
+ `devflow init` et `devflow upgrade` déplacent également les anciennes commandes
67
+ Claude connues vers `~/.claude/.devflow-legacy-backup/` sans toucher aux
68
+ commandes personnalisées.
69
+
70
+ ## Documentation
71
+
72
+ - [Workflow adaptatif](docs/pipeline.md)
73
+ - [Référence CLI](docs/cli-reference.md)
74
+ - [Contrats d’activité](docs/activity-contracts.md)
75
+ - [Façade Claude Code](docs/commands-reference.md)
76
+ - [Guide Cursor](docs/cursor-guide.md)
77
+
78
+ ## Développement
79
+
80
+ ```bash
81
+ uv sync --extra dev
82
+ uv run pytest -q
83
+ ./tests/run-tests.sh
84
+ uv run devflow docs-sync --check
85
+ ```
@@ -1,6 +1,6 @@
1
1
  # /devflow.init
2
2
 
3
- Initialise devflow dans un projet : copie les commandes, agents, templates et scripts vers ~/.claude/ et prépare la structure projet.
3
+ Initialise devflow dans un projet : copie la façade adaptative, les templates et les scripts vers ~/.claude/ et prépare la structure projet.
4
4
 
5
5
  ## Objectif
6
6
 
@@ -19,12 +19,10 @@ Installer ou réinstaller devflow de manière propre avec validation post-instal
19
19
  2. **Vérifier** que le projet cible est un dépôt git (sinon → erreur)
20
20
  3. **Créer `.specify/specs/`** dans le projet cible si absent
21
21
  4. **Copier les commandes** devflow vers `~/.claude/commands/`
22
- 5. **Copier les agents** devflow vers `~/.claude/agents/`
23
- 6. **Copier les templates** vers `~/.claude/templates/`
24
- 7. **Copier les scripts** vers `~/.claude/scripts/` et ajouter +x
25
- 8. Si `--with-constitution` : copier le template constitution vers `.specify/memory/constitution.md` du projet cible (ne pas écraser si existant, sauf --force)
26
- 9. **Appeler `check-prerequisites.sh`** pour valider l'installation
27
- 10. **Afficher le rapport** : X fichiers copiés, Y ignorés (existants)
22
+ 5. **Copier les templates** vers `~/.claude/templates/`
23
+ 6. **Copier les scripts** vers `~/.claude/scripts/` et ajouter +x
24
+ 7. Si `--with-constitution` : copier le template constitution vers `.specify/memory/constitution.md` du projet cible (ne pas écraser si existant, sauf --force)
25
+ 8. **Afficher le rapport** : X fichiers copiés, Y ignorés (existants)
28
26
 
29
27
  ## Contraintes
30
28
 
@@ -0,0 +1,25 @@
1
+ ---
2
+ description: Pilote le workflow adaptatif Devflow depuis Claude Code
3
+ argument-hint: ISSUE_ID [--agent claude|codex|cursor]
4
+ allowed-tools: Bash(devflow:*)
5
+ ---
6
+
7
+ # Devflow adaptatif
8
+
9
+ Utiliser exclusivement la machine adaptative de la CLI. Ne jamais créer ni
10
+ interpréter de `state.json`.
11
+
12
+ 1. Lire `$ARGUMENTS` et extraire l'identifiant de feature.
13
+ 2. Exécuter `devflow status ISSUE_ID`.
14
+ 3. Si la feature n'existe pas, demander à l'utilisateur de lancer
15
+ `devflow feature ISSUE_ID`.
16
+ 4. Si elle n'est pas évaluée, demander les signaux nécessaires puis lancer
17
+ `devflow assess ISSUE_ID` avec des options explicites.
18
+ 5. Si elle est évaluée mais non démarrée, lancer
19
+ `devflow adaptive start ISSUE_ID`.
20
+ 6. Lancer une seule activité avec
21
+ `devflow adaptive run ISSUE_ID --agent AGENT`.
22
+ 7. Afficher ensuite `devflow adaptive status ISSUE_ID`.
23
+
24
+ Le contrat produit par Devflow est la seule autorité sur les actions,
25
+ artefacts, validations et preuves de l'activité.
@@ -0,0 +1,34 @@
1
+ # /devflow.regen
2
+
3
+ Détecte les artefacts désuets et rouvre la première activité concernée.
4
+
5
+ ## Objectif
6
+
7
+ Revenir au premier artefact désuet afin que le workflow adaptatif régénère ensuite la chaîne sous contrôle de ses contrats.
8
+
9
+ ## Workflow
10
+
11
+ 1. **Detecter** les artefacts desuets :
12
+ ```bash
13
+ devflow stale --json
14
+ ```
15
+ Parse le JSON retourne. Si `stale` est vide, afficher "Tout est synchronise" et terminer.
16
+
17
+ 2. **Afficher la prévisualisation** :
18
+ - Lister chaque artefact stale avec sa raison
19
+ - Afficher la commande `adaptive reopen` du premier artefact désuet
20
+
21
+ 3. **Demander confirmation** a l'utilisateur.
22
+ - Si refuse → terminer sans action.
23
+
24
+ 4. **Exécuter uniquement la première commande** `adaptive reopen`.
25
+ 5. Afficher `devflow adaptive status ISSUE_ID` et proposer de reprendre avec
26
+ `devflow adaptive run ISSUE_ID --agent AGENT`.
27
+
28
+ 6. **Rapporter** l’activité rouverte et les artefacts qui seront régénérés.
29
+
30
+ ## Contraintes
31
+
32
+ - Utiliser `devflow stale --json` pour la detection (ne pas reimplementer la logique mtime)
33
+ - Ne jamais exécuter plusieurs `reopen` successifs
34
+ - Ne jamais regenerer sans confirmation explicite
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: Affiche le statut adaptatif d'une feature Devflow
3
+ argument-hint: ISSUE_ID
4
+ allowed-tools: Bash(devflow status:*)
5
+ ---
6
+
7
+ # Statut Devflow
8
+
9
+ Exécuter `devflow status $ARGUMENTS` et restituer fidèlement le profil,
10
+ l'activité courante, la progression et les preuves restantes. Cette commande
11
+ est strictement en lecture seule.
@@ -1,5 +1,27 @@
1
1
  # Contrats d'activités adaptatifs
2
2
 
3
+ ## Schémas publics versionnés
4
+
5
+ Les quatre frontières centrales sont décrites par des JSON Schemas Draft
6
+ 2020-12 embarqués dans le wheel :
7
+
8
+ - `assessment-v1.schema.json` pour la sélection de politique ;
9
+ - `workflow-state-v2.schema.json` pour la progression et les preuves ;
10
+ - `activity-contract-v1.schema.json` pour l'instruction portable envoyée à
11
+ l'adaptateur ;
12
+ - `activity-result-v1.schema.json` pour la réponse structurée de l'agent.
13
+
14
+ Le schéma vérifie la structure, les types, les champs obligatoires et refuse les
15
+ champs inconnus. Les validations Python restent responsables des invariants
16
+ métier qui dépendent du profil ou de l'activité : ordre de progression, source
17
+ des preuves, traçabilité et gates de fin.
18
+
19
+ Une version publiée est immuable. Comme les champs inconnus sont refusés,
20
+ l'ajout, le retrait ou le changement de sens d'un champ exige une nouvelle
21
+ version de schéma et, pour les formats persistés, une voie de migration
22
+ explicite. Devflow ne réinterprète jamais silencieusement un contrat d'une
23
+ version inconnue.
24
+
3
25
  Les contrats d'activités constituent la frontière entre le moteur devflow et
4
26
  les agents d'exécution. Ils ne contiennent aucune commande propre à Claude
5
27
  Code, Codex ou Cursor.
@@ -84,17 +106,21 @@ Le validateur refuse notamment :
84
106
  Cette validation est partagée par tous les futurs adaptateurs. Aucun backend
85
107
  ne pourra définir ses propres critères de réussite.
86
108
 
87
- ## Exécution avec Codex
109
+ ## Exécution multi-agent
88
110
 
89
- Le premier adaptateur structuré est Codex :
111
+ Les trois adaptateurs peuvent exécuter le même contrat :
90
112
 
91
113
  ```bash
92
114
  devflow adaptive run KS-123 --agent codex
115
+ devflow adaptive run KS-123 --agent claude-code
116
+ devflow adaptive run KS-123 --agent cursor
93
117
  ```
94
118
 
95
119
  Une invocation exécute uniquement l'activité courante. Devflow transmet le
96
- schéma avec l'option native de sortie structurée de Codex, récupère le dernier
97
- message dans un fichier temporaire, puis applique le validateur commun.
120
+ schéma avec les options natives de Codex ou Claude Code. Cursor produit une
121
+ enveloppe JSON dont le résultat est extrait puis validé localement contre le
122
+ même schéma. Dans les trois cas, seul le payload normalisé est transmis au
123
+ validateur commun.
98
124
 
99
125
  Pour `prepare`, toute mutation du working tree est refusée. Son résultat est
100
126
  ajouté aux entrées du contrat `implement` standard.
@@ -0,0 +1,105 @@
1
+ # Référence CLI
2
+
3
+ ## Initialisation
4
+
5
+ ```bash
6
+ devflow init --ai codex
7
+ devflow feature ISSUE_ID [--short-name NAME]
8
+ ```
9
+
10
+ ## Évaluation
11
+
12
+ ```bash
13
+ devflow assess ISSUE_ID \
14
+ --scope local|multiple|transversal \
15
+ --ambiguity low|medium|high \
16
+ --risk low|medium|high \
17
+ [--contract-change] [--data-security] \
18
+ [--profile quick|standard|deep|critical]
19
+ ```
20
+
21
+ Un profil forcé peut augmenter mais jamais réduire la recommandation.
22
+
23
+ ## Exécution adaptative
24
+
25
+ ```bash
26
+ devflow adaptive start ISSUE_ID
27
+ devflow adaptive status ISSUE_ID [--json]
28
+ devflow adaptive contract ISSUE_ID [--json|--prompt]
29
+ devflow adaptive run ISSUE_ID --agent codex|claude|cursor
30
+ devflow adaptive complete ISSUE_ID ACTIVITY
31
+ devflow adaptive evidence ISSUE_ID EVIDENCE_ID --report TEXT
32
+ devflow adaptive verify ISSUE_ID
33
+ devflow adaptive reopen ISSUE_ID ACTIVITY --reason TEXT
34
+ ```
35
+
36
+ `complete` et `evidence` restent utiles aux automatisations; le parcours normal
37
+ utilise `run`, qui valide le contrat et les mutations observées.
38
+
39
+ ### Statut opérationnel et reprise
40
+
41
+ `adaptive status` affiche la progression, chaque preuve avec sa provenance, les
42
+ blocages, les risques restants, le dernier résultat et la prochaine commande à
43
+ exécuter. `--json` expose les mêmes informations sous une forme stable pour les
44
+ automatisations.
45
+
46
+ Après un échec, `adaptive run` et `adaptive verify` impriment une reprise guidée :
47
+ inspection du statut, diagnostic de l'agent, contrôle des changements partiels
48
+ ou réouverture auditée de `implement`. Un workflow terminé affiche un résumé des
49
+ activités, des preuves, des risques et le chemin du worklog.
50
+
51
+ Les erreurs de contrat indiquent le fichier et le chemin JSON fautif. Un JSON
52
+ mal formé indique également la ligne et la colonne.
53
+
54
+ ### Codes de sortie adaptatifs
55
+
56
+ Les commandes sous `devflow adaptive` utilisent les codes stables suivants :
57
+
58
+ | Code | Signification |
59
+ |---:|---|
60
+ | 0 | succès |
61
+ | 2 | usage ou options incompatibles |
62
+ | 3 | activité bloquée ou gate non satisfaite |
63
+ | 4 | assessment, état ou contrat invalide |
64
+ | 5 | échec ou indisponibilité de l'agent |
65
+ | 6 | vérification locale échouée |
66
+ | 7 | conflit de progression ou modification concurrente |
67
+
68
+ Un code non nul ne signifie donc plus seulement « erreur » : la CI peut décider
69
+ si elle doit demander une intervention fonctionnelle (`3`), réparer
70
+ l'environnement agent (`5`) ou traiter une régression de validation (`6`).
71
+
72
+ ## Inspection et outils
73
+
74
+ ```bash
75
+ devflow status [ISSUE_ID]
76
+ devflow traceability ISSUE_ID
77
+ devflow verify ISSUE_ID
78
+ devflow stale ISSUE_ID
79
+ devflow context ISSUE_ID
80
+ devflow linear decision ACTIVITY CURRENT_STATUS
81
+ ```
82
+
83
+ ## Migration
84
+
85
+ ```bash
86
+ devflow migrate [ISSUE_ID] [--profile deep] [--dry-run]
87
+ ```
88
+
89
+ La migration archive l’ancien fichier sous `legacy-state.json`; elle ne tente
90
+ pas de déclarer comme terminée une activité dont les preuves adaptatives
91
+ n’existent pas.
92
+
93
+ Lors d’un `init` ou d’un `upgrade`, les anciennes commandes Claude officielles
94
+ sont retirées des dossiers actifs et sauvegardées dans
95
+ `~/.claude/.devflow-legacy-backup/`.
96
+
97
+ ## Maintenance
98
+
99
+ ```bash
100
+ devflow check --ai codex|claude-code|cursor
101
+ devflow upgrade
102
+ devflow docs-sync --check
103
+ devflow extension list
104
+ devflow hooks run EVENT
105
+ ```
@@ -0,0 +1,13 @@
1
+ # Façade Claude Code
2
+
3
+ L’installation Claude Code publie une façade adaptative minimale :
4
+
5
+ - `/devflow ISSUE_ID [--agent ...]` inspecte la feature et exécute au plus une
6
+ activité via la CLI.
7
+ - `/devflow.status ISSUE_ID` affiche le statut en lecture seule.
8
+ - `/devflow.context`, `/devflow.init`, `/devflow.extension` et
9
+ `/devflow.regen` restent des utilitaires non séquentiels.
10
+
11
+ Les anciennes commandes slash par étape n’existent plus. Le contrat généré par
12
+ `devflow adaptive run` détermine désormais l’activité, les artefacts et les
13
+ preuves, quel que soit l’agent choisi.