edsger 0.77.0 → 0.79.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 (877) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -210
  3. package/assets/LICENSE +21 -0
  4. package/assets/README.md +104 -0
  5. package/assets/benchmark/base.yaml +286 -0
  6. package/assets/benchmark/csharp.yaml +68 -0
  7. package/assets/benchmark/dart.yaml +70 -0
  8. package/assets/benchmark/go.yaml +71 -0
  9. package/assets/benchmark/java.yaml +68 -0
  10. package/assets/benchmark/python.yaml +72 -0
  11. package/assets/benchmark/typescript.yaml +71 -0
  12. package/assets/languages.yaml +35 -0
  13. package/assets/manifest.yaml +39 -0
  14. package/assets/review/base.yaml +111 -0
  15. package/assets/review/csharp.yaml +38 -0
  16. package/assets/review/dart.yaml +40 -0
  17. package/assets/review/go.yaml +40 -0
  18. package/assets/review/java.yaml +40 -0
  19. package/assets/review/python.yaml +41 -0
  20. package/assets/review/typescript.yaml +40 -0
  21. package/assets/schema/benchmark.schema.json +87 -0
  22. package/assets/schema/review.schema.json +73 -0
  23. package/assets/skills/benchmark/SKILL.md +66 -0
  24. package/assets/skills/pr-resolve/SKILL.md +58 -0
  25. package/assets/skills/pr-review/SKILL.md +66 -0
  26. package/dist/index.js +1348 -1247
  27. package/dist/index.js.map +1 -0
  28. package/package.json +58 -53
  29. package/dist/api/adr.d.ts +0 -48
  30. package/dist/api/adr.js +0 -139
  31. package/dist/api/app-store-iap.d.ts +0 -60
  32. package/dist/api/app-store-iap.js +0 -145
  33. package/dist/api/app-store.d.ts +0 -93
  34. package/dist/api/app-store.js +0 -206
  35. package/dist/api/chat.d.ts +0 -72
  36. package/dist/api/chat.js +0 -272
  37. package/dist/api/cross-product.d.ts +0 -33
  38. package/dist/api/cross-product.js +0 -127
  39. package/dist/api/financing.d.ts +0 -47
  40. package/dist/api/financing.js +0 -37
  41. package/dist/api/github.d.ts +0 -86
  42. package/dist/api/github.js +0 -203
  43. package/dist/api/growth.d.ts +0 -81
  44. package/dist/api/growth.js +0 -75
  45. package/dist/api/intelligence-normalize.d.ts +0 -25
  46. package/dist/api/intelligence-normalize.js +0 -103
  47. package/dist/api/intelligence.d.ts +0 -187
  48. package/dist/api/intelligence.js +0 -402
  49. package/dist/api/issues/approval-checker.d.ts +0 -22
  50. package/dist/api/issues/approval-checker.js +0 -141
  51. package/dist/api/issues/batch-operations.d.ts +0 -17
  52. package/dist/api/issues/batch-operations.js +0 -100
  53. package/dist/api/issues/get-issue.d.ts +0 -5
  54. package/dist/api/issues/get-issue.js +0 -47
  55. package/dist/api/issues/index.d.ts +0 -8
  56. package/dist/api/issues/index.js +0 -10
  57. package/dist/api/issues/issue-utils.d.ts +0 -25
  58. package/dist/api/issues/issue-utils.js +0 -133
  59. package/dist/api/issues/status-updater.d.ts +0 -68
  60. package/dist/api/issues/status-updater.js +0 -190
  61. package/dist/api/issues/test-cases.d.ts +0 -29
  62. package/dist/api/issues/test-cases.js +0 -185
  63. package/dist/api/issues/update-issue.d.ts +0 -25
  64. package/dist/api/issues/update-issue.js +0 -127
  65. package/dist/api/issues/user-stories.d.ts +0 -21
  66. package/dist/api/issues/user-stories.js +0 -163
  67. package/dist/api/mcp-client.d.ts +0 -22
  68. package/dist/api/mcp-client.js +0 -75
  69. package/dist/api/products/test-cases.d.ts +0 -18
  70. package/dist/api/products/test-cases.js +0 -51
  71. package/dist/api/products.d.ts +0 -15
  72. package/dist/api/products.js +0 -45
  73. package/dist/api/release-test-cases.d.ts +0 -7
  74. package/dist/api/release-test-cases.js +0 -59
  75. package/dist/api/releases.d.ts +0 -41
  76. package/dist/api/releases.js +0 -117
  77. package/dist/api/run-sheets.d.ts +0 -22
  78. package/dist/api/run-sheets.js +0 -13
  79. package/dist/api/storage.d.ts +0 -13
  80. package/dist/api/storage.js +0 -29
  81. package/dist/api/tasks.d.ts +0 -26
  82. package/dist/api/tasks.js +0 -81
  83. package/dist/api/test-reports.d.ts +0 -9
  84. package/dist/api/test-reports.js +0 -43
  85. package/dist/api/user-psychology.d.ts +0 -101
  86. package/dist/api/user-psychology.js +0 -143
  87. package/dist/api/web-deploy.d.ts +0 -67
  88. package/dist/api/web-deploy.js +0 -199
  89. package/dist/auth/auth-store.d.ts +0 -98
  90. package/dist/auth/auth-store.js +0 -194
  91. package/dist/auth/env-store.d.ts +0 -41
  92. package/dist/auth/env-store.js +0 -127
  93. package/dist/auth/login.d.ts +0 -18
  94. package/dist/auth/login.js +0 -179
  95. package/dist/commands/adr/index.d.ts +0 -13
  96. package/dist/commands/adr/index.js +0 -31
  97. package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
  98. package/dist/commands/agent-workflow/chat-worker.js +0 -465
  99. package/dist/commands/agent-workflow/index.d.ts +0 -13
  100. package/dist/commands/agent-workflow/index.js +0 -107
  101. package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
  102. package/dist/commands/agent-workflow/issue-worker.js +0 -65
  103. package/dist/commands/agent-workflow/processor.d.ts +0 -95
  104. package/dist/commands/agent-workflow/processor.js +0 -519
  105. package/dist/commands/analyze-logs/index.d.ts +0 -7
  106. package/dist/commands/analyze-logs/index.js +0 -34
  107. package/dist/commands/api-docs/index.d.ts +0 -18
  108. package/dist/commands/api-docs/index.js +0 -41
  109. package/dist/commands/app-store/index.d.ts +0 -12
  110. package/dist/commands/app-store/index.js +0 -69
  111. package/dist/commands/architecture-diagram/index.d.ts +0 -8
  112. package/dist/commands/architecture-diagram/index.js +0 -10
  113. package/dist/commands/build/detect-project.d.ts +0 -52
  114. package/dist/commands/build/detect-project.js +0 -277
  115. package/dist/commands/build/index.d.ts +0 -66
  116. package/dist/commands/build/index.js +0 -544
  117. package/dist/commands/chat-serve/chat-server.d.ts +0 -114
  118. package/dist/commands/chat-serve/chat-server.js +0 -339
  119. package/dist/commands/chat-serve/index.d.ts +0 -20
  120. package/dist/commands/chat-serve/index.js +0 -58
  121. package/dist/commands/checklists/index.d.ts +0 -16
  122. package/dist/commands/checklists/index.js +0 -187
  123. package/dist/commands/checklists/tools.d.ts +0 -17
  124. package/dist/commands/checklists/tools.js +0 -19
  125. package/dist/commands/class-diagram/index.d.ts +0 -7
  126. package/dist/commands/class-diagram/index.js +0 -9
  127. package/dist/commands/code-review/index.d.ts +0 -2
  128. package/dist/commands/code-review/index.js +0 -37
  129. package/dist/commands/code-review/reviewer.d.ts +0 -3
  130. package/dist/commands/code-review/reviewer.js +0 -205
  131. package/dist/commands/config/index.d.ts +0 -16
  132. package/dist/commands/config/index.js +0 -60
  133. package/dist/commands/data-flow/index.d.ts +0 -19
  134. package/dist/commands/data-flow/index.js +0 -55
  135. package/dist/commands/diagram-shared/index.d.ts +0 -21
  136. package/dist/commands/diagram-shared/index.js +0 -37
  137. package/dist/commands/discover/index.d.ts +0 -14
  138. package/dist/commands/discover/index.js +0 -29
  139. package/dist/commands/er-diagram/index.d.ts +0 -19
  140. package/dist/commands/er-diagram/index.js +0 -55
  141. package/dist/commands/features/index.d.ts +0 -15
  142. package/dist/commands/features/index.js +0 -34
  143. package/dist/commands/financing-deck/index.d.ts +0 -8
  144. package/dist/commands/financing-deck/index.js +0 -66
  145. package/dist/commands/find-architecture/index.d.ts +0 -15
  146. package/dist/commands/find-architecture/index.js +0 -50
  147. package/dist/commands/find-bugs/index.d.ts +0 -13
  148. package/dist/commands/find-bugs/index.js +0 -48
  149. package/dist/commands/find-features/index.d.ts +0 -14
  150. package/dist/commands/find-features/index.js +0 -42
  151. package/dist/commands/find-smells/index.d.ts +0 -23
  152. package/dist/commands/find-smells/index.js +0 -74
  153. package/dist/commands/flowchart/index.d.ts +0 -8
  154. package/dist/commands/flowchart/index.js +0 -10
  155. package/dist/commands/growth-analysis/index.d.ts +0 -7
  156. package/dist/commands/growth-analysis/index.js +0 -89
  157. package/dist/commands/init/index.d.ts +0 -5
  158. package/dist/commands/init/index.js +0 -152
  159. package/dist/commands/init/prompts.d.ts +0 -9
  160. package/dist/commands/init/prompts.js +0 -128
  161. package/dist/commands/init/templates.d.ts +0 -9
  162. package/dist/commands/init/templates.js +0 -264
  163. package/dist/commands/intelligence/index.d.ts +0 -15
  164. package/dist/commands/intelligence/index.js +0 -138
  165. package/dist/commands/issue-analysis/index.d.ts +0 -5
  166. package/dist/commands/issue-analysis/index.js +0 -9
  167. package/dist/commands/pr-resolve/index.d.ts +0 -13
  168. package/dist/commands/pr-resolve/index.js +0 -50
  169. package/dist/commands/pr-review/index.d.ts +0 -12
  170. package/dist/commands/pr-review/index.js +0 -47
  171. package/dist/commands/product-techniques/index.d.ts +0 -15
  172. package/dist/commands/product-techniques/index.js +0 -37
  173. package/dist/commands/product-test-cases/index.d.ts +0 -12
  174. package/dist/commands/product-test-cases/index.js +0 -40
  175. package/dist/commands/quality-benchmark/index.d.ts +0 -45
  176. package/dist/commands/quality-benchmark/index.js +0 -247
  177. package/dist/commands/recipes/index.d.ts +0 -17
  178. package/dist/commands/recipes/index.js +0 -40
  179. package/dist/commands/refactor/refactor.d.ts +0 -2
  180. package/dist/commands/refactor/refactor.js +0 -134
  181. package/dist/commands/release-sync/index.d.ts +0 -5
  182. package/dist/commands/release-sync/index.js +0 -38
  183. package/dist/commands/run-sheet/index.d.ts +0 -6
  184. package/dist/commands/run-sheet/index.js +0 -48
  185. package/dist/commands/screen-flow/index.d.ts +0 -18
  186. package/dist/commands/screen-flow/index.js +0 -54
  187. package/dist/commands/sequence-diagram/index.d.ts +0 -19
  188. package/dist/commands/sequence-diagram/index.js +0 -55
  189. package/dist/commands/session-serve/index.d.ts +0 -32
  190. package/dist/commands/session-serve/index.js +0 -100
  191. package/dist/commands/session-turn/index.d.ts +0 -73
  192. package/dist/commands/session-turn/index.js +0 -254
  193. package/dist/commands/smoke-test/index.d.ts +0 -5
  194. package/dist/commands/smoke-test/index.js +0 -40
  195. package/dist/commands/state-diagram/index.d.ts +0 -7
  196. package/dist/commands/state-diagram/index.js +0 -9
  197. package/dist/commands/sync-aws/index.d.ts +0 -16
  198. package/dist/commands/sync-aws/index.js +0 -214
  199. package/dist/commands/sync-datadog/index.d.ts +0 -16
  200. package/dist/commands/sync-datadog/index.js +0 -236
  201. package/dist/commands/sync-github-issues/index.d.ts +0 -11
  202. package/dist/commands/sync-github-issues/index.js +0 -42
  203. package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
  204. package/dist/commands/sync-github-pull-requests/index.js +0 -42
  205. package/dist/commands/sync-org-repos/index.d.ts +0 -12
  206. package/dist/commands/sync-org-repos/index.js +0 -60
  207. package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
  208. package/dist/commands/sync-sentry-issues/index.js +0 -73
  209. package/dist/commands/sync-terraform/index.d.ts +0 -16
  210. package/dist/commands/sync-terraform/index.js +0 -248
  211. package/dist/commands/task-worker/index.d.ts +0 -8
  212. package/dist/commands/task-worker/index.js +0 -34
  213. package/dist/commands/task-worker/processor.d.ts +0 -23
  214. package/dist/commands/task-worker/processor.js +0 -84
  215. package/dist/commands/technical-design/index.d.ts +0 -5
  216. package/dist/commands/technical-design/index.js +0 -9
  217. package/dist/commands/test-cases-analysis/index.d.ts +0 -5
  218. package/dist/commands/test-cases-analysis/index.js +0 -9
  219. package/dist/commands/user-psychology/index.d.ts +0 -7
  220. package/dist/commands/user-psychology/index.js +0 -51
  221. package/dist/commands/user-stories-analysis/index.d.ts +0 -5
  222. package/dist/commands/user-stories-analysis/index.js +0 -9
  223. package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
  224. package/dist/commands/workflow/config/phase-configs.js +0 -132
  225. package/dist/commands/workflow/core/index.d.ts +0 -8
  226. package/dist/commands/workflow/core/index.js +0 -12
  227. package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
  228. package/dist/commands/workflow/core/issue-filter.js +0 -47
  229. package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
  230. package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
  231. package/dist/commands/workflow/core/state-manager.d.ts +0 -24
  232. package/dist/commands/workflow/core/state-manager.js +0 -42
  233. package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
  234. package/dist/commands/workflow/core/workflow-logger.js +0 -77
  235. package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
  236. package/dist/commands/workflow/executors/phase-executor.js +0 -338
  237. package/dist/commands/workflow/index.d.ts +0 -2
  238. package/dist/commands/workflow/index.js +0 -34
  239. package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
  240. package/dist/commands/workflow/issue-coordinator.js +0 -161
  241. package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
  242. package/dist/commands/workflow/phase-orchestrator.js +0 -699
  243. package/dist/commands/workflow/processor.d.ts +0 -47
  244. package/dist/commands/workflow/processor.js +0 -149
  245. package/dist/config/issue-status.d.ts +0 -29
  246. package/dist/config/issue-status.js +0 -44
  247. package/dist/config.d.ts +0 -3
  248. package/dist/config.js +0 -79
  249. package/dist/constants.d.ts +0 -10
  250. package/dist/constants.js +0 -36
  251. package/dist/errors/index.d.ts +0 -68
  252. package/dist/errors/index.js +0 -129
  253. package/dist/index.d.ts +0 -4
  254. package/dist/phases/adr-generation/agent.d.ts +0 -6
  255. package/dist/phases/adr-generation/agent.js +0 -69
  256. package/dist/phases/adr-generation/index.d.ts +0 -15
  257. package/dist/phases/adr-generation/index.js +0 -66
  258. package/dist/phases/adr-generation/parse.d.ts +0 -12
  259. package/dist/phases/adr-generation/parse.js +0 -123
  260. package/dist/phases/adr-generation/prompts.d.ts +0 -8
  261. package/dist/phases/adr-generation/prompts.js +0 -35
  262. package/dist/phases/analyze-logs/agent.d.ts +0 -11
  263. package/dist/phases/analyze-logs/agent.js +0 -66
  264. package/dist/phases/analyze-logs/index.d.ts +0 -23
  265. package/dist/phases/analyze-logs/index.js +0 -152
  266. package/dist/phases/analyze-logs/prompts.d.ts +0 -3
  267. package/dist/phases/analyze-logs/prompts.js +0 -27
  268. package/dist/phases/api-docs/index.d.ts +0 -47
  269. package/dist/phases/api-docs/index.js +0 -254
  270. package/dist/phases/api-docs/mcp-server.d.ts +0 -25
  271. package/dist/phases/api-docs/mcp-server.js +0 -82
  272. package/dist/phases/api-docs/prompts.d.ts +0 -16
  273. package/dist/phases/api-docs/prompts.js +0 -65
  274. package/dist/phases/api-docs/types.d.ts +0 -22
  275. package/dist/phases/api-docs/types.js +0 -10
  276. package/dist/phases/app-store-generation/agent.d.ts +0 -2
  277. package/dist/phases/app-store-generation/agent.js +0 -177
  278. package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
  279. package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
  280. package/dist/phases/app-store-generation/context.d.ts +0 -21
  281. package/dist/phases/app-store-generation/context.js +0 -78
  282. package/dist/phases/app-store-generation/index.d.ts +0 -20
  283. package/dist/phases/app-store-generation/index.js +0 -157
  284. package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
  285. package/dist/phases/app-store-generation/inter-font.js +0 -49
  286. package/dist/phases/app-store-generation/prompts.d.ts +0 -43
  287. package/dist/phases/app-store-generation/prompts.js +0 -73
  288. package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
  289. package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
  290. package/dist/phases/app-store-generation/uploader.d.ts +0 -19
  291. package/dist/phases/app-store-generation/uploader.js +0 -150
  292. package/dist/phases/architecture-diagram/index.d.ts +0 -15
  293. package/dist/phases/architecture-diagram/index.js +0 -51
  294. package/dist/phases/autonomous/index.d.ts +0 -32
  295. package/dist/phases/autonomous/index.js +0 -412
  296. package/dist/phases/autonomous/prompts.d.ts +0 -5
  297. package/dist/phases/autonomous/prompts.js +0 -31
  298. package/dist/phases/branch-planning/context.d.ts +0 -14
  299. package/dist/phases/branch-planning/context.js +0 -43
  300. package/dist/phases/branch-planning/index.d.ts +0 -25
  301. package/dist/phases/branch-planning/index.js +0 -404
  302. package/dist/phases/branch-planning/outcome.d.ts +0 -28
  303. package/dist/phases/branch-planning/outcome.js +0 -115
  304. package/dist/phases/branch-planning/prompts.d.ts +0 -41
  305. package/dist/phases/branch-planning/prompts.js +0 -157
  306. package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
  307. package/dist/phases/bug-fixing/analyzer.js +0 -247
  308. package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
  309. package/dist/phases/bug-fixing/context-fetcher.js +0 -137
  310. package/dist/phases/bug-fixing/index.d.ts +0 -7
  311. package/dist/phases/bug-fixing/index.js +0 -7
  312. package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
  313. package/dist/phases/bug-fixing/mcp-server.js +0 -19
  314. package/dist/phases/bug-fixing/prompts.d.ts +0 -2
  315. package/dist/phases/bug-fixing/prompts.js +0 -9
  316. package/dist/phases/chat-processor/context.d.ts +0 -38
  317. package/dist/phases/chat-processor/context.js +0 -91
  318. package/dist/phases/chat-processor/index.d.ts +0 -49
  319. package/dist/phases/chat-processor/index.js +0 -482
  320. package/dist/phases/chat-processor/product-context.d.ts +0 -36
  321. package/dist/phases/chat-processor/product-context.js +0 -113
  322. package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
  323. package/dist/phases/chat-processor/product-prompts.js +0 -65
  324. package/dist/phases/chat-processor/product-tools.d.ts +0 -8
  325. package/dist/phases/chat-processor/product-tools.js +0 -11
  326. package/dist/phases/chat-processor/prompts.d.ts +0 -35
  327. package/dist/phases/chat-processor/prompts.js +0 -213
  328. package/dist/phases/chat-processor/tools.d.ts +0 -8
  329. package/dist/phases/chat-processor/tools.js +0 -11
  330. package/dist/phases/class-diagram/index.d.ts +0 -14
  331. package/dist/phases/class-diagram/index.js +0 -76
  332. package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
  333. package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
  334. package/dist/phases/code-implementation/context.d.ts +0 -17
  335. package/dist/phases/code-implementation/context.js +0 -88
  336. package/dist/phases/code-implementation/index.d.ts +0 -33
  337. package/dist/phases/code-implementation/index.js +0 -926
  338. package/dist/phases/code-implementation/outcome.d.ts +0 -47
  339. package/dist/phases/code-implementation/outcome.js +0 -53
  340. package/dist/phases/code-implementation/prompts.d.ts +0 -8
  341. package/dist/phases/code-implementation/prompts.js +0 -166
  342. package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
  343. package/dist/phases/code-implementation-verification/agent.js +0 -225
  344. package/dist/phases/code-implementation-verification/index.d.ts +0 -27
  345. package/dist/phases/code-implementation-verification/index.js +0 -121
  346. package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
  347. package/dist/phases/code-implementation-verification/prompts.js +0 -90
  348. package/dist/phases/code-refine/context.d.ts +0 -99
  349. package/dist/phases/code-refine/context.js +0 -457
  350. package/dist/phases/code-refine/index.d.ts +0 -59
  351. package/dist/phases/code-refine/index.js +0 -348
  352. package/dist/phases/code-refine/prompts.d.ts +0 -5
  353. package/dist/phases/code-refine/prompts.js +0 -162
  354. package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
  355. package/dist/phases/code-refine/refine-iteration.js +0 -166
  356. package/dist/phases/code-refine/retry-handler.d.ts +0 -17
  357. package/dist/phases/code-refine/retry-handler.js +0 -87
  358. package/dist/phases/code-refine-verification/github.d.ts +0 -54
  359. package/dist/phases/code-refine-verification/github.js +0 -328
  360. package/dist/phases/code-refine-verification/index.d.ts +0 -11
  361. package/dist/phases/code-refine-verification/index.js +0 -260
  362. package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
  363. package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
  364. package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
  365. package/dist/phases/code-refine-verification/prompts.js +0 -119
  366. package/dist/phases/code-refine-verification/types.d.ts +0 -74
  367. package/dist/phases/code-refine-verification/types.js +0 -4
  368. package/dist/phases/code-review/context.d.ts +0 -96
  369. package/dist/phases/code-review/context.js +0 -278
  370. package/dist/phases/code-review/diff-utils.d.ts +0 -36
  371. package/dist/phases/code-review/diff-utils.js +0 -100
  372. package/dist/phases/code-review/index.d.ts +0 -40
  373. package/dist/phases/code-review/index.js +0 -627
  374. package/dist/phases/code-testing/analyzer.d.ts +0 -19
  375. package/dist/phases/code-testing/analyzer.js +0 -215
  376. package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
  377. package/dist/phases/code-testing/context-fetcher.js +0 -83
  378. package/dist/phases/code-testing/index.d.ts +0 -2
  379. package/dist/phases/code-testing/index.js +0 -2
  380. package/dist/phases/code-testing/prompts.d.ts +0 -3
  381. package/dist/phases/code-testing/prompts.js +0 -63
  382. package/dist/phases/data-flow/index.d.ts +0 -28
  383. package/dist/phases/data-flow/index.js +0 -286
  384. package/dist/phases/data-flow/mcp-server.d.ts +0 -85
  385. package/dist/phases/data-flow/mcp-server.js +0 -140
  386. package/dist/phases/data-flow/prompts.d.ts +0 -14
  387. package/dist/phases/data-flow/prompts.js +0 -36
  388. package/dist/phases/data-flow/types.d.ts +0 -71
  389. package/dist/phases/data-flow/types.js +0 -86
  390. package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
  391. package/dist/phases/diagram-shared/clone-repos.js +0 -153
  392. package/dist/phases/diagram-shared/generate.d.ts +0 -42
  393. package/dist/phases/diagram-shared/generate.js +0 -162
  394. package/dist/phases/diagram-shared/graph.d.ts +0 -62
  395. package/dist/phases/diagram-shared/graph.js +0 -169
  396. package/dist/phases/diagram-shared/mcp.d.ts +0 -35
  397. package/dist/phases/diagram-shared/mcp.js +0 -68
  398. package/dist/phases/diagram-shared/prompts.d.ts +0 -23
  399. package/dist/phases/diagram-shared/prompts.js +0 -35
  400. package/dist/phases/discover-services/index.d.ts +0 -29
  401. package/dist/phases/discover-services/index.js +0 -528
  402. package/dist/phases/er-diagram/index.d.ts +0 -28
  403. package/dist/phases/er-diagram/index.js +0 -290
  404. package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
  405. package/dist/phases/er-diagram/mcp-server.js +0 -144
  406. package/dist/phases/er-diagram/prompts.d.ts +0 -14
  407. package/dist/phases/er-diagram/prompts.js +0 -36
  408. package/dist/phases/er-diagram/types.d.ts +0 -76
  409. package/dist/phases/er-diagram/types.js +0 -84
  410. package/dist/phases/features/index.d.ts +0 -65
  411. package/dist/phases/features/index.js +0 -292
  412. package/dist/phases/features/mcp-server.d.ts +0 -61
  413. package/dist/phases/features/mcp-server.js +0 -165
  414. package/dist/phases/features/prompts.d.ts +0 -32
  415. package/dist/phases/features/prompts.js +0 -92
  416. package/dist/phases/features/types.d.ts +0 -34
  417. package/dist/phases/features/types.js +0 -15
  418. package/dist/phases/financing-deck/agent.d.ts +0 -1
  419. package/dist/phases/financing-deck/agent.js +0 -96
  420. package/dist/phases/financing-deck/context.d.ts +0 -13
  421. package/dist/phases/financing-deck/context.js +0 -69
  422. package/dist/phases/financing-deck/index.d.ts +0 -15
  423. package/dist/phases/financing-deck/index.js +0 -89
  424. package/dist/phases/financing-deck/prompts.d.ts +0 -2
  425. package/dist/phases/financing-deck/prompts.js +0 -94
  426. package/dist/phases/find-architecture/index.d.ts +0 -47
  427. package/dist/phases/find-architecture/index.js +0 -268
  428. package/dist/phases/find-architecture/prompts.d.ts +0 -32
  429. package/dist/phases/find-architecture/prompts.js +0 -129
  430. package/dist/phases/find-architecture/state.d.ts +0 -21
  431. package/dist/phases/find-architecture/state.js +0 -17
  432. package/dist/phases/find-architecture/types.d.ts +0 -55
  433. package/dist/phases/find-architecture/types.js +0 -69
  434. package/dist/phases/find-bugs/index.d.ts +0 -33
  435. package/dist/phases/find-bugs/index.js +0 -238
  436. package/dist/phases/find-bugs/prompts.d.ts +0 -22
  437. package/dist/phases/find-bugs/prompts.js +0 -101
  438. package/dist/phases/find-bugs/state.d.ts +0 -19
  439. package/dist/phases/find-bugs/state.js +0 -13
  440. package/dist/phases/find-bugs/types.d.ts +0 -21
  441. package/dist/phases/find-bugs/types.js +0 -16
  442. package/dist/phases/find-features/index.d.ts +0 -40
  443. package/dist/phases/find-features/index.js +0 -328
  444. package/dist/phases/find-features/prompts.d.ts +0 -43
  445. package/dist/phases/find-features/prompts.js +0 -138
  446. package/dist/phases/find-features/state.d.ts +0 -25
  447. package/dist/phases/find-features/state.js +0 -22
  448. package/dist/phases/find-features/types.d.ts +0 -27
  449. package/dist/phases/find-features/types.js +0 -16
  450. package/dist/phases/find-shared/baseline.d.ts +0 -45
  451. package/dist/phases/find-shared/baseline.js +0 -56
  452. package/dist/phases/find-shared/custom-rules.d.ts +0 -39
  453. package/dist/phases/find-shared/custom-rules.js +0 -75
  454. package/dist/phases/find-shared/detect-context.d.ts +0 -40
  455. package/dist/phases/find-shared/detect-context.js +0 -247
  456. package/dist/phases/find-shared/git.d.ts +0 -24
  457. package/dist/phases/find-shared/git.js +0 -60
  458. package/dist/phases/find-shared/mcp.d.ts +0 -54
  459. package/dist/phases/find-shared/mcp.js +0 -127
  460. package/dist/phases/find-shared/rule-config.d.ts +0 -37
  461. package/dist/phases/find-shared/rule-config.js +0 -67
  462. package/dist/phases/find-shared/rule-packs.d.ts +0 -65
  463. package/dist/phases/find-shared/rule-packs.js +0 -124
  464. package/dist/phases/find-shared/scan-state.d.ts +0 -33
  465. package/dist/phases/find-shared/scan-state.js +0 -112
  466. package/dist/phases/find-shared/scoped-read.d.ts +0 -12
  467. package/dist/phases/find-shared/scoped-read.js +0 -33
  468. package/dist/phases/find-smells/index.d.ts +0 -50
  469. package/dist/phases/find-smells/index.js +0 -305
  470. package/dist/phases/find-smells/prompts.d.ts +0 -31
  471. package/dist/phases/find-smells/prompts.js +0 -130
  472. package/dist/phases/find-smells/state.d.ts +0 -21
  473. package/dist/phases/find-smells/state.js +0 -17
  474. package/dist/phases/find-smells/types.d.ts +0 -51
  475. package/dist/phases/find-smells/types.js +0 -64
  476. package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
  477. package/dist/phases/flow-shared/clone-repos.js +0 -153
  478. package/dist/phases/flowchart/index.d.ts +0 -15
  479. package/dist/phases/flowchart/index.js +0 -50
  480. package/dist/phases/functional-testing/analyzer.d.ts +0 -46
  481. package/dist/phases/functional-testing/analyzer.js +0 -622
  482. package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
  483. package/dist/phases/functional-testing/context-fetcher.js +0 -83
  484. package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
  485. package/dist/phases/functional-testing/http-fallback.js +0 -156
  486. package/dist/phases/functional-testing/index.d.ts +0 -4
  487. package/dist/phases/functional-testing/index.js +0 -4
  488. package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
  489. package/dist/phases/functional-testing/mcp-server.js +0 -13
  490. package/dist/phases/functional-testing/prompts.d.ts +0 -2
  491. package/dist/phases/functional-testing/prompts.js +0 -58
  492. package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
  493. package/dist/phases/functional-testing/test-report-creator.js +0 -306
  494. package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
  495. package/dist/phases/functional-testing/test-retry-handler.js +0 -70
  496. package/dist/phases/growth-analysis/agent.d.ts +0 -2
  497. package/dist/phases/growth-analysis/agent.js +0 -107
  498. package/dist/phases/growth-analysis/context.d.ts +0 -23
  499. package/dist/phases/growth-analysis/context.js +0 -137
  500. package/dist/phases/growth-analysis/index.d.ts +0 -32
  501. package/dist/phases/growth-analysis/index.js +0 -226
  502. package/dist/phases/growth-analysis/prompts.d.ts +0 -2
  503. package/dist/phases/growth-analysis/prompts.js +0 -45
  504. package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
  505. package/dist/phases/intelligence-analysis/agent.js +0 -338
  506. package/dist/phases/intelligence-analysis/context.d.ts +0 -23
  507. package/dist/phases/intelligence-analysis/context.js +0 -142
  508. package/dist/phases/intelligence-analysis/index.d.ts +0 -58
  509. package/dist/phases/intelligence-analysis/index.js +0 -244
  510. package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
  511. package/dist/phases/intelligence-analysis/prompts.js +0 -62
  512. package/dist/phases/issue-analysis/agent.d.ts +0 -21
  513. package/dist/phases/issue-analysis/agent.js +0 -153
  514. package/dist/phases/issue-analysis/context.d.ts +0 -20
  515. package/dist/phases/issue-analysis/context.js +0 -93
  516. package/dist/phases/issue-analysis/index.d.ts +0 -8
  517. package/dist/phases/issue-analysis/index.js +0 -147
  518. package/dist/phases/issue-analysis/outcome.d.ts +0 -10
  519. package/dist/phases/issue-analysis/outcome.js +0 -42
  520. package/dist/phases/issue-analysis/prompts.d.ts +0 -8
  521. package/dist/phases/issue-analysis/prompts.js +0 -99
  522. package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
  523. package/dist/phases/issue-analysis-verification/agent.js +0 -124
  524. package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
  525. package/dist/phases/issue-analysis-verification/index.js +0 -79
  526. package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
  527. package/dist/phases/issue-analysis-verification/prompts.js +0 -75
  528. package/dist/phases/output-contracts.d.ts +0 -7
  529. package/dist/phases/output-contracts.js +0 -1201
  530. package/dist/phases/pr-execution/context.d.ts +0 -32
  531. package/dist/phases/pr-execution/context.js +0 -246
  532. package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
  533. package/dist/phases/pr-execution/file-assigner.js +0 -287
  534. package/dist/phases/pr-execution/index.d.ts +0 -22
  535. package/dist/phases/pr-execution/index.js +0 -401
  536. package/dist/phases/pr-execution/outcome.d.ts +0 -24
  537. package/dist/phases/pr-execution/outcome.js +0 -34
  538. package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
  539. package/dist/phases/pr-execution/pr-executor.js +0 -78
  540. package/dist/phases/pr-execution/prompts.d.ts +0 -27
  541. package/dist/phases/pr-execution/prompts.js +0 -131
  542. package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
  543. package/dist/phases/pr-resolve/checklist-learner.js +0 -153
  544. package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
  545. package/dist/phases/pr-resolve/github-reply.js +0 -75
  546. package/dist/phases/pr-resolve/index.d.ts +0 -33
  547. package/dist/phases/pr-resolve/index.js +0 -272
  548. package/dist/phases/pr-resolve/prompts.d.ts +0 -17
  549. package/dist/phases/pr-resolve/prompts.js +0 -107
  550. package/dist/phases/pr-resolve/types.d.ts +0 -18
  551. package/dist/phases/pr-resolve/types.js +0 -14
  552. package/dist/phases/pr-resolve/workspace.d.ts +0 -45
  553. package/dist/phases/pr-resolve/workspace.js +0 -174
  554. package/dist/phases/pr-review/index.d.ts +0 -27
  555. package/dist/phases/pr-review/index.js +0 -209
  556. package/dist/phases/pr-review/prompts.d.ts +0 -5
  557. package/dist/phases/pr-review/prompts.js +0 -87
  558. package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
  559. package/dist/phases/pr-shared/agent-utils.js +0 -112
  560. package/dist/phases/pr-shared/context.d.ts +0 -24
  561. package/dist/phases/pr-shared/context.js +0 -78
  562. package/dist/phases/pr-shared/status.d.ts +0 -18
  563. package/dist/phases/pr-shared/status.js +0 -37
  564. package/dist/phases/pr-splitting/context.d.ts +0 -28
  565. package/dist/phases/pr-splitting/context.js +0 -182
  566. package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
  567. package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
  568. package/dist/phases/pr-splitting/index.d.ts +0 -36
  569. package/dist/phases/pr-splitting/index.js +0 -413
  570. package/dist/phases/pr-splitting/outcome.d.ts +0 -24
  571. package/dist/phases/pr-splitting/outcome.js +0 -114
  572. package/dist/phases/pr-splitting/prompts.d.ts +0 -43
  573. package/dist/phases/pr-splitting/prompts.js +0 -154
  574. package/dist/phases/product-techniques/index.d.ts +0 -52
  575. package/dist/phases/product-techniques/index.js +0 -268
  576. package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
  577. package/dist/phases/product-techniques/mcp-server.js +0 -96
  578. package/dist/phases/product-techniques/prompts.d.ts +0 -19
  579. package/dist/phases/product-techniques/prompts.js +0 -66
  580. package/dist/phases/product-techniques/types.d.ts +0 -13
  581. package/dist/phases/product-techniques/types.js +0 -13
  582. package/dist/phases/product-test-cases/index.d.ts +0 -25
  583. package/dist/phases/product-test-cases/index.js +0 -174
  584. package/dist/phases/product-test-cases/prompts.d.ts +0 -24
  585. package/dist/phases/product-test-cases/prompts.js +0 -80
  586. package/dist/phases/product-test-cases/types.d.ts +0 -17
  587. package/dist/phases/product-test-cases/types.js +0 -27
  588. package/dist/phases/pull-request/creator.d.ts +0 -30
  589. package/dist/phases/pull-request/creator.js +0 -319
  590. package/dist/phases/pull-request/handler.d.ts +0 -15
  591. package/dist/phases/pull-request/handler.js +0 -92
  592. package/dist/phases/quality-benchmark/gate.d.ts +0 -50
  593. package/dist/phases/quality-benchmark/gate.js +0 -91
  594. package/dist/phases/quality-benchmark/index.d.ts +0 -65
  595. package/dist/phases/quality-benchmark/index.js +0 -208
  596. package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
  597. package/dist/phases/quality-benchmark/mcp-server.js +0 -252
  598. package/dist/phases/quality-benchmark/parsers.d.ts +0 -45
  599. package/dist/phases/quality-benchmark/parsers.js +0 -1311
  600. package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
  601. package/dist/phases/quality-benchmark/prompts.js +0 -154
  602. package/dist/phases/quality-benchmark/rubric.md +0 -1211
  603. package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
  604. package/dist/phases/quality-benchmark/tool-catalog.js +0 -693
  605. package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
  606. package/dist/phases/quality-benchmark/tool-runner.js +0 -399
  607. package/dist/phases/quality-benchmark/types.d.ts +0 -319
  608. package/dist/phases/quality-benchmark/types.js +0 -23
  609. package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
  610. package/dist/phases/quality-benchmark/workspace.js +0 -110
  611. package/dist/phases/recipes/index.d.ts +0 -63
  612. package/dist/phases/recipes/index.js +0 -358
  613. package/dist/phases/recipes/mcp-server.d.ts +0 -66
  614. package/dist/phases/recipes/mcp-server.js +0 -229
  615. package/dist/phases/recipes/prompts.d.ts +0 -35
  616. package/dist/phases/recipes/prompts.js +0 -105
  617. package/dist/phases/recipes/types.d.ts +0 -42
  618. package/dist/phases/recipes/types.js +0 -16
  619. package/dist/phases/release-sync/github.d.ts +0 -66
  620. package/dist/phases/release-sync/github.js +0 -140
  621. package/dist/phases/release-sync/index.d.ts +0 -24
  622. package/dist/phases/release-sync/index.js +0 -156
  623. package/dist/phases/release-sync/snapshot.d.ts +0 -27
  624. package/dist/phases/release-sync/snapshot.js +0 -158
  625. package/dist/phases/run-sheet/agent.d.ts +0 -49
  626. package/dist/phases/run-sheet/agent.js +0 -156
  627. package/dist/phases/run-sheet/index.d.ts +0 -57
  628. package/dist/phases/run-sheet/index.js +0 -392
  629. package/dist/phases/screen-flow/index.d.ts +0 -26
  630. package/dist/phases/screen-flow/index.js +0 -349
  631. package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
  632. package/dist/phases/screen-flow/mcp-server.js +0 -272
  633. package/dist/phases/screen-flow/prompts.d.ts +0 -19
  634. package/dist/phases/screen-flow/prompts.js +0 -43
  635. package/dist/phases/screen-flow/theme.d.ts +0 -19
  636. package/dist/phases/screen-flow/theme.js +0 -193
  637. package/dist/phases/screen-flow/types.d.ts +0 -137
  638. package/dist/phases/screen-flow/types.js +0 -81
  639. package/dist/phases/sequence-diagram/index.d.ts +0 -30
  640. package/dist/phases/sequence-diagram/index.js +0 -290
  641. package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
  642. package/dist/phases/sequence-diagram/mcp-server.js +0 -134
  643. package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
  644. package/dist/phases/sequence-diagram/prompts.js +0 -36
  645. package/dist/phases/sequence-diagram/types.d.ts +0 -52
  646. package/dist/phases/sequence-diagram/types.js +0 -93
  647. package/dist/phases/smoke-test/agent.d.ts +0 -12
  648. package/dist/phases/smoke-test/agent.js +0 -93
  649. package/dist/phases/smoke-test/index.d.ts +0 -22
  650. package/dist/phases/smoke-test/index.js +0 -241
  651. package/dist/phases/smoke-test/prompts.d.ts +0 -15
  652. package/dist/phases/smoke-test/prompts.js +0 -35
  653. package/dist/phases/state-diagram/index.d.ts +0 -15
  654. package/dist/phases/state-diagram/index.js +0 -53
  655. package/dist/phases/sync-github-issues/index.d.ts +0 -41
  656. package/dist/phases/sync-github-issues/index.js +0 -187
  657. package/dist/phases/sync-github-issues/state.d.ts +0 -26
  658. package/dist/phases/sync-github-issues/state.js +0 -18
  659. package/dist/phases/sync-github-issues/types.d.ts +0 -35
  660. package/dist/phases/sync-github-issues/types.js +0 -6
  661. package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
  662. package/dist/phases/sync-github-pull-requests/index.js +0 -210
  663. package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
  664. package/dist/phases/sync-github-pull-requests/state.js +0 -16
  665. package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
  666. package/dist/phases/sync-github-pull-requests/types.js +0 -1
  667. package/dist/phases/sync-org-repos/index.d.ts +0 -28
  668. package/dist/phases/sync-org-repos/index.js +0 -133
  669. package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
  670. package/dist/phases/sync-sentry-issues/index.js +0 -153
  671. package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
  672. package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
  673. package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
  674. package/dist/phases/sync-sentry-issues/state.js +0 -18
  675. package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
  676. package/dist/phases/sync-sentry-issues/types.js +0 -6
  677. package/dist/phases/sync-shared/mcp.d.ts +0 -81
  678. package/dist/phases/sync-shared/mcp.js +0 -111
  679. package/dist/phases/task/agent.d.ts +0 -10
  680. package/dist/phases/task/agent.js +0 -83
  681. package/dist/phases/task/context.d.ts +0 -16
  682. package/dist/phases/task/context.js +0 -50
  683. package/dist/phases/task/index.d.ts +0 -17
  684. package/dist/phases/task/index.js +0 -54
  685. package/dist/phases/task/prompts.d.ts +0 -9
  686. package/dist/phases/task/prompts.js +0 -21
  687. package/dist/phases/technical-design/context.d.ts +0 -12
  688. package/dist/phases/technical-design/context.js +0 -39
  689. package/dist/phases/technical-design/index.d.ts +0 -21
  690. package/dist/phases/technical-design/index.js +0 -456
  691. package/dist/phases/technical-design/outcome.d.ts +0 -25
  692. package/dist/phases/technical-design/outcome.js +0 -41
  693. package/dist/phases/technical-design/prompts.d.ts +0 -8
  694. package/dist/phases/technical-design/prompts.js +0 -210
  695. package/dist/phases/technical-design-verification/agent.d.ts +0 -53
  696. package/dist/phases/technical-design-verification/agent.js +0 -186
  697. package/dist/phases/technical-design-verification/index.d.ts +0 -38
  698. package/dist/phases/technical-design-verification/index.js +0 -152
  699. package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
  700. package/dist/phases/technical-design-verification/prompts.js +0 -143
  701. package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
  702. package/dist/phases/test-cases-analysis/agent.js +0 -105
  703. package/dist/phases/test-cases-analysis/context.d.ts +0 -15
  704. package/dist/phases/test-cases-analysis/context.js +0 -86
  705. package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
  706. package/dist/phases/test-cases-analysis/formatters.js +0 -35
  707. package/dist/phases/test-cases-analysis/index.d.ts +0 -9
  708. package/dist/phases/test-cases-analysis/index.js +0 -175
  709. package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
  710. package/dist/phases/test-cases-analysis/outcome.js +0 -146
  711. package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
  712. package/dist/phases/test-cases-analysis/prompts.js +0 -171
  713. package/dist/phases/user-psychology/agent.d.ts +0 -16
  714. package/dist/phases/user-psychology/agent.js +0 -105
  715. package/dist/phases/user-psychology/context.d.ts +0 -10
  716. package/dist/phases/user-psychology/context.js +0 -65
  717. package/dist/phases/user-psychology/index.d.ts +0 -18
  718. package/dist/phases/user-psychology/index.js +0 -96
  719. package/dist/phases/user-psychology/prompts.d.ts +0 -2
  720. package/dist/phases/user-psychology/prompts.js +0 -41
  721. package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
  722. package/dist/phases/user-stories-analysis/agent.js +0 -105
  723. package/dist/phases/user-stories-analysis/context.d.ts +0 -15
  724. package/dist/phases/user-stories-analysis/context.js +0 -86
  725. package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
  726. package/dist/phases/user-stories-analysis/formatters.js +0 -32
  727. package/dist/phases/user-stories-analysis/index.d.ts +0 -9
  728. package/dist/phases/user-stories-analysis/index.js +0 -175
  729. package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
  730. package/dist/phases/user-stories-analysis/outcome.js +0 -146
  731. package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
  732. package/dist/phases/user-stories-analysis/prompts.js +0 -194
  733. package/dist/services/audit-logs.d.ts +0 -73
  734. package/dist/services/audit-logs.js +0 -174
  735. package/dist/services/branches.d.ts +0 -103
  736. package/dist/services/branches.js +0 -391
  737. package/dist/services/checklist.d.ts +0 -100
  738. package/dist/services/checklist.js +0 -259
  739. package/dist/services/coaching/coaching-agent.d.ts +0 -39
  740. package/dist/services/coaching/coaching-agent.js +0 -308
  741. package/dist/services/coaching/coaching-loop.d.ts +0 -62
  742. package/dist/services/coaching/coaching-loop.js +0 -265
  743. package/dist/services/coaching/index.d.ts +0 -8
  744. package/dist/services/coaching/index.js +0 -8
  745. package/dist/services/coaching/phase-coaching.d.ts +0 -47
  746. package/dist/services/coaching/phase-coaching.js +0 -60
  747. package/dist/services/coaching/self-rating.d.ts +0 -26
  748. package/dist/services/coaching/self-rating.js +0 -153
  749. package/dist/services/feedbacks.d.ts +0 -57
  750. package/dist/services/feedbacks.js +0 -264
  751. package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
  752. package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
  753. package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
  754. package/dist/services/phase-hooks/hook-executor.js +0 -167
  755. package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
  756. package/dist/services/phase-hooks/hook-logging.js +0 -41
  757. package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
  758. package/dist/services/phase-hooks/hook-runner.js +0 -83
  759. package/dist/services/phase-hooks/index.d.ts +0 -10
  760. package/dist/services/phase-hooks/index.js +0 -9
  761. package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
  762. package/dist/services/phase-hooks/plugin-loader.js +0 -207
  763. package/dist/services/phase-hooks/types.d.ts +0 -69
  764. package/dist/services/phase-hooks/types.js +0 -8
  765. package/dist/services/phase-ratings.d.ts +0 -70
  766. package/dist/services/phase-ratings.js +0 -143
  767. package/dist/services/product-logs.d.ts +0 -31
  768. package/dist/services/product-logs.js +0 -94
  769. package/dist/services/pull-requests.d.ts +0 -57
  770. package/dist/services/pull-requests.js +0 -186
  771. package/dist/services/quality-reports.d.ts +0 -45
  772. package/dist/services/quality-reports.js +0 -93
  773. package/dist/services/repo-config.d.ts +0 -17
  774. package/dist/services/repo-config.js +0 -50
  775. package/dist/services/skill-resolver.d.ts +0 -46
  776. package/dist/services/skill-resolver.js +0 -123
  777. package/dist/services/video/device-frames.d.ts +0 -34
  778. package/dist/services/video/device-frames.js +0 -513
  779. package/dist/services/video/index.d.ts +0 -66
  780. package/dist/services/video/index.js +0 -238
  781. package/dist/services/video/retry.d.ts +0 -20
  782. package/dist/services/video/retry.js +0 -76
  783. package/dist/services/video/screenshot-generator.d.ts +0 -69
  784. package/dist/services/video/screenshot-generator.js +0 -259
  785. package/dist/services/video/tts-generator.d.ts +0 -40
  786. package/dist/services/video/tts-generator.js +0 -121
  787. package/dist/services/video/video-assembler.d.ts +0 -45
  788. package/dist/services/video/video-assembler.js +0 -351
  789. package/dist/services/video/video-uploader.d.ts +0 -28
  790. package/dist/services/video/video-uploader.js +0 -108
  791. package/dist/skills/phase/adr-generation/SKILL.md +0 -51
  792. package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
  793. package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
  794. package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
  795. package/dist/skills/phase/autonomous/SKILL.md +0 -52
  796. package/dist/skills/phase/branch-planning/SKILL.md +0 -55
  797. package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
  798. package/dist/skills/phase/class-diagram/SKILL.md +0 -44
  799. package/dist/skills/phase/code-implementation/SKILL.md +0 -68
  800. package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
  801. package/dist/skills/phase/code-refine/SKILL.md +0 -62
  802. package/dist/skills/phase/code-testing/SKILL.md +0 -78
  803. package/dist/skills/phase/data-flow/SKILL.md +0 -82
  804. package/dist/skills/phase/er-diagram/SKILL.md +0 -71
  805. package/dist/skills/phase/flowchart/SKILL.md +0 -38
  806. package/dist/skills/phase/functional-testing/SKILL.md +0 -62
  807. package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
  808. package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
  809. package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
  810. package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
  811. package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
  812. package/dist/skills/phase/pr-execution/SKILL.md +0 -69
  813. package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
  814. package/dist/skills/phase/screen-flow/SKILL.md +0 -78
  815. package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
  816. package/dist/skills/phase/smoke-test/SKILL.md +0 -80
  817. package/dist/skills/phase/state-diagram/SKILL.md +0 -38
  818. package/dist/skills/phase/task/SKILL.md +0 -19
  819. package/dist/skills/phase/technical-design/SKILL.md +0 -75
  820. package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
  821. package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
  822. package/dist/skills/phase/user-psychology/SKILL.md +0 -135
  823. package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
  824. package/dist/supabase/client.d.ts +0 -34
  825. package/dist/supabase/client.js +0 -123
  826. package/dist/system/session-manager.d.ts +0 -67
  827. package/dist/system/session-manager.js +0 -300
  828. package/dist/system/sleep-notification.d.ts +0 -15
  829. package/dist/system/sleep-notification.js +0 -108
  830. package/dist/system/sleep-prevention.d.ts +0 -20
  831. package/dist/system/sleep-prevention.js +0 -112
  832. package/dist/tools/bootstrap.d.ts +0 -45
  833. package/dist/tools/bootstrap.js +0 -50
  834. package/dist/types/external-sources.d.ts +0 -22
  835. package/dist/types/external-sources.js +0 -23
  836. package/dist/types/index.d.ts +0 -206
  837. package/dist/types/index.js +0 -1
  838. package/dist/types/issues.d.ts +0 -37
  839. package/dist/types/issues.js +0 -1
  840. package/dist/types/llm-responses.d.ts +0 -114
  841. package/dist/types/llm-responses.js +0 -9
  842. package/dist/types/pipeline.d.ts +0 -28
  843. package/dist/types/pipeline.js +0 -4
  844. package/dist/updater/auto-updater.d.ts +0 -39
  845. package/dist/updater/auto-updater.js +0 -134
  846. package/dist/utils/conflict-resolver.d.ts +0 -49
  847. package/dist/utils/conflict-resolver.js +0 -201
  848. package/dist/utils/formatters.d.ts +0 -42
  849. package/dist/utils/formatters.js +0 -166
  850. package/dist/utils/git-branch-manager-async.d.ts +0 -127
  851. package/dist/utils/git-branch-manager-async.js +0 -425
  852. package/dist/utils/git-branch-manager.d.ts +0 -160
  853. package/dist/utils/git-branch-manager.js +0 -613
  854. package/dist/utils/git-push.d.ts +0 -43
  855. package/dist/utils/git-push.js +0 -136
  856. package/dist/utils/github-repo-info.d.ts +0 -26
  857. package/dist/utils/github-repo-info.js +0 -45
  858. package/dist/utils/image-downloader.d.ts +0 -32
  859. package/dist/utils/image-downloader.js +0 -152
  860. package/dist/utils/issue-phase-cli.d.ts +0 -26
  861. package/dist/utils/issue-phase-cli.js +0 -44
  862. package/dist/utils/json-extract.d.ts +0 -6
  863. package/dist/utils/json-extract.js +0 -44
  864. package/dist/utils/json-extractor.d.ts +0 -27
  865. package/dist/utils/json-extractor.js +0 -102
  866. package/dist/utils/logger.d.ts +0 -35
  867. package/dist/utils/logger.js +0 -167
  868. package/dist/utils/pipeline-logger.d.ts +0 -8
  869. package/dist/utils/pipeline-logger.js +0 -38
  870. package/dist/utils/validation.d.ts +0 -68
  871. package/dist/utils/validation.js +0 -229
  872. package/dist/utils/workflow-utils.d.ts +0 -22
  873. package/dist/utils/workflow-utils.js +0 -48
  874. package/dist/workspace/session-workspace.d.ts +0 -43
  875. package/dist/workspace/session-workspace.js +0 -90
  876. package/dist/workspace/workspace-manager.d.ts +0 -105
  877. package/dist/workspace/workspace-manager.js +0 -280
