@autocode-cli/autocode 0.29.0 → 0.37.0

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 (203) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_i18n/Mqu2gZRD/en/messages.json +1 -0
  3. package/.output/public/_i18n/Mqu2gZRD/fr/messages.json +1 -0
  4. package/.output/public/_nuxt/-DEWfUYv.js +1 -0
  5. package/.output/public/_nuxt/{CGH8jYZ3.js → 0VxesDuV.js} +1 -1
  6. package/.output/public/_nuxt/{Cw9GjiQd.js → 3dDT4orS.js} +1 -1
  7. package/.output/public/_nuxt/{DJ68wI4q.js → B-L8_kPw.js} +1 -1
  8. package/.output/public/_nuxt/{WXFPFJGI.js → B6_0bWxd.js} +1 -1
  9. package/.output/public/_nuxt/B8IBFC6T.js +1 -0
  10. package/.output/public/_nuxt/{mhFvEihp.js → B9-SkqjX.js} +3 -3
  11. package/.output/public/_nuxt/{DwEf6snv.js → BBTritm-.js} +1 -1
  12. package/.output/public/_nuxt/{D2yqkPsk.js → BDW6A7V8.js} +1 -1
  13. package/.output/public/_nuxt/{CuMOMF74.js → BE1Ftxsu.js} +1 -1
  14. package/.output/public/_nuxt/BF5itqHW.js +10 -0
  15. package/.output/public/_nuxt/{c7taDBy4.js → BHpbNCa8.js} +1 -1
  16. package/.output/public/_nuxt/{CUrMRCov.js → BJGB6i4C.js} +1 -1
  17. package/.output/public/_nuxt/{ttDeS43_.js → BJnlSHzy.js} +1 -1
  18. package/.output/public/_nuxt/{Dnk-IiYT.js → BNr40Cyx.js} +1 -1
  19. package/.output/public/_nuxt/{CftWxl87.js → BP-5A3ad.js} +1 -1
  20. package/.output/public/_nuxt/{CvtJgrAC.js → BPSRe1xo.js} +1 -1
  21. package/.output/public/_nuxt/{DV1gbxJr.js → BatC3POU.js} +1 -1
  22. package/.output/public/_nuxt/{QO28866g.js → BcwrT42V.js} +1 -1
  23. package/.output/public/_nuxt/{MqYwBbea.js → BmfOZEEG.js} +1 -1
  24. package/.output/public/_nuxt/BqOlVwUK.js +1 -0
  25. package/.output/public/_nuxt/{CMirklGN.js → Bx15WLHx.js} +1 -1
  26. package/.output/public/_nuxt/{s3F7y6k3.js → C1Dh6gFG.js} +1 -1
  27. package/.output/public/_nuxt/{Bb4iE1RK.js → C1d_VCXk.js} +1 -1
  28. package/.output/public/_nuxt/{YFXx8Qjo.js → C3g32ML-.js} +1 -1
  29. package/.output/public/_nuxt/{BiTHsA5D.js → C819KIPL.js} +1 -1
  30. package/.output/public/_nuxt/{DMLkLSSr.js → CDRiuU72.js} +1 -1
  31. package/.output/public/_nuxt/{BWuiHx6Z.js → CH4xRPqk.js} +1 -1
  32. package/.output/public/_nuxt/{Qp3vP2w-.js → CHFxtqug.js} +1 -1
  33. package/.output/public/_nuxt/{BhOptLaB.js → CHQoxcLf.js} +1 -1
  34. package/.output/public/_nuxt/CKyM99yH.js +1 -0
  35. package/.output/public/_nuxt/{2aYBL_7i.js → CORW7tev.js} +1 -1
  36. package/.output/public/_nuxt/{5c4wy8Fe.js → CQakkP7y.js} +1 -1
  37. package/.output/public/_nuxt/{C1majTdt.js → CTidC4T0.js} +1 -1
  38. package/.output/public/_nuxt/CWELpXTp.js +1 -0
  39. package/.output/public/_nuxt/{C8ykELcI.js → CjND9Y9S.js} +1 -1
  40. package/.output/public/_nuxt/{eAMnPBdX.js → Cm1brjPJ.js} +1 -1
  41. package/.output/public/_nuxt/{DUT6s2Vc.js → CohKcwVk.js} +1 -1
  42. package/.output/public/_nuxt/CpaAmOT1.js +1 -0
  43. package/.output/public/_nuxt/{BKohRmb3.js → CqtB_OH7.js} +1 -1
  44. package/.output/public/_nuxt/{DBRrdiDg.js → CvEn06t8.js} +1 -1
  45. package/.output/public/_nuxt/{D0l9HWst.js → D3FsoLQm.js} +1 -1
  46. package/.output/public/_nuxt/{ZxHW_Wwi.js → D3uRvzsu.js} +1 -1
  47. package/.output/public/_nuxt/{c9kaG6Mb.js → D6s--CDK.js} +1 -1
  48. package/.output/public/_nuxt/{CFO65yNa.js → DL-48EFA.js} +1 -1
  49. package/.output/public/_nuxt/{a0ULJgSn.js → DPdNpAt1.js} +1 -1
  50. package/.output/public/_nuxt/DbKMezC2.js +1 -0
  51. package/.output/public/_nuxt/{W7VQVcj3.js → DjSp0ni5.js} +3 -3
  52. package/.output/public/_nuxt/{C9F9DISc.js → Dku8fc7v.js} +1 -1
  53. package/.output/public/_nuxt/{B-SoSAQ-.js → DorDSzHT.js} +1 -1
  54. package/.output/public/_nuxt/{CtihvsfH.js → DpJr9JIo.js} +1 -1
  55. package/.output/public/_nuxt/{DS8c6APr.js → DvdVpK92.js} +1 -1
  56. package/.output/public/_nuxt/{DfzafmDP.js → DyAfzMRU.js} +1 -1
  57. package/.output/public/_nuxt/{tqfMB__6.js → G3ENYyJJ.js} +1 -1
  58. package/.output/public/_nuxt/{BvR2cHrU.js → G3RO7xM_.js} +1 -1
  59. package/.output/public/_nuxt/{BsOUGgHX.js → Q3VbeUEc.js} +1 -1
  60. package/.output/public/_nuxt/{E037g09h.js → _Lx_e17m.js} +1 -1
  61. package/.output/public/_nuxt/{DEbgyyF-.js → _S9g-Cdv.js} +1 -1
  62. package/.output/public/_nuxt/{C_XYgaP4.js → _dIH-mlE.js} +1 -1
  63. package/.output/public/_nuxt/builds/latest.json +1 -1
  64. package/.output/public/_nuxt/builds/meta/cbc2f99e-ecf0-446a-810b-808825114bc3.json +1 -0
  65. package/.output/public/_nuxt/{BrN48gj6.js → c0R8lEWK.js} +1 -1
  66. package/.output/public/_nuxt/cli.D68WAxVv.css +1 -0
  67. package/.output/public/_nuxt/{Dmbsi9xE.js → cm-fPQZs.js} +1 -1
  68. package/.output/public/_nuxt/{C2MG9-_i.js → hYe2UtEI.js} +1 -1
  69. package/.output/public/_nuxt/index.B4qqY6WX.css +1 -0
  70. package/.output/public/_nuxt/index.CPvzWVwd.css +1 -0
  71. package/.output/public/_nuxt/{Camk5F-_.js → mbPYOeR0.js} +1 -1
  72. package/.output/public/_nuxt/n-2mvXdi.js +1 -0
  73. package/.output/public/_nuxt/new.84MgEEsd.css +1 -0
  74. package/.output/public/_nuxt/prompt.CNw9EZnJ.css +1 -0
  75. package/.output/public/_nuxt/{CL8Pd5Up.js → qNJDhLpf.js} +1 -1
  76. package/.output/public/_nuxt/{CDsqJjO8.js → rFVztcxU.js} +1 -1
  77. package/.output/public/_nuxt/{BG7brVhY.js → up1a6xQr.js} +1 -1
  78. package/.output/public/_nuxt/x9aAWeiI.js +1 -0
  79. package/.output/public/_payload.json +1 -1
  80. package/.output/public/api/_openapi.json +1 -1
  81. package/.output/public/docs/api/_payload.json +1 -1
  82. package/.output/public/docs/api/index.html +8 -4
  83. package/.output/public/docs/cli/_payload.json +1 -1
  84. package/.output/public/docs/cli/index.html +13 -13
  85. package/.output/public/index.html +1 -1
  86. package/.output/server/chunks/_/en.mjs +16 -23
  87. package/.output/server/chunks/_/en.mjs.map +1 -1
  88. package/.output/server/chunks/_/fr.mjs +16 -23
  89. package/.output/server/chunks/_/fr.mjs.map +1 -1
  90. package/.output/server/chunks/build/LandingAutonomy-styles.Dvel3Juy.mjs +8 -0
  91. package/.output/server/chunks/build/LandingAutonomy-styles.Dvel3Juy.mjs.map +1 -0
  92. package/.output/server/chunks/build/LandingFooter-styles.CudcJSR4.mjs +8 -0
  93. package/.output/server/chunks/build/LandingFooter-styles.CudcJSR4.mjs.map +1 -0
  94. package/.output/server/chunks/build/LandingPipeline-styles.C8JPQYOV.mjs +8 -0
  95. package/.output/server/chunks/build/LandingPipeline-styles.C8JPQYOV.mjs.map +1 -0
  96. package/.output/server/chunks/build/{cli-CZwbcgW5.mjs → cli-S2geGQoF.mjs} +27 -14
  97. package/.output/server/chunks/build/cli-S2geGQoF.mjs.map +1 -0
  98. package/.output/server/chunks/build/cli-styles.BonhH80m.mjs +8 -0
  99. package/.output/server/chunks/build/cli-styles.BonhH80m.mjs.map +1 -0
  100. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  101. package/.output/server/chunks/build/{en-BwRtQJL1.mjs → en-nHmCjmd_.mjs} +17 -24
  102. package/.output/server/chunks/build/{en-BwRtQJL1.mjs.map → en-nHmCjmd_.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{fr-BAbxj8tA.mjs → fr-7FZEU85C.mjs} +17 -24
  104. package/.output/server/chunks/build/{fr-BAbxj8tA.mjs.map → fr-7FZEU85C.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{index-CKZ58Ox2.mjs → index-BZJzUQ3B.mjs} +27 -17
  106. package/.output/server/chunks/build/index-BZJzUQ3B.mjs.map +1 -0
  107. package/.output/server/chunks/build/{index-3KvoAMZW.mjs → index-DYwGkPcJ.mjs} +92 -275
  108. package/.output/server/chunks/build/index-DYwGkPcJ.mjs.map +1 -0
  109. package/.output/server/chunks/build/index-styles.BP9liX_F.mjs +8 -0
  110. package/.output/server/chunks/build/index-styles.BP9liX_F.mjs.map +1 -0
  111. package/.output/server/chunks/build/{new-BI12IpeK.mjs → new-BqYiaSD7.mjs} +19 -19
  112. package/.output/server/chunks/build/{new-BI12IpeK.mjs.map → new-BqYiaSD7.mjs.map} +1 -1
  113. package/.output/server/chunks/build/new-styles.BPjkN6Iy.mjs +8 -0
  114. package/.output/server/chunks/build/new-styles.BPjkN6Iy.mjs.map +1 -0
  115. package/.output/server/chunks/build/{prompt-BjvwrM-J.mjs → prompt-D-xu1MtO.mjs} +41 -12
  116. package/.output/server/chunks/build/prompt-D-xu1MtO.mjs.map +1 -0
  117. package/.output/server/chunks/build/prompt-styles.Dvlc6Xra.mjs +8 -0
  118. package/.output/server/chunks/build/prompt-styles.Dvlc6Xra.mjs.map +1 -0
  119. package/.output/server/chunks/build/server.mjs +9 -9
  120. package/.output/server/chunks/build/styles.mjs +29 -35
  121. package/.output/server/chunks/nitro/nitro.mjs +551 -521
  122. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  123. package/.output/server/chunks/routes/.well-known/appspecific/_...path_.mjs +34 -0
  124. package/.output/server/chunks/routes/.well-known/appspecific/_...path_.mjs.map +1 -0
  125. package/.output/server/chunks/routes/api/issues/_id/history.get.mjs +3 -2
  126. package/.output/server/chunks/routes/api/issues/_id/history.get.mjs.map +1 -1
  127. package/.output/server/node_modules/.prisma/client/index.js +4 -3
  128. package/.output/server/node_modules/.prisma/client/package.json +1 -1
  129. package/.output/server/package.json +1 -1
  130. package/bin/autocode +188 -4
  131. package/package.json +5 -6
  132. package/prisma/migrations/20260104173538_init/migration.sql +142 -0
  133. package/prisma/migrations/20260104180000_pipeline_versioning/migration.sql +216 -0
  134. package/prisma/migrations/20260104190638_add_column_prompts/migration.sql +50 -0
  135. package/prisma/migrations/20260105120000_remove_column_prompts/migration.sql +3 -0
  136. package/prisma/migrations/20260105150000_normalize_pipeline_names/migration.sql +37 -0
  137. package/prisma/migrations/20260105170000_remove_slug_prefixes/migration.sql +16 -0
  138. package/prisma/migrations/migration_lock.toml +3 -0
  139. package/prisma/schema.prisma +185 -0
  140. package/templates/prompts/_transition-decision.en.md +41 -25
  141. package/templates/prompts/_transition-decision.fr.md +28 -11
  142. package/templates/prompts/design.en.md +31 -9
  143. package/templates/prompts/design.fr.md +31 -9
  144. package/templates/prompts/git-tag.en.md +47 -11
  145. package/templates/prompts/git-tag.fr.md +47 -11
  146. package/templates/prompts/in-progress.en.md +43 -9
  147. package/templates/prompts/in-progress.fr.md +44 -10
  148. package/templates/prompts/qualification.en.md +48 -17
  149. package/templates/prompts/qualification.fr.md +48 -17
  150. package/templates/prompts/retest-cypress.en.md +14 -3
  151. package/templates/prompts/retest-cypress.fr.md +14 -3
  152. package/templates/prompts/review-security.en.md +35 -6
  153. package/templates/prompts/review-security.fr.md +35 -6
  154. package/templates/prompts/specification.en.md +29 -7
  155. package/templates/prompts/specification.fr.md +29 -7
  156. package/templates/prompts/splitter.en.md +50 -28
  157. package/templates/prompts/splitter.fr.md +52 -31
  158. package/templates/prompts/testing-cypress.en.md +14 -4
  159. package/templates/prompts/testing-cypress.fr.md +14 -4
  160. package/templates/prompts/testing-integration.en.md +39 -3
  161. package/templates/prompts/testing-integration.fr.md +39 -3
  162. package/.output/public/_i18n/_RCBbyrF/en/messages.json +0 -1
  163. package/.output/public/_i18n/_RCBbyrF/fr/messages.json +0 -1
  164. package/.output/public/_nuxt/B-QzFHDD.js +0 -1
  165. package/.output/public/_nuxt/Bn3kTsBm.js +0 -1
  166. package/.output/public/_nuxt/C2Vs_J-1.js +0 -1
  167. package/.output/public/_nuxt/CDVPefsv.js +0 -1
  168. package/.output/public/_nuxt/CSk34z2H.js +0 -1
  169. package/.output/public/_nuxt/DPWzdJ4S.js +0 -1
  170. package/.output/public/_nuxt/DrzMcrms.js +0 -1
  171. package/.output/public/_nuxt/_bAHEawb.js +0 -1
  172. package/.output/public/_nuxt/b2LQmhwq.js +0 -1
  173. package/.output/public/_nuxt/builds/meta/4d6876ea-4c52-49d1-a9d5-07bb0648a85e.json +0 -1
  174. package/.output/public/_nuxt/cli.e1u7fwy6.css +0 -1
  175. package/.output/public/_nuxt/hWy-7Z1L.js +0 -10
  176. package/.output/public/_nuxt/index.COVdL_Kx.css +0 -1
  177. package/.output/public/_nuxt/index.Dndk3KN9.css +0 -1
  178. package/.output/public/_nuxt/new.BFERdqdm.css +0 -1
  179. package/.output/public/_nuxt/prompt.DZ0wdOji.css +0 -1
  180. package/.output/server/chunks/build/LandingArchitecture-styles.Don6ug3a.mjs +0 -8
  181. package/.output/server/chunks/build/LandingArchitecture-styles.Don6ug3a.mjs.map +0 -1
  182. package/.output/server/chunks/build/LandingAutonomy-styles.D9JJFMEO.mjs +0 -8
  183. package/.output/server/chunks/build/LandingAutonomy-styles.D9JJFMEO.mjs.map +0 -1
  184. package/.output/server/chunks/build/LandingDemo-styles.WY8VUN9P.mjs +0 -8
  185. package/.output/server/chunks/build/LandingDemo-styles.WY8VUN9P.mjs.map +0 -1
  186. package/.output/server/chunks/build/LandingFooter-styles.sSpn5cgM.mjs +0 -8
  187. package/.output/server/chunks/build/LandingFooter-styles.sSpn5cgM.mjs.map +0 -1
  188. package/.output/server/chunks/build/LandingPipeline-styles.CL96fyQR.mjs +0 -8
  189. package/.output/server/chunks/build/LandingPipeline-styles.CL96fyQR.mjs.map +0 -1
  190. package/.output/server/chunks/build/LandingRoadmap-styles.DX5EsTsx.mjs +0 -8
  191. package/.output/server/chunks/build/LandingRoadmap-styles.DX5EsTsx.mjs.map +0 -1
  192. package/.output/server/chunks/build/cli-CZwbcgW5.mjs.map +0 -1
  193. package/.output/server/chunks/build/cli-styles.CSdcLhw8.mjs +0 -8
  194. package/.output/server/chunks/build/cli-styles.CSdcLhw8.mjs.map +0 -1
  195. package/.output/server/chunks/build/index-3KvoAMZW.mjs.map +0 -1
  196. package/.output/server/chunks/build/index-CKZ58Ox2.mjs.map +0 -1
  197. package/.output/server/chunks/build/index-styles.BJ7kZO7q.mjs +0 -8
  198. package/.output/server/chunks/build/index-styles.BJ7kZO7q.mjs.map +0 -1
  199. package/.output/server/chunks/build/new-styles.Chk5u_6M.mjs +0 -8
  200. package/.output/server/chunks/build/new-styles.Chk5u_6M.mjs.map +0 -1
  201. package/.output/server/chunks/build/prompt-BjvwrM-J.mjs.map +0 -1
  202. package/.output/server/chunks/build/prompt-styles.DWfublIG.mjs +0 -8
  203. package/.output/server/chunks/build/prompt-styles.DWfublIG.mjs.map +0 -1
@@ -7,7 +7,13 @@ You are the **transition decider** for AutoCode. After Claude finishes its work
7
7
  - **Issue**: {key}
8
8
  - **Title**: {title}
9
9
  - **Current column**: {currentColumn}
10
- - **Available columns**: {columnsList}
10
+ - **Next column**: {nextColumn}
11
+
12
+ ## Project pipeline (columns in order)
13
+
14
+ ```
15
+ {columnsList}
16
+ ```
11
17
 
12
18
  ## Recent history
13
19
 
@@ -21,36 +27,45 @@ You are the **transition decider** for AutoCode. After Claude finishes its work
21
27
 
22
28
  Analyze the work done and decide the next action:
23
29
 
24
- | Action | When to use |
30
+ | Action | Description |
25
31
  |--------|-------------|
26
- | `NEXT` | Work completed successfully, move to next column |
27
- | `RETRY` | Work incomplete or recoverable error, retry same column |
28
- | `BLOCKED` | Blocking issue detected, human intervention needed |
29
- | `MOVE <column>` | Go to a specific column (e.g., back to qualification) |
32
+ | `NEXT` | Execute `autocode next` → automatically move to **{nextColumn}** |
33
+ | `RETRY` | Retry the same column ({currentColumn}) |
34
+ | `BLOCKED` | Human intervention needed |
35
+ | `MOVE <slug>` | Go to a specific column (use exact slug from pipeline above) |
36
+
37
+ ## Status Detection (STRICT)
38
+
39
+ Search for these EXACT patterns in the last comment:
40
+
41
+ | Pattern found | Action |
42
+ |---------------|--------|
43
+ | `[OK]` | → **NEXT** |
44
+ | `[FAILED]` | → **RETRY** |
45
+ | `[BLOCKED]` | → **BLOCKED** |
46
+ | `[SKIP]` or `SKIP -` | → **NEXT** |
47
+
48
+ **If NO pattern found** → **RETRY** (force Claude to comment correctly)
30
49
 
31
- ## Decision criteria
50
+ ## Additional Rules
32
51
 
33
52
  ### NEXT - Move forward
34
- - Comment indicates work is complete (OK, passed, completed, successful)
35
- - Comment contains "SKIP" indicating the column is not applicable for this feature
36
- - No blocking errors mentioned
53
+ - Comment contains `[OK]` or `[SKIP]` or `SKIP -`
37
54
  - Column objectives appear to be met
38
55
 
39
56
  ### RETRY - Try again
40
- - Temporary or recoverable error
41
- - Work partially done
42
- - Minor correction needed
57
+ - Comment contains `[FAILED]`
58
+ - OR no status pattern found
59
+ - OR temporary recoverable error
43
60
 
44
61
  ### BLOCKED - Block
45
- - Critical non-recoverable error
46
- - Missing information that requires human
47
- - Conflict or ambiguity in requirements
48
- - Tests failing repeatedly
62
+ - Comment contains `[BLOCKED]`
63
+ - OR critical non-recoverable error
64
+ - OR missing information that requires human
49
65
 
50
- ### MOVE <column> - Redirect
51
- - `MOVE 01_qualification`: missing information in ticket
52
- - `MOVE 02_splitter`: ticket too complex, needs splitting
53
- - Other column based on context
66
+ ### MOVE <slug> - Redirect
67
+ - Use the **exact slug** of a column from the pipeline above
68
+ - Typical cases: back to qualification, splitter, or other column based on context
54
69
 
55
70
  ## Response format
56
71
 
@@ -61,10 +76,11 @@ ACTION [short reason]
61
76
  ```
62
77
 
63
78
  Examples:
64
- - `NEXT [Qualification completed successfully]`
65
- - `RETRY [Build error, correction needed]`
66
- - `BLOCKED [Tests failing, unknown cause]`
67
- - `MOVE 01_qualification [Missing acceptance criteria]`
79
+ - `NEXT [Pattern [OK] detected]`
80
+ - `RETRY [Pattern [FAILED] detected]`
81
+ - `RETRY [No status pattern found]`
82
+ - `BLOCKED [Pattern [BLOCKED] detected]`
83
+ - `MOVE qualification [Missing acceptance criteria]`
68
84
 
69
85
  ## Response
70
86
 
@@ -34,24 +34,34 @@ Analyse le travail effectue et decide de la prochaine action parmi :
34
34
  | `BLOCKED` | Intervention humaine necessaire |
35
35
  | `MOVE <slug>` | Aller vers une colonne specifique (utilise le slug exact du pipeline ci-dessus) |
36
36
 
37
- ## Criteres de decision
37
+ ## Detection du statut (STRICT)
38
+
39
+ Chercher ces patterns EXACTS dans le dernier commentaire :
40
+
41
+ | Pattern trouve | Action |
42
+ |----------------|--------|
43
+ | `[OK]` | → **NEXT** |
44
+ | `[FAILED]` | → **RETRY** |
45
+ | `[BLOCKED]` | → **BLOCKED** |
46
+ | `[SKIP]` ou `SKIP -` | → **NEXT** |
47
+
48
+ **Si AUCUN pattern trouve** → **RETRY** (forcer Claude a commenter correctement)
49
+
50
+ ## Regles supplementaires
38
51
 
39
52
  ### NEXT - Passer a la suite
40
- - Le commentaire indique que le travail est termine (OK, termine, complete, reussi)
41
- - Le commentaire contient "SKIP" indiquant que la colonne n'est pas applicable
42
- - Pas d'erreur bloquante mentionnee
53
+ - Le commentaire contient `[OK]` ou `[SKIP]` ou `SKIP -`
43
54
  - Les objectifs de la colonne semblent atteints
44
55
 
45
56
  ### RETRY - Reessayer
46
- - Erreur temporaire ou recuperable
47
- - Travail partiellement effectue
48
- - Besoin de correction mineure
57
+ - Le commentaire contient `[FAILED]`
58
+ - OU aucun pattern de statut trouve
59
+ - OU erreur temporaire recuperable
49
60
 
50
61
  ### BLOCKED - Bloquer
51
- - Erreur critique non recuperable
52
- - Information manquante qui necessite un humain
53
- - Conflit ou ambiguite dans les requirements
54
- - Tests echoues de maniere repetee
62
+ - Le commentaire contient `[BLOCKED]`
63
+ - OU erreur critique non recuperable
64
+ - OU information manquante qui necessite un humain
55
65
 
56
66
  ### MOVE <slug> - Rediriger
57
67
  - Utilise le **slug exact** d'une colonne du pipeline ci-dessus
@@ -65,5 +75,12 @@ Reponds UNIQUEMENT avec une ligne au format :
65
75
  ACTION [raison courte]
66
76
  ```
67
77
 
78
+ Exemples :
79
+ - `NEXT [Pattern [OK] detecte]`
80
+ - `RETRY [Pattern [FAILED] detecte]`
81
+ - `RETRY [Aucun pattern de statut trouve]`
82
+ - `BLOCKED [Pattern [BLOCKED] detecte]`
83
+ - `MOVE qualification [Missing acceptance criteria]`
84
+
68
85
  ## Reponse
69
86
 
@@ -7,16 +7,38 @@ Create technical and/or UX design for the feature. Prepare mockups, diagrams, or
7
7
  ## Actions
8
8
 
9
9
  1. Review specifications and requirements
10
- 2. Create UI mockups/wireframes if user-facing
11
- 3. Design component architecture if applicable
12
- 4. Create sequence diagrams for complex flows
13
- 5. Define state management approach if applicable
10
+ 2. Create UI mockups/wireframes IF ticket involves user interface
11
+ 3. Design component architecture IF new module or major refactoring
12
+ 4. Create sequence diagrams IF flow involves 3+ components
13
+ 5. Define state management approach IF new global state or state shared between components
14
14
  6. Document design decisions and trade-offs
15
- 7. If out of scope work detected:
16
- - Slightly out of scope (minor improvement, edge case): `autocode new "<title>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteria>" --semver patch --column ready`
17
- - Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteria>" --semver patch --column backlog`
18
- - In scope: handle directly in current issue
19
- 8. Document: `autocode comment <issue-key> "Design: [complete/in progress] - <summary>"`
15
+
16
+ ## Scope Management
17
+
18
+ If out-of-scope work is detected, use these criteria:
19
+
20
+ | Situation | Action |
21
+ |-----------|--------|
22
+ | Modification < 30 min, same files | Handle in this ticket |
23
+ | Modification 30min-2h, 1-2 new files | Create child ticket → ready |
24
+ | Modification > 2h OR > 3 new files | Create ticket → backlog |
25
+
26
+ **Commands to create tickets:**
27
+ - CHILD ticket (linked to current ticket): `autocode new-child {key} "<title>" "<description>" -p P2 -a "<criterion1>" -a "<criterion2>"`
28
+ - INDEPENDENT ticket: `autocode new "<title>" "<description>" -p P2 -a "<criteria>"`
29
+
30
+ **IMPORTANT**: Never use `autocode new --parent`, use `new-child` instead.
31
+
32
+ ## Mandatory Comment Format
33
+
34
+ End with:
35
+ ```
36
+ autocode comment {key} "[OK] - Design: <summary>"
37
+ ```
38
+
39
+ Valid statuses:
40
+ - `[OK]` - Design completed successfully
41
+ - `[BLOCKED]` - Need clarification on requirements
20
42
 
21
43
  ## Validation Criteria
22
44
 
@@ -7,16 +7,38 @@ Creer le design technique et/ou UX pour la fonctionnalite. Preparer les maquette
7
7
  ## Actions
8
8
 
9
9
  1. Revoir les specifications et exigences
10
- 2. Creer des maquettes UI/wireframes si interface utilisateur
11
- 3. Designer l'architecture des composants si applicable
12
- 4. Creer des diagrammes de sequence pour les flux complexes
13
- 5. Definir l'approche de gestion d'etat si applicable
10
+ 2. Creer des maquettes UI/wireframes SI le ticket concerne une interface utilisateur
11
+ 3. Designer l'architecture des composants SI nouveau module ou refactoring majeur
12
+ 4. Creer des diagrammes de sequence SI flux impliquant 3+ composants
13
+ 5. Definir l'approche de gestion d'etat SI nouvel etat global ou partage entre composants
14
14
  6. Documenter les decisions de design et compromis
15
- 7. Si travail hors scope detecte :
16
- - Legerement hors scope (amelioration mineure, cas limite) : `autocode new "<titre>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteres>" --semver patch --column ready`
17
- - Tres hors scope (nouvelle feature, changement majeur) : `autocode new "<titre>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteres>" --semver patch --column backlog`
18
- - Dans le scope : traiter directement dans le ticket actuel
19
- 8. Documenter : `autocode comment <issue-key> "Design : [termine/en cours] - <resume>"`
15
+
16
+ ## Gestion du scope
17
+
18
+ Si travail hors scope detecte, utiliser ces criteres :
19
+
20
+ | Situation | Action |
21
+ |-----------|--------|
22
+ | Modification < 30 min, memes fichiers | Traiter dans ce ticket |
23
+ | Modification 30min-2h, 1-2 nouveaux fichiers | Creer ticket enfant → ready |
24
+ | Modification > 2h OU > 3 nouveaux fichiers | Creer ticket → backlog |
25
+
26
+ **Commandes pour creer des tickets :**
27
+ - Ticket ENFANT (lie au ticket actuel) : `autocode new-child {key} "<titre>" "<description>" -p P2 -a "<critere1>" -a "<critere2>"`
28
+ - Ticket INDEPENDANT : `autocode new "<titre>" "<description>" -p P2 -a "<criteres>"`
29
+
30
+ **IMPORTANT** : Ne jamais utiliser `autocode new --parent`, utiliser `new-child` a la place.
31
+
32
+ ## Format de commentaire obligatoire
33
+
34
+ Terminer avec :
35
+ ```
36
+ autocode comment {key} "[OK] - Design : <resume>"
37
+ ```
38
+
39
+ Statuts valides :
40
+ - `[OK]` - Design termine avec succes
41
+ - `[BLOCKED]` - Besoin clarification sur exigences
20
42
 
21
43
  ## Criteres de Validation
22
44
 
@@ -4,24 +4,60 @@
4
4
 
5
5
  Create a version tag for the release. Follow semantic versioning.
6
6
 
7
+ ## Semver Decision Tree
8
+
9
+ Use this decision tree in order:
10
+
11
+ ### 1. MAJOR (X.0.0) - Breaking change
12
+ Increment MAJOR if ANY of these conditions are true:
13
+ - [ ] Public API modified (function signature changed, export removed)
14
+ - [ ] Database schema modified (non-reversible migration)
15
+ - [ ] Configuration format changed (old files incompatible)
16
+ - [ ] Default behavior changed in incompatible way
17
+
18
+ ### 2. MINOR (0.X.0) - New feature
19
+ Increment MINOR if ANY of these conditions are true AND no MAJOR condition:
20
+ - [ ] New feature added (endpoint, component, command)
21
+ - [ ] New configuration option added
22
+ - [ ] Deprecation announced (old code still works)
23
+
24
+ ### 3. PATCH (0.0.X) - Fix
25
+ Increment PATCH if no MAJOR or MINOR condition:
26
+ - [ ] Bug fix
27
+ - [ ] Performance improvement
28
+ - [ ] Internal refactoring (no API change)
29
+ - [ ] Documentation fix
30
+
31
+ **When in doubt: choose PATCH**
32
+
7
33
  ## Actions
8
34
 
9
- 1. Determine version bump based on changes:
10
- - MAJOR: breaking changes
11
- - MINOR: new features (backward compatible)
12
- - PATCH: bug fixes
13
- 2. Check current version: `git describe --tags --abbrev=0`
14
- 3. Create annotated tag: `git tag -a v<version> -m "<release notes>"`
15
- 4. Push tag: `git push origin v<version>`
16
- 5. Verify tag on remote
17
- 6. Document: `autocode comment <issue-key> "Git tag: [OK/failed] - v<version>"`
35
+ 1. Check current version: `git describe --tags --abbrev=0`
36
+ 2. Analyze commits since last tag: `git log $(git describe --tags --abbrev=0)..HEAD --oneline`
37
+ 3. Apply the decision tree above
38
+ 4. Create annotated tag: `git tag -a v<version> -m "<release notes>"`
39
+ 5. Push tag: `git push origin v<version>`
40
+ 6. Verify tag on remote
41
+
42
+ ## Mandatory Comment Format
43
+
44
+ End with:
45
+ ```
46
+ autocode comment {key} "[OK] - Git tag: v<version> (<type>)"
47
+ ```
48
+
49
+ Valid types: `MAJOR`, `MINOR`, `PATCH`
50
+
51
+ Valid statuses:
52
+ - `[OK]` - Tag created and pushed successfully
53
+ - `[FAILED]` - Failed (describe the problem)
18
54
 
19
55
  ## Validation Criteria
20
56
 
21
57
  - [ ] Version follows semver
22
- - [ ] Tag is annotated with message
58
+ - [ ] Tag is annotated with descriptive message
23
59
  - [ ] Tag pushed to remote
24
- - [ ] Version increment is appropriate
60
+ - [ ] Version increment is justified by decision tree
25
61
 
26
62
  ## Notes
27
63
 
@@ -4,24 +4,60 @@
4
4
 
5
5
  Creer un tag de version pour la release. Suivre le versionnement semantique.
6
6
 
7
+ ## Arbre de decision semver
8
+
9
+ Utiliser cet arbre de decision dans l'ordre :
10
+
11
+ ### 1. MAJOR (X.0.0) - Changement cassant
12
+ Incrementer MAJOR si UNE de ces conditions est vraie :
13
+ - [ ] API publique modifiee (signature de fonction, export supprime)
14
+ - [ ] Schema base de donnees modifie (migration non-reversible)
15
+ - [ ] Format de configuration change (anciens fichiers incompatibles)
16
+ - [ ] Comportement par defaut change de maniere incompatible
17
+
18
+ ### 2. MINOR (0.X.0) - Nouvelle fonctionnalite
19
+ Incrementer MINOR si UNE de ces conditions est vraie ET aucune condition MAJOR :
20
+ - [ ] Nouvelle fonctionnalite ajoutee (endpoint, composant, commande)
21
+ - [ ] Nouvelle option de configuration ajoutee
22
+ - [ ] Deprecation annoncee (ancien code fonctionne encore)
23
+
24
+ ### 3. PATCH (0.0.X) - Correction
25
+ Incrementer PATCH si aucune condition MAJOR ou MINOR :
26
+ - [ ] Bug fix
27
+ - [ ] Amelioration de performance
28
+ - [ ] Refactoring interne (pas de changement d'API)
29
+ - [ ] Correction de documentation
30
+
31
+ **En cas de doute : choisir PATCH**
32
+
7
33
  ## Actions
8
34
 
9
- 1. Determiner l'increment de version selon les changements :
10
- - MAJOR : changements cassants
11
- - MINOR : nouvelles fonctionnalites (retrocompatibles)
12
- - PATCH : corrections de bugs
13
- 2. Verifier la version actuelle : `git describe --tags --abbrev=0`
14
- 3. Creer un tag annote : `git tag -a v<version> -m "<notes de release>"`
15
- 4. Pousser le tag : `git push origin v<version>`
16
- 5. Verifier le tag sur le distant
17
- 6. Documenter : `autocode comment <issue-key> "Git tag : [OK/echec] - v<version>"`
35
+ 1. Verifier la version actuelle : `git describe --tags --abbrev=0`
36
+ 2. Analyser les commits depuis le dernier tag : `git log $(git describe --tags --abbrev=0)..HEAD --oneline`
37
+ 3. Appliquer l'arbre de decision ci-dessus
38
+ 4. Creer un tag annote : `git tag -a v<version> -m "<notes de release>"`
39
+ 5. Pousser le tag : `git push origin v<version>`
40
+ 6. Verifier le tag sur le distant
41
+
42
+ ## Format de commentaire obligatoire
43
+
44
+ Terminer avec :
45
+ ```
46
+ autocode comment {key} "[OK] - Git tag : v<version> (<type>)"
47
+ ```
48
+
49
+ Types valides : `MAJOR`, `MINOR`, `PATCH`
50
+
51
+ Statuts valides :
52
+ - `[OK]` - Tag cree et pousse avec succes
53
+ - `[FAILED]` - Echec (decrire le probleme)
18
54
 
19
55
  ## Criteres de Validation
20
56
 
21
57
  - [ ] La version suit semver
22
- - [ ] Le tag est annote avec un message
58
+ - [ ] Le tag est annote avec un message descriptif
23
59
  - [ ] Le tag est pousse sur le distant
24
- - [ ] L'increment de version est approprie
60
+ - [ ] L'increment de version est justifie par l'arbre de decision
25
61
 
26
62
  ## Notes
27
63
 
@@ -4,24 +4,58 @@
4
4
 
5
5
  Active development. Issue is being worked on, code is being written.
6
6
 
7
+ ## Pre-coding Checklist
8
+
9
+ BEFORE modifying code:
10
+ - [ ] Read ALL acceptance criteria
11
+ - [ ] Identified files to modify
12
+ - [ ] Verified no criterion is already 100% satisfied
13
+ - [ ] Estimated < 2h of work (otherwise, request split via comment)
14
+
7
15
  ## Actions
8
16
 
9
17
  1. Analyze issue and acceptance criteria
10
18
  2. Explore codebase to understand existing context
11
19
  3. Plan modifications (files to create/modify)
12
20
  4. **MANDATORY VERIFICATION**: For EACH acceptance criterion:
13
- - Check if criterion is already satisfied in existing code
14
- - If NO: implement the missing functionality
15
- - If YES: move to next criterion
21
+ - Test if criterion is 100% satisfied in current code
22
+ - If satisfaction < 100%: implement the missing part
23
+ - If satisfaction = 100%: move to next criterion
16
24
  5. Test locally that ALL criteria pass
17
25
  6. Commit + push work done
18
- 7. If out of scope work detected: `autocode new "<title>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteria>" --semver patch --column backlog`
19
- 8. Document: `autocode comment <issue-key> "Development: [complete/in progress] - [list of changes]"`
26
+
27
+ ## Scope Management
28
+
29
+ If out-of-scope work is detected:
30
+
31
+ | Situation | Action |
32
+ |-----------|--------|
33
+ | Modification < 30 min, same files | Handle in this ticket |
34
+ | Modification 30min-2h, 1-2 new files | Create child ticket → ready |
35
+ | Modification > 2h OR > 3 new files | Create ticket → backlog |
36
+
37
+ **Commands:**
38
+ - CHILD ticket: `autocode new-child {key} "<title>" "<description>" -p P2 -a "<criterion1>" -a "<criterion2>"`
39
+ - INDEPENDENT ticket: `autocode new "<title>" "<description>" -p P2 -a "<criteria>"`
40
+
41
+ **IMPORTANT**: Never use `autocode new --parent`, use `new-child` instead.
42
+
43
+ ## Mandatory Comment Format
44
+
45
+ End with:
46
+ ```
47
+ autocode comment {key} "[OK] - Development: <list of changes>"
48
+ ```
49
+
50
+ Valid statuses:
51
+ - `[OK]` - All criteria implemented and tested
52
+ - `[FAILED]` - Failed, needs retry (describe the problem)
53
+ - `[BLOCKED]` - Blocked, needs human intervention
20
54
 
21
55
  ## IMPORTANT
22
56
 
23
57
  If criteria cannot be satisfied:
24
- - Document why with `autocode comment`
58
+ - Use `[BLOCKED]` and explain why
25
59
  - The system will decide next steps automatically
26
60
 
27
61
  If code exists but does not match criteria:
@@ -30,11 +64,11 @@ If code exists but does not match criteria:
30
64
 
31
65
  ## Validation Criteria
32
66
 
33
- - [ ] ALL acceptance criteria are verified ONE BY ONE
34
- - [ ] Code implements ALL functionalities required by criteria
67
+ - [ ] ALL acceptance criteria verified ONE BY ONE
68
+ - [ ] Code implements ALL required functionalities
35
69
  - [ ] Local tests pass
36
70
  - [ ] Code is committed and pushed
37
- - [ ] A comment summarizes work done
71
+ - [ ] Comment with status [OK]/[FAILED]/[BLOCKED]
38
72
 
39
73
  ## Notes
40
74
 
@@ -4,37 +4,71 @@
4
4
 
5
5
  Developpement actif. Le ticket est en cours de travail, le code est en cours d'ecriture.
6
6
 
7
+ ## Checklist avant de coder
8
+
9
+ AVANT de modifier le code :
10
+ - [ ] Lu TOUS les criteres d'acceptation
11
+ - [ ] Identifie les fichiers a modifier
12
+ - [ ] Verifie qu'aucun critere n'est deja satisfait a 100%
13
+ - [ ] Estime < 2h de travail (sinon, demander split via commentaire)
14
+
7
15
  ## Actions
8
16
 
9
17
  1. Analyser le ticket et les criteres d'acceptation
10
18
  2. Explorer le codebase pour comprendre le contexte existant
11
19
  3. Planifier les modifications (fichiers a creer/modifier)
12
20
  4. **VERIFICATION OBLIGATOIRE** : Pour CHAQUE critere d'acceptation :
13
- - Verifier si le critere est deja satisfait dans le code existant
14
- - Si NON : implementer la fonctionnalite manquante
15
- - Si OUI : passer au critere suivant
21
+ - Tester si le critere est satisfait a 100% dans le code actuel
22
+ - Si satisfaction < 100% : implementer la partie manquante
23
+ - Si satisfaction = 100% : passer au critere suivant
16
24
  5. Tester localement que TOUS les criteres passent
17
25
  6. Commit + push du travail effectue
18
- 7. Si travail hors scope detecte : `autocode new "<titre>" "<description>" --priority P2 --labels "<labels>" --acceptance "<critères>" --semver patch --column backlog`
19
- 8. Documenter : `autocode comment <issue-key> "Travail effectue : [liste des modifications]"`
26
+
27
+ ## Gestion du scope
28
+
29
+ Si travail hors scope detecte :
30
+
31
+ | Situation | Action |
32
+ |-----------|--------|
33
+ | Modification < 30 min, memes fichiers | Traiter dans ce ticket |
34
+ | Modification 30min-2h, 1-2 nouveaux fichiers | Creer ticket enfant → ready |
35
+ | Modification > 2h OU > 3 nouveaux fichiers | Creer ticket → backlog |
36
+
37
+ **Commandes :**
38
+ - Ticket ENFANT : `autocode new-child {key} "<titre>" "<description>" -p P2 -a "<critere1>" -a "<critere2>"`
39
+ - Ticket INDEPENDANT : `autocode new "<titre>" "<description>" -p P2 -a "<criteres>"`
40
+
41
+ **IMPORTANT** : Ne jamais utiliser `autocode new --parent`, utiliser `new-child` a la place.
42
+
43
+ ## Format de commentaire obligatoire
44
+
45
+ Terminer avec :
46
+ ```
47
+ autocode comment {key} "[OK] - Developpement : <liste des modifications>"
48
+ ```
49
+
50
+ Statuts valides :
51
+ - `[OK]` - Tous les criteres implementes et testes
52
+ - `[FAILED]` - Echec, necessite retry (decrire le probleme)
53
+ - `[BLOCKED]` - Bloque, necessite intervention humaine
20
54
 
21
55
  ## IMPORTANT
22
56
 
23
57
  Si des criteres ne peuvent pas etre satisfaits :
24
- - Documenter pourquoi avec `autocode comment`
58
+ - Utiliser `[BLOCKED]` et expliquer pourquoi
25
59
  - Le systeme decidera automatiquement de la suite
26
60
 
27
- Si le code existe deja mais ne correspond pas aux criteres :
61
+ Si le code existe mais ne correspond pas aux criteres :
28
62
  - MODIFIER le code pour qu'il corresponde aux criteres
29
63
  - Ne pas supposer que "le code existe donc c'est bon"
30
64
 
31
65
  ## Criteres de Validation
32
66
 
33
- - [ ] TOUS les criteres d'acceptation du ticket sont verifies UN PAR UN
34
- - [ ] Le code implemente TOUTES les fonctionnalites requises par les criteres
67
+ - [ ] TOUS les criteres d'acceptation verifies UN PAR UN
68
+ - [ ] Code implemente TOUTES les fonctionnalites requises
35
69
  - [ ] Tests locaux passent
36
70
  - [ ] Code commite et pousse
37
- - [ ] Un commentaire resume le travail effectue
71
+ - [ ] Commentaire avec statut [OK]/[FAILED]/[BLOCKED]
38
72
 
39
73
  ## Notes
40
74
 
@@ -2,29 +2,60 @@
2
2
 
3
3
  ## Role
4
4
 
5
- Analyze and qualify the issue requirement. Ensure the request is clear, feasible, and properly scoped.
5
+ Explore the codebase and reformulate the ticket to produce a clear, unambiguous specification. This mode is similar to "plan mode": understand the existing context then precisely clarify what needs to be done.
6
+
7
+ **IMPORTANT**: The customer is king. NEVER judge whether a feature "belongs" to the project or not. Your role is to clarify and specify, not to filter requests.
6
8
 
7
9
  ## Actions
8
10
 
9
- 1. Read the issue description and acceptance criteria
10
- 2. Identify ambiguities or missing information
11
- 3. Assess technical feasibility
12
- 4. Estimate complexity (simple/medium/complex)
13
- 5. Identify dependencies with other issues or systems
14
- 6. If clarification needed: add comment with questions
15
- 7. If out of scope work detected:
16
- - Slightly out of scope (minor improvement, edge case): `autocode new "<title>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteria>" --semver patch --column ready`
17
- - Significantly out of scope (new feature, major change): `autocode new "<title>" "<description>" --priority P2 --labels "<labels>" --acceptance "<criteria>" --semver patch --column backlog`
18
- - In scope: handle directly in current issue
19
- 8. Document: `autocode comment <issue-key> "Qualification: [complete/pending] - <summary>"`
11
+ 1. **Explore the codebase**
12
+ - Identify files and components that could be involved
13
+ - Understand existing architecture and patterns used
14
+ - If it's a new feature, identify where it would integrate
15
+
16
+ 2. **Reformulate the description**
17
+ - Rewrite the description to be precise and actionable
18
+ - Include technical context (existing files or files to create)
19
+ - Remove any ambiguity about expected behavior
20
+
21
+ 3. **Refine acceptance criteria**
22
+ - Reformulate each criterion to be testable and verifiable
23
+ - Add missing criteria
24
+ - Specify edge cases
25
+
26
+ 4. **Update the ticket**
27
+ ```
28
+ autocode edit {key} --description "<new description>"
29
+ autocode criteria {key} set "<criterion1>" "<criterion2>" ...
30
+ ```
31
+
32
+ ## Mandatory Comment Format
33
+
34
+ End with:
35
+ ```
36
+ autocode comment {key} "[OK] - Qualification: <summary of clarifications made>"
37
+ ```
38
+
39
+ Valid statuses:
40
+ - `[OK]` - Specification clarified and ticket updated (default case)
41
+ - `[BLOCKED]` - ONLY if a technical ambiguity blocks (e.g., "which API to use?", "what data format?")
42
+
43
+ **If BLOCKED, you MUST ask a clear question:**
44
+ ```
45
+ autocode comment {key} "[BLOCKED] - Technical question: <your precise question>"
46
+ ```
47
+
48
+ **NEVER block for**:
49
+ - "This feature doesn't belong to the project"
50
+ - "This is out of scope"
51
+ - Any non-technical reason
20
52
 
21
53
  ## Validation Criteria
22
54
 
23
- - [ ] Requirement is clear and unambiguous
24
- - [ ] Acceptance criteria are testable
25
- - [ ] Technical approach identified
26
- - [ ] No blocking dependencies
55
+ - [ ] Description is precise and includes technical context
56
+ - [ ] Acceptance criteria are testable and complete
57
+ - [ ] Ticket was updated with clarified spec
27
58
 
28
59
  ## Notes
29
60
 
30
- A well-qualified issue saves development time. When in doubt, ask for clarification rather than assuming.
61
+ Good qualification transforms a vague request into an actionable specification. The goal is that the developer picking up the ticket has zero doubt about what needs to be done.