@@ -1,926 +0,0 @@
1
- /* eslint-disable max-lines -- orchestration module with inline prompt generation and agent execution */
2
- import { query } from '@anthropic-ai/claude-agent-sdk';
3
- import { getGitHubConfig } from '../../api/github.js';
4
- import { getIssue } from '../../api/issues/index.js';
5
- import { DEFAULT_MODEL } from '../../constants.js';
6
- import { logIssuePhaseEvent } from '../../services/audit-logs.js';
7
- import { createBranches, getBaseBranchInfo, getBranches, getCurrentBranch, updateBranch, } from '../../services/branches.js';
8
- import { formatChecklistsForContext, } from '../../services/checklist.js';
9
- import { extractChecklistItems, runPhaseCoaching, } from '../../services/coaching/index.js';
10
- import { formatFeedbacksForContext, getFeedbacksForPhase, } from '../../services/feedbacks.js';
11
- import { getDefaultBranchForIssue } from '../../services/repo-config.js';
12
- import { prepareCustomBranchGitEnvironmentAsync, syncFeatBranchWithMain, } from '../../utils/git-branch-manager.js';
13
- import { gitPush } from '../../utils/git-push.js';
14
- import { extractJsonFromResponse } from '../../utils/json-extractor.js';
15
- import { logDebug, logError, logInfo } from '../../utils/logger.js';
16
- import { performVerificationCycle } from '../code-implementation-verification/index.js';
17
- import { createBranchPullRequest, } from './branch-pr-creator.js';
18
- import { fetchCodeImplementationContext, formatContextForPrompt, } from './context.js';
19
- import { buildImplementationResult, buildNoResultsError, buildVerificationFailureResult, } from './outcome.js';
20
- /**
21
- * Truncate text to a maximum length, adding ellipsis if truncated
22
- */
23
- function truncateText(text, maxLength) {
24
- if (text.length <= maxLength) {
25
- return text;
26
- }
27
- return `${text.slice(0, maxLength - 3)}...`;
28
- }
29
- function userMessage(content) {
30
- return {
31
- type: 'user',
32
- message: { role: 'user', content },
33
- };
34
- }
35
- async function* prompt(implementationPrompt) {
36
- yield userMessage(implementationPrompt);
37
- await new Promise((res) => {
38
- setTimeout(res, 10000);
39
- });
40
- }
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
- function processAssistantContent(content, verbose) {
43
- let text = '';
44
- for (const item of content) {
45
- if (item.type === 'text') {
46
- text += `${item.text}\n`;
47
- logDebug(`🤖 ${item.text}`, verbose);
48
- }
49
- else if (item.type === 'tool_use') {
50
- logDebug(`🔧 ${item.name}: ${item.input.description || 'Running...'}`, verbose);
51
- }
52
- }
53
- return text;
54
- }
55
- /**
56
- * Log debug details about the response text for checklist analysis
57
- */
58
- function logResponseDebugInfo(responseText, hasMessageResult, hasAssistantResponse, verbose) {
59
- logDebug('Code Implementation Response Analysis', verbose);
60
- logDebug(`message.result exists: ${hasMessageResult}`, verbose);
61
- logDebug(`lastAssistantResponse exists: ${hasAssistantResponse}`, verbose);
62
- logDebug(`responseText length: ${responseText.length}`, verbose);
63
- logDebug(`responseText first 200 chars: ${JSON.stringify(responseText.substring(0, 200))}`, verbose);
64
- logDebug(`responseText last 200 chars: ${JSON.stringify(responseText.substring(responseText.length - 200))}`, verbose);
65
- logDebug(`Contains \`\`\`json: ${responseText.includes('```json')}`, verbose);
66
- logDebug(`Contains implementation_result: ${responseText.includes('"implementation_result"')}`, verbose);
67
- logDebug('Checklist Content in Response', verbose);
68
- logDebug(`Contains "checklist": ${responseText.toLowerCase().includes('checklist')}`, verbose);
69
- logDebug(`Contains "checklist_item_results": ${responseText.includes('checklist_item_results')}`, verbose);
70
- logDebug(`Contains checklist_item_id: ${responseText.includes('checklist_item_id')}`, verbose);
71
- logDebug(`Contains is_passed: ${responseText.includes('is_passed')}`, verbose);
72
- const checklistMatches = responseText.match(/checklist/gi) || [];
73
- const checklistItemMatches = responseText.match(/checklist_item/gi) || [];
74
- logDebug(`Total "checklist" mentions: ${checklistMatches.length}`, verbose);
75
- logDebug(`Total "checklist_item" mentions: ${checklistItemMatches.length}`, verbose);
76
- }
77
- /**
78
- * Log debug details about checklist items in the implementation result
79
- */
80
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- function logChecklistDebugInfo(implResult, verbose) {
82
- logDebug(`Keys in implementation_result: ${Object.keys(implResult)}`, verbose);
83
- logDebug(`Has checklist_item_results field: ${'checklist_item_results' in implResult}`, verbose);
84
- logDebug(`checklist_item_results value type: ${typeof implResult.checklist_item_results}`, verbose);
85
- logDebug(`checklist_item_results is array: ${Array.isArray(implResult.checklist_item_results)}`, verbose);
86
- if (implResult.checklist_item_results) {
87
- logDebug(`checklist_item_results length: ${implResult.checklist_item_results.length}`, verbose);
88
- if (implResult.checklist_item_results.length > 0) {
89
- logDebug(`First checklist item keys: ${Object.keys(implResult.checklist_item_results[0])}`, verbose);
90
- logDebug(`First checklist item sample: ${JSON.stringify(implResult.checklist_item_results[0], null, 2)}`, verbose);
91
- }
92
- }
93
- else {
94
- logDebug('checklist_item_results is null/undefined/empty', verbose);
95
- }
96
- }
97
- /**
98
- * Parse and extract the implementation result from a successful query response
99
- */
100
- function parseSuccessResponse(responseText, hasMessageResult, hasAssistantResponse, issueId, verbose
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- ) {
103
- logResponseDebugInfo(responseText, hasMessageResult, hasAssistantResponse, verbose);
104
- try {
105
- const jsonBlockMatch = responseText.match(/```json\s*\n([\s\S]*?)\n\s*```/);
106
- logDebug(`jsonBlockMatch found: ${!!jsonBlockMatch}`, verbose);
107
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
- let jsonResult = null;
109
- if (jsonBlockMatch) {
110
- logDebug(`Matched JSON length: ${jsonBlockMatch[1].length}`, verbose);
111
- logDebug(`Matched JSON first 100 chars: ${JSON.stringify(jsonBlockMatch[1].substring(0, 100))}`, verbose);
112
- jsonResult = JSON.parse(jsonBlockMatch[1]);
113
- }
114
- else {
115
- logDebug('Trying direct JSON parse', verbose);
116
- jsonResult = JSON.parse(responseText);
117
- }
118
- logDebug(`jsonResult exists: ${!!jsonResult}`, verbose);
119
- logDebug(`jsonResult has implementation_result: ${!!(jsonResult && jsonResult.implementation_result)}`, verbose);
120
- if (jsonResult && jsonResult.implementation_result) {
121
- logChecklistDebugInfo(jsonResult.implementation_result, verbose);
122
- logDebug('Successfully extracted implementation_result', verbose);
123
- return jsonResult.implementation_result;
124
- }
125
- logDebug('Invalid JSON structure - missing implementation_result', verbose);
126
- throw new Error('Invalid JSON structure');
127
- }
128
- catch (error) {
129
- const nonSyntaxErrorType = error instanceof Error ? error.constructor.name : 'Unknown';
130
- const errorType = error instanceof SyntaxError ? 'SyntaxError' : nonSyntaxErrorType;
131
- const errorMsg = error instanceof Error ? error.message : String(error);
132
- logDebug(`JSON Parsing Failed - ${errorType}: ${errorMsg}`, verbose);
133
- logError(`Failed to parse structured implementation result: ${error}`);
134
- logDebug('Using Fallback Parsing', verbose);
135
- const parsedResult = parseImplementationResponse(responseText, issueId, verbose);
136
- logDebug(`Fallback parsed result: branchName=${parsedResult.branchName}, filesModified=${parsedResult.filesModified?.length || 0}, hasSummary=${!!parsedResult.summary}, commitHash=${parsedResult.commitHash}`, verbose);
137
- return {
138
- branch_name: parsedResult.branchName,
139
- files_modified: parsedResult.filesModified,
140
- commit_hash: parsedResult.commitHash,
141
- summary: parsedResult.summary || 'Implementation completed',
142
- tests_passed: true,
143
- pre_commit_passed: true,
144
- checklist_item_results: parsedResult.checklist_item_results || [],
145
- };
146
- }
147
- }
148
- /**
149
- * Process the query result message and extract implementation result
150
- */
151
- function processQueryResult(
152
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
- message, lastAssistantResponse, issueId, verbose
154
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
- ) {
156
- if (message.subtype === 'success') {
157
- logInfo('\n💻 Code implementation completed, parsing results...');
158
- const responseText = message.result || lastAssistantResponse;
159
- return parseSuccessResponse(responseText, !!message.result, !!lastAssistantResponse, issueId, verbose);
160
- }
161
- logError(`\n⚠️ Code implementation incomplete: ${message.subtype}`);
162
- if (message.subtype === 'error_max_turns') {
163
- logError('💡 Try breaking down the issue into smaller tasks');
164
- }
165
- if (lastAssistantResponse) {
166
- logDebug(`Fallback for incomplete result, subtype: ${message.subtype}`, verbose);
167
- const fallbackJson = extractJsonFromResponse(lastAssistantResponse, '"implementation_result"');
168
- if (fallbackJson?.implementation_result) {
169
- return fallbackJson.implementation_result;
170
- }
171
- }
172
- return null;
173
- }
174
- export const implementIssueCode = async (options, config, checklistContext) => {
175
- const { issueId, verbose } = options;
176
- // Resolve the repo's default branch (handles forks where default is master, etc.).
177
- // Caller may override via options.baseBranch (e.g. branch-chained PR base).
178
- const baseBranch = options.baseBranch ?? (await getDefaultBranchForIssue(issueId, verbose));
179
- if (verbose) {
180
- logInfo(`Starting code implementation for issue ID: ${issueId}`);
181
- logInfo(`Base branch: ${baseBranch}`);
182
- }
183
- // Check for issue branches - use current branch if available
184
- // If no branches exist (no branch planning), create a default branch record
185
- let currentBranch = null;
186
- try {
187
- currentBranch = await getCurrentBranch({ issueId, verbose });
188
- if (currentBranch && verbose) {
189
- logInfo(`📋 Using issue branch: ${currentBranch.name}`);
190
- logInfo(` Branch name: ${currentBranch.branch_name || 'To be created'}`);
191
- logInfo(` Status: ${currentBranch.status}`);
192
- logInfo(` Description: ${currentBranch.description || 'No description'}`);
193
- }
194
- }
195
- catch (_error) {
196
- // Issue branches not available or error - continue with default behavior
197
- if (verbose) {
198
- logInfo('No issue branches found, using default branch naming');
199
- }
200
- }
201
- // If no branch exists (no branch planning phase), create a default branch record
202
- if (!currentBranch) {
203
- try {
204
- if (verbose) {
205
- logInfo(`📋 Creating default branch record for issue: ${issueId}`);
206
- }
207
- // Fetch issue info to get the issue name for branch naming
208
- let issueName = 'Issue Implementation';
209
- try {
210
- const issueInfo = await getIssue(issueId, verbose);
211
- if (issueInfo?.name) {
212
- // Truncate issue name for branch display (max 100 chars)
213
- issueName = truncateText(issueInfo.name, 100);
214
- }
215
- }
216
- catch (error) {
217
- if (verbose) {
218
- logInfo(`Could not fetch issue name, using default: ${error}`);
219
- }
220
- }
221
- const defaultBranchName = `dev/${issueId}`;
222
- const createdBranches = await createBranches({ issueId, verbose }, [
223
- {
224
- name: issueName,
225
- description: `Implementation branch for: ${issueName}`,
226
- branch_name: defaultBranchName,
227
- status: 'pending',
228
- },
229
- ]);
230
- if (createdBranches.length > 0) {
231
- currentBranch = createdBranches[0];
232
- if (verbose) {
233
- logInfo(`✅ Created default branch: ${currentBranch.branch_name}`);
234
- }
235
- }
236
- }
237
- catch (error) {
238
- if (verbose) {
239
- logError(`Failed to create default branch record: ${error}`);
240
- logInfo('Continuing without branch record...');
241
- }
242
- }
243
- }
244
- // Update issue branch status to in_progress if we have one
245
- if (currentBranch && currentBranch.status === 'pending') {
246
- try {
247
- await updateBranch(currentBranch.id, { status: 'in_progress' }, verbose);
248
- if (verbose) {
249
- logInfo(`✅ Updated issue branch status to in_progress`);
250
- }
251
- }
252
- catch (error) {
253
- if (verbose) {
254
- logError(`Failed to update issue branch status: ${error}`);
255
- }
256
- }
257
- }
258
- // Determine the actual base branch for branch chaining
259
- // If the current issue branch depends on another branch, use that as the base
260
- let actualBaseBranch = baseBranch;
261
- let rebaseTargetBranch;
262
- let originalBaseBranch;
263
- let baseBranchCompleted = false;
264
- if (currentBranch && currentBranch.base_branch_id) {
265
- try {
266
- const allBranches = await getBranches({
267
- issueId,
268
- verbose: false,
269
- });
270
- const baseBranchInfo = getBaseBranchInfo(currentBranch, allBranches, baseBranch);
271
- actualBaseBranch = baseBranchInfo.baseBranch;
272
- ({ rebaseTargetBranch, originalBaseBranch } = baseBranchInfo);
273
- baseBranchCompleted = baseBranchInfo.baseBranchCompleted || false;
274
- if (verbose) {
275
- logInfo(`🔗 Branch chaining detected:`);
276
- logInfo(` Current branch: ${currentBranch.name}`);
277
- logInfo(` Base branch (for new branches): ${actualBaseBranch}`);
278
- if (rebaseTargetBranch) {
279
- logInfo(` Rebase target: ${rebaseTargetBranch}`);
280
- }
281
- if (originalBaseBranch) {
282
- logInfo(` Original base branch: ${originalBaseBranch} (for --onto rebase)`);
283
- }
284
- if (baseBranchInfo.baseBranchMerged) {
285
- logInfo(` Parent branch merged: yes`);
286
- }
287
- else {
288
- logInfo(` Parent branch merged: no (using parent branch)`);
289
- }
290
- }
291
- }
292
- catch (error) {
293
- if (verbose) {
294
- logError(`Failed to compute base branch info: ${error}`);
295
- logInfo(` Falling back to default base branch: ${baseBranch}`);
296
- }
297
- }
298
- }
299
- // Prepare git environment: switch to issue branch and rebase with base
300
- // Branch names are stored as dev/... (development branch)
301
- // PR will be created from dev/... to feat/... after implementation
302
- const devBranchName = currentBranch?.branch_name || `dev/${issueId}`;
303
- if (verbose && currentBranch) {
304
- logInfo(`🔄 Using dev branch for development: ${devBranchName}`);
305
- }
306
- // Sync feat branch to main before rebase to ensure it's up to date
307
- // This prevents the PR (dev → feat) from showing extra commits
308
- let featSyncedToMain = false;
309
- let githubTokenForPush;
310
- if (devBranchName.startsWith('dev/')) {
311
- try {
312
- const githubConfig = await getGitHubConfig(issueId, verbose);
313
- if (githubConfig.configured &&
314
- githubConfig.token &&
315
- githubConfig.owner &&
316
- githubConfig.repo) {
317
- githubTokenForPush = githubConfig.token;
318
- const { devBranchToFeatBranch } = await import('./branch-pr-creator.js');
319
- const featBranchName = devBranchToFeatBranch(devBranchName);
320
- if (verbose) {
321
- logInfo(`📥 Syncing ${featBranchName} with main before rebase...`);
322
- }
323
- featSyncedToMain = await syncFeatBranchWithMain({
324
- featBranch: featBranchName,
325
- githubToken: githubConfig.token,
326
- owner: githubConfig.owner,
327
- repo: githubConfig.repo,
328
- baseBranch,
329
- verbose,
330
- });
331
- }
332
- }
333
- catch (error) {
334
- // Don't fail the phase if sync fails
335
- if (verbose) {
336
- logInfo(`⚠️ Could not sync feat branch: ${error instanceof Error ? error.message : String(error)}`);
337
- }
338
- }
339
- }
340
- // Use async version to support --onto rebase for branch chaining
341
- // This correctly handles cases where base branch was squash-merged
342
- const { cleanup: cleanupGit } = await prepareCustomBranchGitEnvironmentAsync({
343
- issueBranch: devBranchName,
344
- baseBranch: actualBaseBranch,
345
- rebaseTargetBranch, // For --onto rebase target (e.g., main) when base branch is merged
346
- originalBaseBranch, // For --onto rebase starting point when base branch was squash-merged
347
- verbose,
348
- resolveConflicts: true,
349
- conflictResolverConfig: {
350
- model: DEFAULT_MODEL,
351
- },
352
- forcePushAfterRebase: featSyncedToMain, // Trigger GitHub to recalculate PR diff
353
- baseBranchCompleted, // Tell conflict resolver to use --theirs for all conflicts
354
- githubToken: githubTokenForPush,
355
- });
356
- try {
357
- // Fetch all required context information via MCP endpoints
358
- if (verbose) {
359
- logInfo('Fetching code implementation context via MCP endpoints...');
360
- }
361
- const context = await fetchCodeImplementationContext(issueId, verbose);
362
- // Fetch feedbacks for code implementation phase
363
- // For multi-branch issues, filter by the current branch to get branch-specific feedbacks
364
- let feedbacksInfo;
365
- try {
366
- const feedbacksContext = await getFeedbacksForPhase({ issueId, verbose }, 'code_implementation', currentBranch?.id // Pass branch_id if we have a current branch
367
- );
368
- if (feedbacksContext.feedbacks.length > 0) {
369
- feedbacksInfo = await formatFeedbacksForContext(feedbacksContext);
370
- if (verbose) {
371
- logInfo(`Added ${feedbacksContext.feedbacks.length} human feedbacks to implementation context${currentBranch ? ` (including branch-specific for "${currentBranch.name}")` : ''}`);
372
- }
373
- }
374
- }
375
- catch (error) {
376
- // Don't fail if feedbacks fetch fails - just log and continue
377
- if (verbose) {
378
- logInfo(`Note: Could not fetch feedbacks (${error instanceof Error ? error.message : String(error)})`);
379
- }
380
- }
381
- // Use the dev branch name for development (already computed above)
382
- const branchName = devBranchName;
383
- const systemPrompt = createSystemPrompt(config, actualBaseBranch, // Use computed base branch for branch chaining
384
- issueId, branchName);
385
- const initialImplementationPrompt = createImplementationPromptWithContext({
386
- issueId,
387
- context,
388
- baseBranch: actualBaseBranch, // Use computed base branch for branch chaining
389
- checklistContext,
390
- verbose,
391
- feedbacksInfo,
392
- issueBranch: currentBranch,
393
- });
394
- const maxIterations = options.maxVerificationIterations || 10;
395
- let currentIteration = 0;
396
- let currentPrompt = initialImplementationPrompt;
397
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
398
- let structuredImplementationResult = null;
399
- let verificationResult = null;
400
- if (verbose) {
401
- logInfo('Starting Claude Code query with pre-fetched information...');
402
- }
403
- let executionSessionId = '';
404
- // Iterative improvement loop: implement → verify → improve → re-implement
405
- while (currentIteration < maxIterations) {
406
- currentIteration++;
407
- if (verbose && currentIteration > 1) {
408
- logInfo(`\n🔄 Iteration ${currentIteration}/${maxIterations}: Improving implementation based on code review feedback...`);
409
- }
410
- // Log iteration start (for iterations after the first)
411
- if (currentIteration > 1) {
412
- await logIssuePhaseEvent({
413
- issueId,
414
- eventType: 'phase_started',
415
- phase: 'code_implementation',
416
- result: 'info',
417
- metadata: {
418
- iteration: currentIteration,
419
- max_iterations: maxIterations,
420
- re_implementation: true,
421
- timestamp: new Date().toISOString(),
422
- },
423
- }, verbose);
424
- }
425
- let lastAssistantResponse = '';
426
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
427
- let newImplementationResult = null;
428
- // Log checklist context before query
429
- logDebug('Checklist Context Before Claude Query', verbose);
430
- logDebug(`Has checklistContext: ${!!checklistContext}`, verbose);
431
- if (checklistContext) {
432
- logDebug(`Number of checklists: ${checklistContext.checklists.length}`, verbose);
433
- const totalItems = checklistContext.checklists.reduce((sum, checklist) => sum + (checklist.items?.length || 0), 0);
434
- logDebug(`Total checklist items: ${totalItems}`, verbose);
435
- }
436
- logDebug(`Implementation prompt includes checklist: ${currentPrompt.includes('checklist')}`, verbose);
437
- logDebug(`System prompt includes checklist: ${systemPrompt.includes('checklist')}`, verbose);
438
- // Execute implementation query
439
- for await (const message of query({
440
- prompt: prompt(currentPrompt),
441
- options: {
442
- systemPrompt: {
443
- type: 'preset',
444
- preset: 'claude_code',
445
- append: systemPrompt,
446
- },
447
- model: DEFAULT_MODEL,
448
- maxTurns: 3000,
449
- permissionMode: 'bypassPermissions',
450
- },
451
- })) {
452
- if (verbose) {
453
- logInfo(`Received message type: ${message.type}`);
454
- }
455
- // Stream the implementation process
456
- if (message.type === 'assistant') {
457
- lastAssistantResponse += processAssistantContent(message.message?.content ?? [], verbose);
458
- continue;
459
- }
460
- if (message.type !== 'result') {
461
- continue;
462
- }
463
- // Capture session ID for coaching loop
464
- executionSessionId = message.session_id || executionSessionId;
465
- newImplementationResult = processQueryResult(message, lastAssistantResponse, issueId, verbose);
466
- }
467
- // Check if implementation produced results
468
- if (!newImplementationResult) {
469
- if (verbose) {
470
- logError('⚠️ Implementation failed in this iteration');
471
- }
472
- break;
473
- }
474
- // Update with new implementation result
475
- structuredImplementationResult = newImplementationResult;
476
- // Log implementation completion for this iteration
477
- await logIssuePhaseEvent({
478
- issueId,
479
- eventType: 'phase_completed',
480
- phase: 'code_implementation',
481
- result: 'success',
482
- metadata: {
483
- iteration: currentIteration,
484
- max_iterations: maxIterations,
485
- implementation_step: 'completed',
486
- branch_name: structuredImplementationResult.branch_name,
487
- files_modified: structuredImplementationResult.files_modified || [],
488
- commit_hash: structuredImplementationResult.commit_hash || '',
489
- timestamp: new Date().toISOString(),
490
- },
491
- }, verbose);
492
- // Coaching loop: self-rate → coach → improve → repeat (between execute and verify)
493
- // Runs before push so any improvements are committed and pushed together
494
- const coaching = await runPhaseCoaching({
495
- issueId,
496
- phase: 'code_implementation',
497
- phaseResult: { execution_session_id: executionSessionId },
498
- checklistItems: extractChecklistItems(checklistContext),
499
- verbose,
500
- });
501
- executionSessionId = coaching.executionSessionId || executionSessionId;
502
- // Push code to remote after commit + coaching improvements
503
- if (verbose) {
504
- logInfo(`📤 Pushing code to remote repository...`);
505
- }
506
- const pushResult = gitPush({
507
- branchName: structuredImplementationResult.branch_name || branchName,
508
- token: githubTokenForPush,
509
- verbose,
510
- });
511
- if (!pushResult.success && verbose) {
512
- logError(`⚠️ Failed to push to remote: ${pushResult.error}`);
513
- logInfo(' Code is committed locally and will be reviewed. Manual push may be needed.');
514
- }
515
- else if (verbose) {
516
- logInfo('✅ Code pushed to remote successfully');
517
- }
518
- // Perform verification cycle
519
- const verificationCycle = await performVerificationCycle({
520
- branchName: structuredImplementationResult.branch_name || branchName,
521
- baseBranch: actualBaseBranch, // Use computed base branch for branch chaining
522
- checklistContext: checklistContext || null,
523
- issueId,
524
- issueName: context.issue.name,
525
- issueDescription: context.issue.description,
526
- config,
527
- currentIteration,
528
- maxIterations,
529
- verbose,
530
- });
531
- ({ verificationResult } = verificationCycle);
532
- // If verification passed, exit
533
- if (verificationCycle.passed) {
534
- if (verbose) {
535
- logInfo('✅ Verification passed! Code implementation complete.');
536
- }
537
- break;
538
- }
539
- // Verification failed
540
- if (currentIteration < maxIterations && verificationCycle.nextPrompt) {
541
- // We have more iterations - retry with improvement prompt
542
- if (verbose) {
543
- logInfo(`🔄 Will improve implementation in next iteration (${maxIterations - currentIteration} attempts remaining)`);
544
- }
545
- currentPrompt = verificationCycle.nextPrompt;
546
- }
547
- else {
548
- // Max iterations reached or no next prompt - exit loop
549
- if (verbose) {
550
- logInfo('⚠️ Max iterations reached. Last implementation committed.');
551
- }
552
- break;
553
- }
554
- }
555
- // Handle results
556
- if (!structuredImplementationResult) {
557
- return buildNoResultsError(issueId, branchName);
558
- }
559
- const { branch_name, files_modified, commit_hash, summary, checklist_results, checklist_item_results, } = structuredImplementationResult;
560
- // Check if verification failed after all iterations
561
- if (verificationResult &&
562
- verificationResult.rejected_count > 0 &&
563
- checklistContext &&
564
- checklistContext.checklists.length > 0) {
565
- logError(`❌ Final result: Code verification FAILED after ${currentIteration} iterations`);
566
- logError(` Code committed for manual review`);
567
- return buildVerificationFailureResult({
568
- issueId,
569
- branchName: branch_name || branchName,
570
- implementationSummary: summary || 'Implementation completed with verification failures',
571
- filesModified: files_modified || [],
572
- commitHash: commit_hash || '',
573
- verificationResult,
574
- iterations: currentIteration,
575
- });
576
- }
577
- // Create pull request from dev/ branch to feat/ branch if this is a multi-branch issue
578
- let pullRequestUrl = null;
579
- let pullRequestNumber = null;
580
- if (currentBranch && devBranchName.startsWith('dev/')) {
581
- // Get GitHub configuration from developer settings via MCP
582
- const githubConfig = await getGitHubConfig(issueId, verbose);
583
- if (githubConfig.configured &&
584
- githubConfig.token &&
585
- githubConfig.owner &&
586
- githubConfig.repo) {
587
- const prConfig = {
588
- githubToken: githubConfig.token,
589
- owner: githubConfig.owner,
590
- repo: githubConfig.repo,
591
- verbose,
592
- };
593
- // Derive feat/ branch name from dev/ branch name for PR target
594
- const { devBranchToFeatBranch } = await import('./branch-pr-creator.js');
595
- const featBranchName = devBranchToFeatBranch(devBranchName);
596
- if (verbose) {
597
- logInfo(`📝 Creating pull request from ${devBranchName} to ${featBranchName}...`);
598
- }
599
- const prResult = await createBranchPullRequest(prConfig, devBranchName, currentBranch.name, currentBranch.description || 'Issue branch implementation', baseBranch);
600
- if (prResult.success) {
601
- pullRequestUrl = prResult.pullRequestUrl || null;
602
- pullRequestNumber = prResult.pullRequestNumber || null;
603
- if (verbose) {
604
- logInfo(`✅ Pull request created: ${pullRequestUrl}`);
605
- }
606
- }
607
- else if (verbose) {
608
- logError(`⚠️ Failed to create pull request: ${prResult.error}`);
609
- logInfo(' Implementation is complete, but PR was not created.');
610
- }
611
- }
612
- else if (verbose) {
613
- logInfo('⚠️ GitHub configuration not available, skipping PR creation');
614
- logInfo(` ${githubConfig.message || 'Please configure GitHub App in product developer settings.'}`);
615
- }
616
- }
617
- // Update issue branch status to ready_for_review if we have one
618
- if (currentBranch) {
619
- try {
620
- // Note: branch_name is stored as dev/... and used directly by all phases.
621
- // The feat/ branch name is derived at runtime using devBranchToFeatBranch() for PR targets.
622
- await updateBranch(currentBranch.id, {
623
- status: 'ready_for_review',
624
- pull_request_url: pullRequestUrl,
625
- pull_request_number: pullRequestNumber,
626
- }, verbose);
627
- if (verbose) {
628
- logInfo(`✅ Updated issue branch status to ready_for_review`);
629
- }
630
- }
631
- catch (error) {
632
- if (verbose) {
633
- logError(`Failed to update issue branch status: ${error}`);
634
- }
635
- }
636
- }
637
- // Return success result with session ID for coaching
638
- const implResult = buildImplementationResult({
639
- issueId,
640
- branchName: branch_name || branchName,
641
- implementationSummary: summary || 'Implementation completed successfully',
642
- filesModified: files_modified || [],
643
- commitHash: commit_hash || '',
644
- iterations: currentIteration,
645
- checklistResults: checklist_results,
646
- checklistItemResults: checklist_item_results,
647
- });
648
- return {
649
- ...implResult,
650
- data: {
651
- ...implResult.data,
652
- execution_session_id: executionSessionId || undefined,
653
- },
654
- };
655
- }
656
- catch (error) {
657
- logError(`Code implementation failed: ${error instanceof Error ? error.message : String(error)}`);
658
- return {
659
- issueId,
660
- branchName: `dev/${issueId}`,
661
- implementationSummary: null,
662
- status: 'error',
663
- message: `Implementation failed: ${error instanceof Error ? error.message : String(error)}`,
664
- };
665
- }
666
- finally {
667
- // Always return to main branch after phase completion
668
- cleanupGit();
669
- }
670
- };
671
- const createSystemPrompt = (_config, baseBranch, issueId, branchName) => {
672
- const mcpInstructions = `
673
-
674
- **MANDATORY Checklist Compliance**:
675
- If you are provided with checklists in the context, you MUST satisfy ALL of them during your implementation work. Checklists are mandatory requirements that define quality standards and cannot be ignored or skipped.
676
-
677
- - Review each checklist carefully and ensure your implementation addresses every requirement
678
- - You MUST include ALL provided checklist item IDs in the "checklist_item_results" field of your JSON response
679
- - CRITICAL: Use the exact UUID from the "ID:" field in each checklist ITEM, NOT the item title or description
680
- - Set "is_passed": true for each checklist item you have completed successfully
681
- - Provide appropriate "value" based on the item type (boolean: true/false, text: descriptive text, number: numeric value)
682
- - If you cannot satisfy a checklist item requirement, set "is_passed": false and explain why in the "notes" field
683
- - The system will validate that all checklists have been addressed - missing checklists will cause the pipeline to fail
684
-
685
- CRITICAL: Checklists are not optional suggestions - they are mandatory quality gates that must be satisfied.`;
686
- return `You are an expert full-stack developer implementing issues based on specifications. Your task is to implement complete, production-ready code based on issue requirements, user stories, test cases, and technical design.
687
-
688
- **Your Role**: Implement complete, working issues based on provided specifications and requirements.
689
-
690
- **Available Tools**:
691
- - Bash: Git operations, running commands, tests, and builds
692
- - Glob: Find files and understand project structure
693
- - Read: Examine existing code, configuration, and documentation files
694
- - Edit: Modify existing files
695
- - Write: Create new files
696
- - TodoWrite: Track implementation tasks (use proactively)${mcpInstructions}
697
-
698
- **CRITICAL WORKFLOW - YOU MUST FOLLOW THESE STEPS IN ORDER**:
699
-
700
- 1. **GIT PULL REBASE**: First, ensure main branch is up to date with remote:
701
- - git checkout ${baseBranch}
702
- - git pull origin ${baseBranch} --rebase
703
- 2. **CREATE BRANCH**: Create issue branch \`${branchName}\` from ${baseBranch}
704
- 3. **ANALYZE CODEBASE**: Use Glob and Read to understand the existing code structure
705
- 4. **IMPLEMENT CODE**: Write the actual implementation using Edit/Write tools
706
- 5. **FIX ISSUES**: Address any lint or build failures
707
- 6. **COMMIT**: Commit your changes with a descriptive message
708
- 7. **HANDLE PRE-COMMIT**: This project has strict pre-commit hooks - handle them properly:
709
- - If lint-staged fails: Fix formatting and linting issues, then retry commit
710
- - If AI code review fails: Either fix code quality issues or use SKIP_REVIEW=1
711
- - If other issues persist: Only use --no-verify as last resort after confirming code quality
712
-
713
- **Important Rules**:
714
- 1. **Git Workflow**:
715
- - ALWAYS pull latest changes from main before creating branch: git pull origin ${baseBranch} --rebase
716
- - ALWAYS create branch \`${branchName}\` before making changes: git checkout -b ${branchName}
717
- - Use descriptive commit messages that explain what and why
718
- - Handle pre-commit checks properly: fix issues first, use workarounds only when necessary
719
-
720
- 2. **Code Quality**:
721
- - Follow existing code patterns and conventions in the repository
722
- - Ensure proper TypeScript types and interfaces
723
- - Add appropriate error handling and validation
724
- - Write clean, maintainable code with proper comments where necessary
725
-
726
- 3. **Pre-commit Handling**:
727
- - This project has strict pre-commit hooks including lint-staged, linting, and AI code review
728
- - When pre-commit hooks fail, READ the error messages carefully
729
- - Fix ALL issues reported (lint errors, type errors, formatting, code quality)
730
- - Re-run the commit after fixing issues
731
- - If you encounter persistent issues with AI code review or non-critical pre-commit failures:
732
- * First attempt to fix the actual issues
733
- * Only use --no-verify as a last resort if you are 100% confident your code is correct
734
- * When using --no-verify, add a comment explaining why it was necessary
735
- - IMPORTANT: AI code review can be skipped with SKIP_REVIEW=1 environment variable if needed
736
-
737
- 5. **File Modification**:
738
- - Prefer modifying existing files over creating new ones
739
- - Follow the existing file structure and naming conventions
740
- - Use the appropriate tools (Edit for existing files, Write for new files)
741
-
742
- **CRITICAL - Result Format**:
743
- You MUST end your response with a JSON object containing the implementation results in this EXACT format:
744
-
745
- \`\`\`json
746
- {
747
- "implementation_result": {
748
- "issue_id": "ISSUE_ID_PLACEHOLDER",
749
- "branch_name": "dev/ISSUE_ID",
750
- "files_modified": ["file1.ts", "file2.tsx"],
751
- "commit_hash": "abc123...",
752
- "summary": "Brief description of what was implemented",
753
- "tests_passed": true,
754
- "pre_commit_passed": true,
755
- "checklist_item_results": [
756
- {
757
- "checklist_item_id": "EXACT_CHECKLIST_ITEM_UUID_FROM_ID_FIELD",
758
- "is_passed": true,
759
- "value": "Result value based on item type (boolean, text, number, etc.)",
760
- "notes": "Optional notes about this specific checklist item"
761
- }
762
- ]
763
- }
764
- }
765
- \`\`\`
766
-
767
- MANDATORY: If checklists are provided in the context, you MUST include checklist_item_results for ALL checklist items. Every checklist item ID must be addressed - either passed or with explanation in notes why it cannot be satisfied. Missing any checklist item will cause the pipeline to fail.
768
-
769
- IMPORTANT: In the checklist context, look for lines that say "ID: [UUID]" in the items list - use these exact UUIDs as checklist_item_id values. Do NOT use the item title or description as the checklist_item_id.
770
-
771
- Remember: Quality over speed. It's better to implement correctly than to rush and create bugs.`;
772
- };
773
- const createImplementationPromptWithContext = (opts) => {
774
- const { issueId, context, baseBranch, checklistContext, verbose, feedbacksInfo, issueBranch, } = opts;
775
- const contextInfo = formatContextForPrompt(context);
776
- let finalContextInfo = contextInfo;
777
- // Add issue branch context if available
778
- if (issueBranch) {
779
- const branchContext = `
780
- ## Current Issue Branch
781
-
782
- This is a **multi-branch issue** - the issue has been split into multiple branches for incremental development.
783
-
784
- **Current Branch Information:**
785
- - **Name**: ${issueBranch.name}
786
- - **Branch**: ${issueBranch.branch_name || 'To be created'}
787
- - **Description**: ${issueBranch.description || 'No description'}
788
-
789
- **Important**: Focus ONLY on implementing the scope defined for this specific branch. Do not implement functionality that belongs to other branches.
790
- `;
791
- finalContextInfo = `${branchContext}\n${finalContextInfo}`;
792
- }
793
- // Add feedbacks context to the implementation prompt
794
- if (feedbacksInfo) {
795
- finalContextInfo = `${finalContextInfo}\n\n${feedbacksInfo}`;
796
- }
797
- // Add checklist context to the implementation prompt
798
- let checklistInstructions = '';
799
- if (checklistContext && checklistContext.checklists.length > 0) {
800
- const checklistInfo = formatChecklistsForContext(checklistContext);
801
- finalContextInfo = `${finalContextInfo}\n\n${checklistInfo}`;
802
- // Log checklist context details
803
- logDebug('Checklist Context for Code Implementation', verbose);
804
- logDebug(`Number of checklists: ${checklistContext.checklists.length}`, verbose);
805
- logDebug(`Checklist info length: ${checklistInfo.length}`, verbose);
806
- logDebug(`Checklist info preview: ${checklistInfo.substring(0, 300)}`, verbose);
807
- checklistContext.checklists.forEach((checklist, index) => {
808
- logDebug(`Checklist ${index + 1}: id=${checklist.id}, name=${checklist.name}, phases=${checklist.phases?.join(',')}, role=${checklist.role}, itemCount=${checklist.items?.length || 0}`, verbose);
809
- if (checklist.items) {
810
- checklist.items.forEach((item, itemIndex) => {
811
- logDebug(` Item ${itemIndex + 1}: id=${item.id}, title=${item.title?.substring(0, 50) || 'No title'}, description=${item.description?.substring(0, 50) || 'No description'}`, verbose);
812
- });
813
- }
814
- });
815
- // Add specific instructions for creating checklist results
816
- checklistInstructions = `
817
-
818
- ## MANDATORY Checklist Compliance
819
-
820
- **CRITICAL**: You MUST address ALL checklists provided in the context above. Checklists are mandatory quality requirements that cannot be ignored.
821
-
822
- - Review each checklist carefully during your implementation
823
- - Ensure your code and processes satisfy every checklist requirement
824
- - Include ALL checklist item IDs in your final JSON response under "checklist_item_results" (use the exact UUID from "ID:" field in items list)
825
- - Set "is_passed": true for completed checklist items, or explain in "notes" why a requirement cannot be met
826
- - Missing any checklist will cause the entire pipeline to fail
827
-
828
- Remember: Checklists are not suggestions - they are mandatory quality gates.`;
829
- if (verbose) {
830
- logInfo(`Added ${checklistContext.checklists.length} checklists to implementation context`);
831
- }
832
- }
833
- // Determine branch name
834
- const branchName = issueBranch?.branch_name || `dev/${issueId}`;
835
- const branchDescription = issueBranch
836
- ? `\n\n**Note**: This is a multi-branch issue. Focus only on the scope defined for this branch.`
837
- : '';
838
- return `Implement the ${issueBranch ? `"${issueBranch.name}" branch of` : 'complete'} issue for issue ID: ${issueId}${branchDescription}
839
-
840
- ${finalContextInfo}
841
-
842
- ## Implementation Instructions
843
-
844
- Follow this systematic approach:
845
-
846
- 1. **GIT PULL REBASE**: First ensure ${baseBranch} is up to date:
847
- \`git checkout ${baseBranch}\`
848
- \`git pull origin ${baseBranch} --rebase\`
849
-
850
- 2. **CREATE BRANCH**: Create git branch from ${baseBranch}:
851
- \`git checkout -b ${branchName}\`
852
-
853
- 3. **ANALYZE CODEBASE**: Study the existing codebase structure to understand:
854
- - Technology stack and architecture
855
- - Existing patterns and conventions
856
- - Where to place new components/files
857
- - How to integrate with existing systems
858
-
859
- 4. **IMPLEMENT ISSUE**: Based on the context above, implement the issue by:
860
- - Following the technical design (if available)
861
- - Satisfying all user stories${issueBranch ? ' relevant to this branch' : ''}
862
- - Creating components, services, APIs, database changes as needed
863
- - Following existing code patterns and conventions
864
- - Adding proper error handling and validation
865
-
866
- 5. **COMMIT CHANGES**: Commit your work with a descriptive message
867
- - This project has strict pre-commit hooks (lint-staged, linting, AI code review)
868
- - If hooks fail, try these approaches in order:
869
- 1. Fix the reported issues (preferred)
870
- 2. For AI code review issues: SKIP_REVIEW=1 git commit -m "message"
871
- 3. Last resort only: git commit --no-verify -m "message" (explain why in commit message)
872
-
873
- ## Important Notes
874
- ${issueBranch ? `- Focus ONLY on implementing the scope for this branch: "${issueBranch.name}"` : '- Focus on implementing ALL user stories completely'}
875
- - Follow the technical design if provided, or create your own approach
876
- - Maintain existing code quality and patterns
877
- - Never skip pre-commit checks - always fix the issues
878
- - Focus on implementation only - automated tests will be written in a separate phase
879
-
880
- ${checklistInstructions}
881
-
882
- Begin by creating the issue branch and analyzing the codebase structure.`;
883
- };
884
- const parseImplementationResponse = (response, issueId, verbose) => {
885
- logDebug('Parsing implementation response...', verbose);
886
- try {
887
- // Try to find JSON in the response
888
- const jsonMatch = response.match(/```json\s*([\s\S]*?)\s*```/) ||
889
- response.match(/\{[\s\S]*"implementation_result"[\s\S]*\}/);
890
- if (jsonMatch) {
891
- const jsonStr = jsonMatch[1] || jsonMatch[0];
892
- const parsed = JSON.parse(jsonStr);
893
- if (parsed.implementation_result) {
894
- const result = parsed.implementation_result;
895
- return {
896
- branchName: result.branch_name || `dev/${issueId}`,
897
- filesModified: result.files_modified || [],
898
- commitHash: result.commit_hash || '',
899
- summary: result.summary || '',
900
- checklist_item_results: result.checklist_item_results || [],
901
- };
902
- }
903
- }
904
- // Fallback: try to extract information from the text
905
- const branchMatch = response.match(/branch[:\s]+(\S+)/i);
906
- const filesMatch = response.match(/files?[:\s]+([^\n]+)/i);
907
- const commitMatch = response.match(/commit[:\s]+([a-f0-9]{7,})/i);
908
- return {
909
- branchName: branchMatch?.[1] || `dev/${issueId}`,
910
- filesModified: filesMatch
911
- ? filesMatch[1].split(/[,\s]+/).filter((f) => f)
912
- : [],
913
- commitHash: commitMatch?.[1] || '',
914
- summary: 'Implementation completed',
915
- };
916
- }
917
- catch (error) {
918
- logError(`Response parsing failed: ${error}`);
919
- return {
920
- branchName: `dev/${issueId}`,
921
- filesModified: [],
922
- commitHash: '',
923
- summary: 'Implementation completed',
924
- };
925
- }
926
- };